国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | 【嵌入式】S3C2410平臺移植linux 2.6.14內(nèi)核

發(fā)布者:Qilin520 來源: eefocus關(guān)鍵字:嵌入式  S3C2410  平臺移植  linux  6  14內(nèi)核 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

小續(xù)

第一次接觸內(nèi)核的東西,有點(diǎn)小激動(dòng)啊


激動(dòng)歸激動(dòng),這實(shí)驗(yàn)還是要繼續(xù)做下去,書上三兩句話就帶過去的,剩下的就留給我們了,著實(shí)考驗(yàn)動(dòng)手能力啊


當(dāng)編譯過內(nèi)核之后,發(fā)現(xiàn)這個(gè)過程也不復(fù)雜嘛(復(fù)雜的是內(nèi)核的配置),不過對于沒接觸過的人來說,也能夠折騰一段時(shí)間的了,所以記下這個(gè)過程,其中也有些需要注意的地方,然后給沒接觸過的人分享下


環(huán)境如下

操作系統(tǒng):ubuntu 12.04LTS

交叉編譯工具:arm-linux-gcc 3.2

開發(fā)板:FS2410

linux內(nèi)核:linux 2.6.14

 

mystery@lcw:~/Downloads$ cat /etc/issue

Ubuntu 12.04.2 LTS n l

mystery@lcw:~/Downloads$ arm-linux-gcc -v

Reading specs from /usr/local/arm/bin/../lib/gcc-lib/arm-linux/3.2/specs

Configured with: ./configure --target=arm-linux --prefix=/usr/local/arm/ --with-headers=/home/sylam/armbuild/src/linux/include --disable-shared --disable-threads --enable-languages=c : (reconfigured) ./configure --target=arm-linux --prefix=/usr/local/arm/ --with-headers=/home/sylam/armbuild/src/linux/include

Thread model: posix

gcc version 3.2

 

mystery@lcw:~/Downloads$ ls /home/mystery/Downloads/ 

cross-3.2.tar.bz2                      linux-2.6.14

eclipse-cpp-juno-SR2-linux-gtk.tar.gz  linux-2.6.14.tar.bz2

google-chrome-stable_current_i386.deb  wps-office_8.1.0.3724~b1p2_i386.deb

jdk-7u17-linux-i586.tar.gz             wps_symbol_fonts.zip

mystery@lcw:~/Downloads$ 

 


準(zhǔn)備工作

決定在哪里編譯你的內(nèi)核
你需要決定你要在哪里編譯你的ARM Linux內(nèi)核。一個(gè)比較好的位置就是在你的home目錄,我這里直接下載了解壓后就編譯了,所以就在download目錄下進(jìn)行的

決定內(nèi)核的版本號
你需要決定你想要編譯哪個(gè)版本的linux內(nèi)核。大多數(shù)然想要編譯最新版本的穩(wěn)定內(nèi)核。有一套表示版本號的機(jī)制,可以幫助你決定識別一個(gè)特定的發(fā)行版本。
對于任何的內(nèi)核版本x.y.z,
* x -這個(gè)是主版本號
* y -這個(gè)是次版本號,這里:
偶數(shù)表示“穩(wěn)定的”內(nèi)核發(fā)行
奇數(shù)表示"開發(fā)"或者"beta"內(nèi)核發(fā)行版本,相對來說不穩(wěn)定。
* z -這是這個(gè)內(nèi)核的補(bǔ)丁級別。
這個(gè)版本號表示了內(nèi)核版本的主線。我這里按照書上的,選擇了linux 2.6.14的內(nèi)核,大家在www.kernel.org可以找到下載地址哈。


開始工作

1. 首先,我們需要修改目錄樹根下的Makefile,指明交叉編譯器,找銀行也要先說明去哪家銀行嘛,哈哈

找到

ARCH            ?= $(SUBARCH)

CROSS_COMPILE   ?=

 

修改成

 

192 ARCH            ?= arm

193 CROSS_COMPILE   ?= arm-linux-gcc

 

 

