ARM開發板系統移植-----kernel的編譯


 

 
前面一篇文章介紹了開發板上系統軟件的第一部分--bootloader的編譯方法。

  背景:把bootloader燒寫到開發板的Nand Flash中后,開發板從Nand啟動,硬件會自動將bootloader加載到內存中運行,bootloader將板載資源都初始化完成后,會停留在一個命令行界面,接收並執行用戶敲入的命令。這時候用戶可以通過命令控制開發板,比如查看參數列表:print、讀寫nand:nand read\nand write 、內存管理:mm、設置參數列表:setenv、網絡下載:tftp、啟動內核:bootm等等。如果我們把一個編譯好的內核通過tftp服務器下載到內存中,就可以通過bootm 命令啟動內核。

  好吧,啰嗦了、、、下面回到正題-----內核的編譯。

  編譯適合開發板的使用的內核映像其實很簡單,無非就是配置然后編譯。當然最麻煩的就是配置了,因為配置的過程需要了解板子上都有哪些資源,都是什么型號,需要什么驅動等等,然后根據這些了解到的信息舍取。不過既然我們使用的是別人開發的開發板,那就說明廠家已經進行配置過,只要我們能拿到別人后的配置文件,再通過自己稍加修改,就能省掉很多麻煩。進入頂層目錄,操作步驟如下:  

  1、配置內核:執行命令  make menuconfig ARCH=arm-Linux 出現如下配置界面:

  

      前面說了,這里可以根據板子的情況一項一項的選,但是筆者通常都是往下拉,找到一個 "Load an Alternate Configuration File"的選項,使用廠家提供的配置文件,這樣省時省力。配置完成后保存退出,進行下一步。

  2、編譯內核:執行命令 :make uImage ARCH=arm CROSS_COMPILE=arm-linux- 。這是個挺漫長的過程,而且還可能出現編譯錯誤,比如筆者就遇到一個問題,mkimage not found ,其實就是一個打包工具沒找到,導致內核映像生成失敗。后來發現這個工具是在uboot/tools目錄中的,把工具復制到/bin目錄中再執行一次編譯命令即可。

  這兩個步驟完成后用戶可以在 arch/arm/boot/中找到uImage.bin文件,這是一個可以被啟動的二進制文件,當然這里面還沒有文件系統的代碼,這將是下一篇文章的內容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM