1. 嵌入式linux內核編譯出錯 [2.6.20.6-mpc8247]# make ARCH=powerpc CROSS_COMPILE=ppc
首先確認你安裝了正確的交叉工具鏈,然後再把交叉工具鏈的地址添加到$PATH里。
交叉工具鏈可以跟晶元供應商聯系獲得,也可以自己下載軟體包自己進行編譯。
2. 如何選擇和裁剪嵌入式linux內核
一、內核的獲得
可以從網上下載內核文件,http://www.kernel.org。如果是為了練習,盡量下載2.4.x的內核。因為2.6.x的內核比較大,當然編譯也需要更都的時間。
二、內核的編譯
Linux內核的編譯菜單主要有三個版本:
1)make config:進入命令行,可以一行一行的配置。
2)make menuconfig:開發人員比較熟悉的menuconfig菜單。
3)make xconfig:在2.4.X以及以前版本中xconfig菜單是基於TCL/TK的圖形庫的.
我們採用menuconfig菜單
編譯內核需要root許可權,以下操作都假定你是root用戶.先在根目錄下建立名為ARM2410的目錄.然後
把你需要升級的內核拷到/usr/src/下(下文中以2.4.18的內核的linux-2.4.18.tar.gz為例),命令為
#cp linux-2.4.18.tar.gz /usr/src
然後解壓該文件,命令為:
#tar -zxvf linux-2.4.18.tar.gz
如果你所下載的是.bz2文件,例如linux-2.4.0test8.tar.bz2,請使用下面的命令
#bzip2 -d linux-2.4.18.tar.bz2
#tar -xvf linux-2.4.18.tar
下面我們開始編譯:
第一步:在終端下進入內核所在目錄 "/arm2410";
第二步:鍵入make menuconfig,進入內核配置菜單,
注意:
1)帶有"-->"表示該選項包含選項;
2)每個選項前面有[ ]或< >,中括弧表示僅有2種選擇(*或空),尖括弧表示有3種選擇(M,*或空),按空格鍵可顯示這幾個選擇;
3)M表示以模塊方式編譯進內核,在內核啟動後,需要手工執行insmod命令才能使用該項驅動;*表示直接編譯進內核;空表示不編譯進內核;
第三步:按著自己的需求,配置內核.一共有21項.
第四步:鍵入make clean命令,刪除已生成的模塊和目標文件.
第五步:鍵入make dep命令,編譯變數依賴關系等;
第六步:鍵入make zlmage生成經壓縮以後的內核映像文件zlmage;
第七步:鍵入make moles編譯模塊;
第八步:鍵入make moles_install安裝編譯完成的模塊;
內核映像文件zlmage存放在 ./arch/arm/boot/目錄下.
3. 學嵌入式必須會自己獨立移植和編譯U-boot,Linux內核,自己獨立建立交叉編譯工具是嗎
其實所謂嵌入式算是一個比較廣泛的概念,並非單純指用Linux系統來構造。
造成大家認為嵌入式就是Linux這樣的誤解,
是因為很多培訓機構往往不是專業出身,只能把嵌入式拿來當做概念炒作。
做嵌入式Linux產品的話,有三個層級的開發種類:
a,Linux應用層開發;
b,嵌入式Linux系統構建;
c,嵌入式Linux產品設備驅動開發;
你所說的移植和編譯U-boot,Linux內核,自己獨立建立交叉編譯工具等等
都是歸納到上面b類中去的重點。對做a/c類的人來說,並非一定需要。
現在很多培訓機構,交個一萬三四千塊的錢,學個四五個月,最終學到的
知識,也只能是a類的大部分,b類的很少部分,c類的蜻蜓點水。從性價比
來說,非常非常的不劃算。
杭州巨立安技術(JulianTec)是杭州市場上唯一由資深研發工程師所發起
設立的機構。由於自身的專業出身,所以我們能夠把上面三類課程安排到獨立
的三個不同階段裡面去,分開進行教學與收費。這么做有幾點好處:
1,能夠讓不同專業背景的同學找到不同的切入點進行學習;
2,相比其他眉毛鬍子一把抓式的、純商業的、非專業出身的培訓機構來說,這樣
的安排更趨合理與實在;
3,花個四五個月的時間,交上一萬三四,最終感覺只能學到應用層的東西;那是
非常非常的不劃算,其實單單學習應用層開發,不需要你花那麼多時間,也不需要
你花那麼多金錢。
杭州巨立安(JulianTec)和其他機構所不同的是,什麼時候上什麼內容,需要多少
時間,需要繳多少學費等等都是訂好的,就類似於商場售貨時的明碼標價。不像其他
機構那樣喊著大大的口號,卻讓你只接受最基礎知識的學習。