新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux下用Busy Box制作Ramdisk全過程

        Linux下用Busy Box制作Ramdisk全過程

        作者: 時間:2007-05-17 來源:網絡 收藏
        1 建立根文件系統結構


        #mkdir rootfs



        #cd rootfs


        #mkdir bin dev etc lib proc sbin tmp usr var


        #chmod 1777 tmp


        #mkdir usr/bin usr/lib usr/sbin


        #mkdir var/lib var/lock var/log var/run var/tmp


        #chmod 1777 var/tmp



        2 準備鏈接庫


        #cd ${OBJ_LIB}/lib (${OBJ_LIB}是交叉編譯環境的目錄)


        #for file in libc libcrypt libdl libm


        >libpthread libresolv libutil


        >do


        >cp $file-*.so /home/fortis/rootfs/lib


        >cp -d $file.so.[*0-9] /home/fortis/rootfs/lib


        >done


        #cp -d ld*.so* /home/fortis/rootfs/lib



        3 使用busybox制作系統應用程序


        3.1 下載busybox(http://www.busybox.net/)并解壓。

        3.2 進入解壓后的目錄,配置Busybox

        $make menuconfig

        Busybox Settings >

        General Configuration >

        [*] Support for devfs

        Build Options >

        [*] Build as a static binary (no shared libs)

        /* 將busybox編譯為靜態連接,少了啟動時找動態庫的麻煩 */

        [*] Do you want to build with a Cross Compiler?

        (/usr/local/arm/3.3.2/bin/armlinux)

        Cross Compiler prefix/* 指定交叉編譯工具路徑 */

        Init Utilities >


        [*] init

        [*] Support reading an inittab file

        /* 支持init讀取/etc/inittab配置文件,一定要選上 */

        Shells >

        Choose your default shell (ash) >

        /* (X) ash 選中ash,這樣生成的時候才會生成bin/sh文件

        * 看看我們前頭的linuxrc腳本的頭一句:

        * #!/bin/sh 是由bin/sh來解釋執行的

        */

        [*] ash

        Coreutils >

        [*] cp

        [*] cat

        [*] ls

        [*] mkdir

        [*] echo (basic SuSv3 version taking no options)

        [*] env

        [*] mv

        [*] pwd

        [*] rm

        [*] touch

        Editors >

        [*] vi

        Linux System Utilities >

        [*] mount

        [*] umount

        [*] Support loopback mounts

        [*] Support for the old /etc/mtab file

        Networking Utilities >

        [*] inetd

        /*

        * 支持inetd超級服務器


        */

        3.3 編譯并安裝Busybox

        $make TARGET_ARCH=arm CROSS=armlinux

        PREFIX=/home/arm/dev_home/rootfs/my_rootfs/ all install

        PREFIX指明安裝路徑:就是我們根文件系統所在路徑。


        4 準備所需的設備文件


        可以直接拷貝宿主機上的,或者自建幾個就是。



        #cd rootfs/dev


        #mknod -m 600 console c 5 1


        5 創建linuxrc文件

        內容如下:

        $ vim rootfs/linuxrc

        #!/bin/sh


        echo Hello linux ,gggggg


        exec /sbin/init

        然后修改權限:chmod 775 linuxrc



        6 制作initrd映象文件


        #mkdir initrd


        #dd if=/dev/zero of=initrd.img bs=1k count=8192


        #/sbin/mke2fs -F -v -m0 initrd.img


        #mount -o loop initrd.img initrd


        #cp -av rootfs/* initrd


        #umount


        #gzip -9 initrd.img



        關鍵詞: Ramdisk BusyBox

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 静海县| 开封县| 吴川市| 铜山县| 台东市| 项城市| 宁城县| 龙州县| 于田县| 门源| 文登市| 淅川县| 勐海县| 叶城县| 龙陵县| 黔西县| 宁远县| 松滋市| 陆川县| 休宁县| 科技| 洛隆县| 株洲县| 襄垣县| 黔南| 龙山县| 洛宁县| 贵南县| 舞阳县| 五指山市| 大丰市| 绥江县| 昔阳县| 汨罗市| 托里县| 洛浦县| 永年县| 徐水县| 邯郸市| 碌曲县| 故城县|