<注意1>這里我開始出現(xiàn)了一個(gè)錯(cuò)誤,在打arm的時(shí)候后面多打了一個(gè)空格,結(jié)果后面編譯的時(shí)候出現(xiàn)

mystery@lcw:~/Downloads/linux-2.6.14$ make menuconfig                            

make: *** /home/mystery/Downloads/linux-2.6.14/arch/arm: Is a directory.  Stop. 

mystery@lcw:~/Downloads/linux-2.6.14$ vim Makefile 

 

好吧,第一次還是老實(shí)的慢慢打代碼,切勿多出空格來了


2. 然后我們需要設(shè)置一下環(huán)境變量,知道去哪家銀行取錢,然后需要知道銀行在哪里啊

mystery@lcw:~/Downloads/linux-2.6.14$ export  PATH=$PATH:/usr/local/arm/bin/

 

這個(gè)路徑當(dāng)然是交叉編譯器的位置了,在配置交叉編譯器的時(shí)候,其實(shí)就已經(jīng)把這個(gè)路徑寫入到配置文件去了,這里主要是說明需要指明銀行的地點(diǎn)哈


3. 去銀行總得有點(diǎn)事做吧,現(xiàn)在就來配置下這個(gè)清單,我也是第一次哈,所以內(nèi)核產(chǎn)生文件就直接復(fù)制了

mystery@lcw:~/Downloads/linux-2.6.14$ cp arch/arm/configs/smdk2410_defconfig .config

 

<注意2>這里的.config文件應(yīng)該由配置得到的,但是這之前,我也不知道怎么才算配置成功,對吧,所以先看結(jié)果,再回過頭來學(xué)習(xí),就容易多了,不過這過程還是要說清楚


4. 知道要去銀行干什么了,下面就直接去銀行與工作人員交涉吧。輸入內(nèi)核配置命令,進(jìn)行內(nèi)核選項(xiàng)的選擇


內(nèi)核支持4種不同的配置方法,這幾種方法只是與用戶交互的界面不同,其實(shí)現(xiàn)的功能是一樣的;四種方法都是通過讀取上面的配置文件“.config”隱藏文件,4種方法如下


make config : 基于文本的最為傳統(tǒng)的配置界面,不推薦使用  make menuconfig : 基于文本選單的配置界面,字符終端下推薦使用  make xconfig : 基于圖形窗口模式的配置界面,X-Window下推薦使用  make oldconfig : 自動(dòng)讀入“.config”配置文件,并且只要求用戶設(shè)定上一次沒有設(shè)定 過的選項(xiàng)


在這4種模式中,make menuconfig使用最為廣泛,我這里也使用這種哈

mystery@lcw:~/Downloads/linux-2.6.14$ make menuconfig

HOSTCC  scripts/basic/fixdep

scripts/basic/fixdep.c: In function ‘traps’:

scripts/basic/fixdep.c:368:2: warning: dereferencing 

………………………

………………………

>> Unable to find the Ncurses libraries.

>>

>> You must install ncurses-devel in order

>> to use 'make menuconfig'

make[2]: *** [scripts/lxdialog/ncurses] Error 1

make[1]: *** [menuconfig] Error 2

make: *** [menuconfig] Error 2

 

代碼有點(diǎn)長,中間省略了。

呃,出錯(cuò)了,不要急,看看錯(cuò)誤原因:

>> Unable to find the Ncurses libraries.

>>

>> You must install ncurses-devel in order

>> to use 'make menuconfig'

 

意思是不能找到Ncurses libraries,你必須在這之前安裝ucurses工具,好吧,照做

mystery@lcw:~/Downloads/linux-2.6.14$ sudo apt-get install ncurses-dev

[sudo] password for mystery: 

Reading package lists... Done

 

<注意3>ncurses用于make menuconfig界面顯示

 

后面我無意間又發(fā)現(xiàn)了一個(gè)錯(cuò)誤

 

mystery@lcw:~/Downloads/linux-2.6.14$ make menuconfig

 HOSTCC  scripts/lxdialog/checklist.o

 HOSTCC  scripts/lxdialog/inputbox.o

 HOSTCC  scripts/lxdialog/lxdialog.o

