新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux下用Busy Box制作Ramdisk全過(guò)程

        Linux下用Busy Box制作Ramdisk全過(guò)程

        作者: 時(shí)間:2007-05-17 來(lái)源:網(wǎng)絡(luò) 收藏
        1 建立根文件系統(tǒng)結(jié)構(gòu)


        #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 準(zhǔn)備鏈接庫(kù)


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


        #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制作系統(tǒng)應(yīng)用程序


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

        3.2 進(jìn)入解壓后的目錄,配置Busybox

        $make menuconfig

        Busybox Settings >

        General Configuration >

        [*] Support for devfs

        Build Options >

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

        /* 將busybox編譯為靜態(tài)連接,少了啟動(dòng)時(shí)找動(dòng)態(tài)庫(kù)的麻煩 */

        [*] 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,這樣生成的時(shí)候才會(huì)生成bin/sh文件

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

        * #!/bin/sh 是由bin/sh來(lái)解釋執(zhí)行的

        */

        [*] 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超級(jí)服務(wù)器


        */

        3.3 編譯并安裝Busybox

        $make TARGET_ARCH=arm CROSS=armlinux

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

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


        4 準(zhǔn)備所需的設(shè)備文件


        可以直接拷貝宿主機(jī)上的,或者自建幾個(gè)就是。



        #cd rootfs/dev


        #mknod -m 600 console c 5 1


        5 創(chuàng)建linuxrc文件

        內(nèi)容如下:

        $ vim rootfs/linuxrc

        #!/bin/sh


        echo Hello linux ,gggggg


        exec /sbin/init

        然后修改權(quán)限: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



        關(guān)鍵詞: Ramdisk BusyBox

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 繁昌县| 瑞安市| 巴林左旗| 资兴市| 金寨县| 玉林市| 拉萨市| 桃园市| 贵阳市| 合川市| 常德市| 秭归县| 阿鲁科尔沁旗| 且末县| 莒南县| 七台河市| 平山县| 山阳县| 和林格尔县| 门源| 德安县| 宁蒗| 闵行区| 昌吉市| 锡林浩特市| 潼关县| 新竹县| 武义县| 永城市| 龙州县| 林芝县| 望都县| 沽源县| 鄂伦春自治旗| 确山县| 济宁市| 伊宁县| 清水县| 钟山县| 应城市| 克什克腾旗|