硬件平臺: FL2440
操作系統: Linux2.6.28.7
交叉編譯工具: arm-linux-gcc-3.4.1
飛凌公司默認的文件系統,不具有文件延伸功能,比如在 /dev 下有 mmcblk0p1 這個文件,在 掛載 SD 卡驅動時,需要敲入命令 mount /dev/mmcblk0p1 ,如果具有延伸功能,在敲入 mm 后,可以直接按 TAB 鍵,如果 /dev 目錄下只有一個以 mm 形狀的文件,將會自動補全后面的字符。初步推斷該功能應該為 busybox 集成,從網上下載 busybox-1.9.2.tar.bz2 ,計劃安裝該版本的 busybox 。
第一步: 下載 busybox 源代碼: http://busybox.net/downloads/busybox-1.9.2.tar.bz2
解壓:
tar jxf busybox-1.9.2.tar.bz2
第二步:修改 makefile 中的 174 行的 arch 和編譯工具鏈頭:
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
第三步: make menuconfig. 修改編譯配置選項,參考如下設置:
其他使用默認設置。
第四步: 編譯 busybox
make install
在 busybox/_install 目錄下會生成 busybox 文件。同時,在解壓的當前目錄也會存在該文件。
第五步:修改 busybox 的文件屬性
chmod 777 busybox
必須要修改屬性,否則可能造成無法啟動文件系統。
第六步:將新生成的 busybox 替換掉原來的文件,在文件系統根目錄的 bin 目錄下。
第七步:替換 busybox 所需要的庫文件。這一步很關鍵,使用不同版本的交叉編譯工具編譯出來的 busybox ,所使用的庫是不同的。 FL2440 提供的 busybox 使用的 3.3.2 的交叉編譯工具,這里我們使用的 3.4.1 的版本,因此有必要替換掉原來的 lib 文件。如果不替換,啟動系統時將出現如下錯誤:
Failed to execute /linuxrc. Attempting defaults...
busybox 使用的庫在如下路徑:
/usr/local/arm/3.4.1/arm-linux/lib
這里因交叉編譯環境安裝路徑不同而有所差異。將該目錄下的 *.so,*.so.*,*.a, 全拷備到根文件系統的 lib 目錄下,有文件重命名的直接覆蓋,刪除里面一些不必要的庫文件,如 *jpeg* 等,否則會出現壓縮的文件系統過大而燒不進去的現象。
第八步:使用 mkyaffs2image 工具制作文件系統:
./mkyaffs2image qte_yaffs qte.yaffs
第九步:擦除開發板上的 rootfs 文件系統分區,重新下載新生成的文件系統,重啟開發板。
第十步:這時已經能夠正常進入控制臺,但是彈出如下錯誤提示:
mdev: /etc/mdev.conf: No such file or directory
在文件系統的 etc 下新建一個空文件 mdev.conf ,另外修改 /etc/init.d 下的 rcS 文件的最后一行為 exec /usr/etc/rc.touch ,以支持觸摸屏,默認為支持鼠標。
第十一步:再次制作文件系統,同第八步,然后擦除 rootfs 文件系統分區,重新下載最新的文件系統,重啟開發板。這時一切正常。
第十二步:嘗試掛載 SD 卡驅動,或者使用 busybox 提供的相關命令,這次已經具備敲命令按 TAB 鍵延伸的功能了。
注:
制作過程中可能遇到文件系統大于64M,由于fl2440內存64M,不可能下載下來,所以可以先刪除/usr目錄下有關圖片等文件,燒完之后,再copy回去即可。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