……………………

scripts/kconfig/mconf arch/arm/Kconfig

# using defaults found in .config

.config:622: trying to assign nonexistent symbol DEVFS_FS

.config:622: trying to assign nonexistent symbol DEVFS_FS

.config:623: trying to assign nonexistent symbol DEVPTS_FS_XATTR

Your display is too small to run Menuconfig!

It must be at least 19 lines by 80 columns.

make[1]: *** [menuconfig] Error 1

make: *** [menuconfig] Error 2

 

 

中間也省略了一些哈,你找到錯(cuò)誤說明了嗎:

<注意4>意思是說你的顯示屏太小了,容不下Menuconfig,至少需要19*80的空間,好吧,照做


5. 下面就開始和銀行人員交涉吧

mystery@lcw:~/Downloads/linux-2.6.14$ make menuconfig

scripts/kconfig/mconf arch/arm/Kconfig

#

# using defaults found in .config

#

.config:11: trying to assign nonexistent symbol GENERIC_IOMAP

 

配置選項(xiàng)出來了有木有啊

<注意5>在各級子菜單項(xiàng)中,選擇相應(yīng)的配置時(shí),有3種選擇,它們代表的含義分別如下

Y:將該功能編譯進(jìn)內(nèi)核

N:不將該功能編譯進(jìn)內(nèi)核

M:將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊

在編譯內(nèi)核的過程中,最麻煩的事情就是配置這步工作了,初次接觸linux內(nèi)核的開發(fā)者還真弄不清楚如何選取這些選項(xiàng),還好這些配置大部分選項(xiàng)都可以使用其默認(rèn)值,只有一小部分需要根據(jù)用戶不同的需要選擇

<注意6>選擇的原則就是:將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能編譯成為可加載模塊,這有利用減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)核,簡化該功能相應(yīng)的環(huán)境改變時(shí)對內(nèi)核的影響,不需要的功能就不要選,與內(nèi)核關(guān)系緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中

我們進(jìn)入第二項(xiàng)“通用設(shè)置”看看

Linux Kernel v2.6.14 Configuration                                             

------------------------------------------------------------------------------ 

+----------------------------- General setup -----------------------------+   

|  Arrow keys navigate the menu.  selects submenus --->.          |   

|  Highlighted letters are hotkeys.  Pressing includes, excludes, |   

modularizes features.  Press to exit, for Help, |   

|  for Search.  Legend: [*] built-in  [ ] excluded  module  <>       |   

| +---------------------------------------------------------------------+ |   

| |()  Local version - append to kernel release                         | |   

