本文檔主要講解在iTOP-iMX6Q/D/PLUS 開發(fā)板的設(shè)備樹內(nèi)核(4.1.15)的缺省文件配置。 這里以 imx6q(imx6d 和 plus 的類似)的 qt 系統(tǒng)內(nèi)核編譯為例,Ubuntu16 的內(nèi)核和 qt 通用,android6.0 的配置和 qt 的類似。 1 內(nèi)核源碼中默認(rèn)缺省文件的位置 如下圖所示,進(jìn)入源碼的“kernel_imx”目錄,可以看到兩個(gè)腳本 “build_android_kernel.sh”和“build_qt_kernel.sh”,分別用來編譯 android 和 qt 的內(nèi) 核和設(shè)備樹,這部分在用戶手冊(cè)上有介紹,根據(jù)不同參數(shù)即可完成編譯。 打開“build_qt_kernel.sh”文件,如下圖所示,是腳本的一部分。 注意上圖中的“make imx_v7_linux_defconfig”,這一句腳本是用來配置卻文件的,這 是 linux 內(nèi)核編譯的一個(gè)默認(rèn)用法,它表示內(nèi)核的配置 config 文件,使用 “arch/arm/configs/”路徑下一個(gè)叫“imx_v7_linux_defconfig”的缺省文件。如下圖所 示,我們可以找到這個(gè)缺省文件。 另外還有 android 的缺省文件,使用命令“l(fā)s arch/arm/configs/imx_v7_android_defconfig”,如下圖所示。 2 配置缺省文件 知道了默認(rèn)缺省文件之后,接下來我們來通過 menuconfig 修改缺省文件,檢驗(yàn)到底對(duì) 不對(duì)。 啟動(dòng)開發(fā)板,如下圖所示,可以看到有一個(gè)設(shè)備節(jié)點(diǎn)“/dev/leds_ctl”,這是 led 小燈的 設(shè)備節(jié)點(diǎn)。 我們現(xiàn)在要配置缺省文件,去掉這個(gè)驅(qū)動(dòng),讓內(nèi)核不能生成這個(gè)設(shè)備節(jié)點(diǎn)。首先,備份一 下默認(rèn)的缺省文件,以免修改錯(cuò)誤,使用命令“cp arch/arm/configs/imx_v7_linux_defconfig imx_v7_linux_defconfig” 如下圖所示,如果配置失敗無法編譯內(nèi)核,可以用備份在 kernel_imx 路徑下的 imx_v7_linux_defconfig 缺省文件覆蓋掉 arch/arm/configs/路徑下的 imx_v7_linux_defconfig 缺省文件。 接著配置配置需要使用.config 文件,如下圖所示,使用命令“cp arch/arm/configs/imx_v7_linux_defconfig .config”覆蓋掉.config 文件。 啟動(dòng) menuconfig,使用“export ARCH=arm”,然后使用“make menuconfig”命 令,進(jìn)入 menuconfig 界面,如下圖所示,一定要確保進(jìn)入的是 arm 4.1.15 界面。 選擇“Device Drivers->”->“Character devices->”,找到“Enable LEDS config”,如下圖所示。 敲回車,然后去掉 led 驅(qū)動(dòng)的配置,如下圖所示。 最后退出,保存修改,這樣我們就得到新的.config 文件,選擇 Yes。 使用新的.config 文件覆蓋掉“arch/arm/configs”目錄下的 imx_v7_linux_defconfig 文件,使用命令“cp -r .config arch/arm/configs/imx_v7_linux_defconfig”,如下圖所 示。 最后編譯執(zhí)行“./build_qt_kernel.sh”腳本(其它版本核心板,需要傳遞參數(shù),參考用 用戶手冊(cè)對(duì)應(yīng)章節(jié)),編譯 imx6q 的 qt 的內(nèi)核,燒寫到開發(fā)板。 會(huì)發(fā)現(xiàn) led 的設(shè)備節(jié)點(diǎn)“/dev/leds_ctl”沒有了,表明.config 和 menuconfig 以及缺省 文件使用方法正確。
|