新聞中心

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

        基于S3C2440的busybox的移植 yaffs根文件系統制作

        作者: 時間:2016-11-20 來源:網絡 收藏
        硬件平臺: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回去即可。硬件平臺: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回去即可。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 济南市| 朝阳县| 偏关县| 集安市| 宣武区| 涡阳县| 西安市| 宁波市| 横峰县| 桂林市| 绿春县| 长宁县| 临泽县| 澄江县| 二手房| 吕梁市| 秀山| 寻甸| 万山特区| 五家渠市| 盐边县| 禹城市| 东丰县| 甘谷县| 景德镇市| 全南县| 清涧县| 西峡县| 新建县| 门源| 邳州市| 若尔盖县| 宁城县| 峨眉山市| 通化市| 紫金县| 彝良县| 子长县| 张家口市| 东山县| 郧西县|