| |[*] Automatically append version information to the version string (N| |   

| |[*] Support for paging of anonymous memory (swap)                    | |   

| |[*] System V IPC                                                     | |   

| |[ ] POSIX Message Queues                                             | |   

| |[ ] BSD Process Accounting                                           | |   

| |[*] Sysctl support                                                   | |   

| |[ ] Auditing support                                                 | |   

| |[ ] Support for hot-pluggable devices                                | |   

| +v(+)-----------------------------------------------------------------+ |   

+-------------------------------------------------------------------------+   

|                   

 

<注意7>大家注意到了吧,這里選擇前面有中括號和圓括號,其實(shí)還有個(gè)尖括號。用空格鍵選擇相應(yīng)的選項(xiàng)時(shí)會發(fā)現(xiàn)中括號中要么是空,要么是“*”;尖括號中可能是空/“*”和“M”,分別表示包含選項(xiàng)/不包含選項(xiàng)和編譯成模塊;圓括號的內(nèi)容是要求用戶在所提供的幾個(gè)選項(xiàng)中選擇一項(xiàng)。

上面是什么意思呢?我解釋下哈。

第一個(gè)是圓括號,就是讓你從下面的選項(xiàng)中進(jìn)行選擇;我簡單的翻譯下哈:

( )本地版本-添加到內(nèi)核發(fā)行版

[*]自動(dòng)添加版本信息到原版本信息后面

[*]支持匿名分頁存儲

[*]支持系統(tǒng)V IPC通信機(jī)制

[  ]支持POSIX消息隊(duì)列

…………

下面很多,就不看了哈,上面的意思就是:把(中括號中選擇了的)自動(dòng)添加版本信息到原版本信息后面/支持匿名分頁存儲/支持系統(tǒng)V IPC通信機(jī)制等等添加到新的內(nèi)核版本中去,這下應(yīng)該懂了吧;至于尖括號選項(xiàng),就是前面說的Y/N/M,這里就不多說了啊

配置內(nèi)核主要是根據(jù)你需要哪些功能,大家按照<注意6>進(jìn)行配置就是了

 

6. 等配置好了,就把工作交給銀行人員吧

 

mystery@lcw:~/Downloads/linux-2.6.14$ make zImage

make: arm-linux-gccgcc: Command not found

[1] [2]
關(guān)鍵字:嵌入式  S3C2410  平臺移植  linux  6  14內(nèi)核 引用地址:【嵌入式】S3C2410平臺移植linux 2.6.14內(nèi)核

上一篇:【ARM】ARM體系結(jié)構(gòu)-GPIO
下一篇:ADS分散加載文件使用總結(jié)(lpc23xx)

推薦閱讀

據(jù)報(bào)道,目前的全球機(jī)器人市場已經(jīng)迎來了不可思議的景象,機(jī)器人產(chǎn)業(yè)的旺盛讓人不敢相信。報(bào)道稱中國需求讓全球機(jī)器人市場“盛況空前”,為爭奪中國需求,各大機(jī)器人廠商紛紛擴(kuò)大在華生產(chǎn)。 全球的機(jī)器人產(chǎn)業(yè)正可謂盛況空前。不僅在面臨著少子高齡化和人手問題的日本,新興經(jīng)濟(jì)體也由于人工成本上漲而使得自動(dòng)化需求持續(xù)增長,從大型機(jī)器人企業(yè)到零部件...
“知否知否?你可知道?” “知了知了,當(dāng)然知得,安全操作機(jī)器人最為重要。” 今天,小仙為自己帶鹽(代言),向大家介紹仙知機(jī)器人的使用注意事項(xiàng)及安全防護(hù)措施。 在運(yùn)輸期間,確保適當(dāng)安裝負(fù)載,由于機(jī)器人傾翻或負(fù)載掉落導(dǎo)致人身傷害的危險(xiǎn)。 僅使用原裝充電器,使用非制造商提供的其他充電器會損壞,可能引發(fā)火災(zāi)。 切勿不負(fù)責(zé)任地駕駛車輛...
一、AI機(jī)器感知解決機(jī)器理解世界的問題。1.機(jī)器視覺硬件可采集周圍環(huán)境信息目前常用的視覺傳感器主要有:攝像頭、ToF鏡頭和激光雷達(dá)技術(shù)。1)機(jī)器視覺相機(jī)機(jī)器視覺相機(jī)的目的是將通過鏡頭投影到傳感器的圖像傳送到能夠儲存、分析和(或者)顯示的機(jī)器設(shè)備上??梢杂靡粋€(gè)簡單的終端顯示圖像,例如利用計(jì)算機(jī)系統(tǒng)顯示、存儲以及分析圖像。2)激光雷達(dá)技術(shù)激...
此前有消息稱,魅族今年將會實(shí)行“一體兩翼”戰(zhàn)略,手機(jī)仍然是魅族的核心業(yè)務(wù),同時(shí)會新增智能穿戴與智能家居業(yè)務(wù)。企查查APP顯示,1月26日,珠海市魅族科技有限公司公開了一項(xiàng)“智能手表”外觀專利,公開號CN306296501S,申請日期為2020年9月?! △茸骞贾悄苁直硗庥^專利  該專利顯示,這款智能手表為方形設(shè)計(jì),外觀設(shè)計(jì)用于顯示時(shí)間、運(yùn)行程序、進(jìn)...

史海拾趣

問答坊 | AI 解惑

