<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          Linux下用Busy Box制作Ramdisk全過程

          作者: 時(shí)間:2007-05-17 來源:網(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)備鏈接庫


          #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)庫的麻煩 */

          [*] 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來解釋執(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超級服務(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

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();