1. 程式人生 > >基於OMAPL:Linux3.3內核的編譯

基於OMAPL:Linux3.3內核的編譯

手冊 可能 會有 exit 裏的 UC 成功 代碼 sta

基於OMAPL:Linux3.3內核的編譯

OMAPL對應3個版本的linux源代碼,分別是:Linux-3.3、Linux-2.6.37、Linux2.6.33,這裏的差距在於Linux2,缺少SYSLINK支持組件。

這裏我們選擇Linux-3.3版本進行開發。

開發前準備

  • mkimage的工具:sudo apt-get install u-boot-tools
  • menuconfig組件庫安裝:apt-get install libncurses5-dev
  • 正確配置arm-none-linux-gnueabi的環境
  • 內核源文件:linux-3.3.tar.bz2(一定要用TI提供配套OMAPL的,不是隨便找個Linux3.3就可以的)

內核編譯過程

  • 解壓內核到~/work內核路徑為~/work/linux-3.3

  • 進入Linux內核路徑`~/work/linux-3.3

  • 清理內核(一個字兒都不能少)

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

配置內核

配置內核很關鍵,有些童鞋說,人家的內核編譯了5分鐘就結束了,怎麽我的1個小時還沒編譯完,很有可能就是很多地方對於這個板子沒有用的部件你沒有刪除掉,一般原廠都會有個推薦配置,當然了,TI的OMAPL138也是提供了推薦配置的。

創龍公司給出的配置為,執行命令:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_tl_defconfig

我使用的是德州儀器給的配置,則執行命令:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_defconfig

當然這不是瞎編的,內核中包含的配置文件在,以下的目錄:

./arch/arm/configs

ls以下會看到很多配置:

技術分享圖片

我們使用畫橫線的配置信息。

  • 使用make menuconfig寫入配置信息

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

技術分享圖片

直接Exit就可以,然後就會寫入配置信息了。

技術分享圖片

在這個menu裏面我們配置驅動或者內核其他的組件機制,是否編譯到內核中,這個根據自己需求進行,初學者可能對於這個地方沒有多少概念。可參考韋東山《嵌入式Linux完全開發手冊》的編譯內核章節,上面有目錄規則和解說等。

編譯內核

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage -j4

技術分享圖片

編譯內核一般都會有各種各樣的錯誤,去百度或者google清查。

技術分享圖片

編譯完成後可以在內核源碼的"arch/arm/boot"目錄下找到 uImage。可以將 uImage 拷貝到正常使用的 SD 系統啟動卡的 FAT32 格式的 boot 分區,方便以後 SD 卡啟動方式時被 U-Boot 加載或者被燒寫到 NAND FLASH 分區。

技術分享圖片

基於OMAPL:Linux3.3內核的編譯