關(guān)于EVC程序下載到NK內(nèi)核 下載目標(biāo)板 無法運(yùn)行

Windows CE.NET的應(yīng)用為MyApp.exe 1.將MyApp.exe復(fù)制到E:\\PROJECTS\\MyWinCE\\RelDir\\CEPC_X86Release目錄下; 2.創(chuàng)建快捷方式文件MyApp.lnk(文本文件),文件內(nèi)容如下: 10#\\Windows\\MyApp.exe MyApp.lnk文件也放入E:\\PROJECTS\\MyWinC ...…

查看全部問答∨

如何截獲應(yīng)用程序向usb口發(fā)出的數(shù)據(jù)?

有個(gè)usb設(shè)備,對應(yīng)有個(gè)demo程序 DEMO程序 里按下連接usb設(shè)備按鈕之后,usb設(shè)備會不停地發(fā)送數(shù)據(jù)過來 現(xiàn)在不知道發(fā)送了什么指令,設(shè)備才會開始發(fā)送數(shù)據(jù) 請問如何截獲應(yīng)用程序向usb口發(fā)出的數(shù)據(jù)? 謝謝拉 比較急 求助 …

查看全部問答∨

ftp—628步進(jìn)電機(jī)

哪位做過FTP_628打印機(jī)的程序,步進(jìn)電機(jī)時(shí)序是怎么樣寫的,我老寫不對…

查看全部問答∨

在WINCE設(shè)備上,用VS2003開發(fā)的程序連接數(shù)據(jù)庫出錯(cuò),請教高手

在WINCE設(shè)備上,用VS2003開發(fā)的程序連接WINCE數(shù)據(jù)庫出錯(cuò),請教高手 SqlCeConnection conn = new SqlCeConnection(\"Data Source = Test.sdf\"); conn.open(); open這里提示出錯(cuò),但在WINCE設(shè)備上只能看到錯(cuò)誤號為:-2147467259,就是不知道什么錯(cuò)誤. ...…

查看全部問答∨

關(guān)于LPC啟動(dòng)代碼startup.s的疑難點(diǎn),請高手幫助

以下代碼段一直難以理解,請各位幫分析一下: ;IRQ中斷服務(wù)程序 IRQ_Handler         SUB     LR, LR, #4                 &nb ...…

查看全部問答∨

I2C通信,設(shè)備地址的確定

I2C通信,設(shè)備的地址問題 I2C通信,設(shè)備的地址問題 在OV9650的初始化  通過I2C對寄存器進(jìn)行讀寫的時(shí)候#define CAMERA_I2C_ADDR 0x30#define I2C_SLAVE 0x0703 if(ioctl(fd, I2C_SLAVE, CAMERA_I2C_ADDR)<0) {  printf(\"fail ...…

查看全部問答∨

不是精品不上傳(單片機(jī)C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書)

replyreload += \',\' + 1311171;(單片機(jī)C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書)Timson,如果您要查看本帖隱藏內(nèi)容請回復(fù)…

查看全部問答∨

求指導(dǎo)

本人在做一個(gè)基于單片機(jī)的開關(guān)電源的畢業(yè)設(shè)計(jì),思路是這樣的,鍵盤預(yù)置電壓,控制單片機(jī)進(jìn)行脈寬調(diào)制,使輸出電壓在大范圍內(nèi)可調(diào),輸入220V,輸出為3~30V線性可調(diào),不知電路方面該如何設(shè)計(jì),請論壇的各位指導(dǎo)指導(dǎo),由衷感謝?。?!…

查看全部問答∨

關(guān)于1個(gè)協(xié)調(diào)器給70個(gè)終端發(fā)廣播的問題

大家好! 我在實(shí)際當(dāng)中遇見這樣一個(gè)問題,大家?guī)臀页龀鲋饕獍? (1)1個(gè)協(xié)調(diào)器給70個(gè)終端(End Device)發(fā)廣播      每次廣播只有15個(gè)能收到信息,其他都沒反應(yīng),這是什么情況?      是發(fā)出去了,其他的節(jié) ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved

<center id="eytl7"></center>