新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于S3C2440的busybox的移植 yaffs根文件系統(tǒng)制作

基于S3C2440的busybox的移植 yaffs根文件系統(tǒng)制作

作者: 時間:2016-11-20 來源:網絡 收藏
硬件平臺:FL2440
操作系統(tǒng):Linux2.6.28.7
交叉編譯工具:arm-linux-gcc-3.4.1
飛凌公司默認的文件系統(tǒng),不具有文件延伸功能,比如在/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
必須要修改屬性,否則可能造成無法啟動文件系統(tǒng)。
第六步:將新生成的busybox替換掉原來的文件,在文件系統(tǒng)根目錄的bin目錄下。
第七步:替換busybox所需要的庫文件。這一步很關鍵,使用不同版本的交叉編譯工具編譯出來的busybox,所使用的庫是不同的。FL2440提供的busybox使用的3.3.2的交叉編譯工具,這里我們使用的3.4.1的版本,因此有必要替換掉原來的lib文件。如果不替換,啟動系統(tǒng)時將出現(xiàn)如下錯誤:
Failed to execute /linuxrc. Attempting defaults...
busybox使用的庫在如下路徑:
/usr/local/arm/3.4.1/arm-linux/lib
這里因交叉編譯環(huán)境安裝路徑不同而有所差異。將該目錄下的*.so,*.so.*,*.a,全拷備到根文件系統(tǒng)的lib目錄下,有文件重命名的直接覆蓋,刪除里面一些不必要的庫文件,如*jpeg*等,否則會出現(xiàn)壓縮的文件系統(tǒng)過大而燒不進去的現(xiàn)象。
第八步:使用mkyaffs2image工具制作文件系統(tǒng):
./mkyaffs2image qte_yaffs qte.yaffs
第九步:擦除開發(fā)板上的rootfs文件系統(tǒng)分區(qū),重新下載新生成的文件系統(tǒng),重啟開發(fā)板。
第十步:這時已經能夠正常進入控制臺,但是彈出如下錯誤提示:
mdev: /etc/mdev.conf: No such file or directory
在文件系統(tǒng)的etc下新建一個空文件mdev.conf,另外修改/etc/init.d下的rcS文件的最后一行為exec /usr/etc/rc.touch,以支持觸摸屏,默認為支持鼠標。
第十一步:再次制作文件系統(tǒng),同第八步,然后擦除rootfs文件系統(tǒng)分區(qū),重新下載最新的文件系統(tǒng),重啟開發(fā)板。這時一切正常。
第十二步:嘗試掛載SD卡驅動,或者使用busybox提供的相關命令,這次已經具備敲命令按TAB鍵延伸的功能了。

注:
制作過程中可能遇到文件系統(tǒng)大于64M,由于fl2440內存64M,不可能下載下來,所以可以先刪除/usr目錄下有關圖片等文件,燒完之后,再copy回去即可。硬件平臺:FL2440
操作系統(tǒng):Linux2.6.28.7
交叉編譯工具:arm-linux-gcc-3.4.1
飛凌公司默認的文件系統(tǒng),不具有文件延伸功能,比如在/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
必須要修改屬性,否則可能造成無法啟動文件系統(tǒng)。
第六步:將新生成的busybox替換掉原來的文件,在文件系統(tǒng)根目錄的bin目錄下。
第七步:替換busybox所需要的庫文件。這一步很關鍵,使用不同版本的交叉編譯工具編譯出來的busybox,所使用的庫是不同的。FL2440提供的busybox使用的3.3.2的交叉編譯工具,這里我們使用的3.4.1的版本,因此有必要替換掉原來的lib文件。如果不替換,啟動系統(tǒng)時將出現(xiàn)如下錯誤:
Failed to execute /linuxrc. Attempting defaults...
busybox使用的庫在如下路徑:
/usr/local/arm/3.4.1/arm-linux/lib
這里因交叉編譯環(huán)境安裝路徑不同而有所差異。將該目錄下的*.so,*.so.*,*.a,全拷備到根文件系統(tǒng)的lib目錄下,有文件重命名的直接覆蓋,刪除里面一些不必要的庫文件,如*jpeg*等,否則會出現(xiàn)壓縮的文件系統(tǒng)過大而燒不進去的現(xiàn)象。
第八步:使用mkyaffs2image工具制作文件系統(tǒng):
./mkyaffs2image qte_yaffs qte.yaffs
第九步:擦除開發(fā)板上的rootfs文件系統(tǒng)分區(qū),重新下載新生成的文件系統(tǒng),重啟開發(fā)板。
第十步:這時已經能夠正常進入控制臺,但是彈出如下錯誤提示:
mdev: /etc/mdev.conf: No such file or directory
在文件系統(tǒng)的etc下新建一個空文件mdev.conf,另外修改/etc/init.d下的rcS文件的最后一行為exec /usr/etc/rc.touch,以支持觸摸屏,默認為支持鼠標。
第十一步:再次制作文件系統(tǒng),同第八步,然后擦除rootfs文件系統(tǒng)分區(qū),重新下載最新的文件系統(tǒng),重啟開發(fā)板。這時一切正常。
第十二步:嘗試掛載SD卡驅動,或者使用busybox提供的相關命令,這次已經具備敲命令按TAB鍵延伸的功能了。

注:
制作過程中可能遇到文件系統(tǒng)大于64M,由于fl2440內存64M,不可能下載下來,所以可以先刪除/usr目錄下有關圖片等文件,燒完之后,再copy回去即可。


評論


技術專區(qū)

關閉