要加入新版本核心其實可以將 meta/packages/linux/ 下的 bb 檔找一個你覺得適合的複製一份來改,內容大同小異,操作如下:
cd meta/packages/linux
vi linux-<MACHINE>_2.6.28.bb
# 填入自訂的內容,或複製現有的來修改
...
要注意的是,我們還需要再新建一個目錄,名稱如下所示,並複製核心使用的組態檔到該目錄下,檔名隨意,方便記憶即可:
mkdir linux-<MACHINE>
cp ~/defconfig ./defconfig-2.6.28
接著在修改 bb 檔時,幾個重要的變數需要設定:
PV: 套件版號,OpenEmbedded 會利用該變數來決定使用那個版本來編譯,預設是找最新的版本。 S: 套件原始碼目錄,也就是 tarball 解開後放置的路徑,在這個例子中是 ${WORKDIR}/linux-2.6.28
加入新硬體的設定檔可參考 meta/conf/machine/ 下的檔案來修改,由於我的開發板和 OpenMoko 所使用的硬體是同屬於 S3C2440 的晶片,是故就直接複製 fic-gta01.conf 來修改:
cd meta/conf/machine
cp fic-gta01.conf <MACHINE>.conf
修改的部分如下:
MACHINE_FEATURES = "kernel26 vfat ext2" MACHINE_DISPLAY_WIDTH_PIXELS = "800" - MACHINE_DISPLAY_HEIGHT_PIXELS = "480"
- PREFERRED_PROVIDER_virtual/kernel = "linux-<MACHINE>"
- 移除 MACHINE_CLASS
- 移除 MACHINE_EXTRA_RDEPENDS, MACHINE_EXTRA_RRECOMMENDS
- 移除 EXTRA_IMAGECMD_JFFS2
- 移除 SERIAL_CONSOLE
- 移除 EXTRA_IMAGEDEPENDS
修改完成後,在 build 目錄下 (別忘了要 source poky-init-build-env),鍵入以下的指令:
bitbake linux-<MACHINE>
就會開始進行編譯程序。若發生錯誤,查看 build/tmp/work/<MACHINE>-poky-linux-gnueabi/linux-<MACHINE>.../temp/ 下的紀錄檔並修正。
目前已經加入了 2.6.28 及 2.6.29-rc4 的 recipe。其中 2.6.29-rc4 包含了開發板上 SD 控制器和 LCD 控制器的支援,相信不久應該就可以看到跑 GNOME Mobile 的樣子了。
沒有留言:
張貼留言