• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 60, 文章 - 0, 評(píng)論 - 197, 引用 - 0
            數(shù)據(jù)加載中……

            學(xué)習(xí) ARM 系列 -- 為 ARM Linux 制作根文件系統(tǒng)

            根文件系的組成:目錄、Shell、庫(kù)、腳本
            (1)目錄
               根文件系統(tǒng)要包含的目錄:/dev /lib /etc、/proc
               /dev:設(shè)備文件系統(tǒng)的掛接點(diǎn)
               /lib:用于存放動(dòng)態(tài)鏈接庫(kù)
               /etc:用來(lái)存放初始化腳本和其他配置文件的
               /proc:用來(lái)掛載存放系統(tǒng)信息虛擬文件系統(tǒng)

            (2)Shell
               Shell 就是 Busybox,從網(wǎng)上下載來(lái) busybox-1.9.1.tar.gz
               解壓縮以后找到 Makefile 里面的 ARCH 和 CROSS_COMPILE,改成:

               ARCH   ?= arm
               CROSS_COMPILE ?= /usr/local/arm/3.3.2/bin/arm-linux-

               當(dāng)然 CROSS_COMPILE 由你自己的編譯器位置決定,然后:

               # make menuconfig
               # make
               # make install

               默認(rèn)是安裝在 Busybox 下的 _install 目錄里,然后我們就可以在 Busybox
               生成的 Shell 基礎(chǔ)上建根文件系統(tǒng)了, 以命令示之,如下:

               # mkdir /home/jianbw/rootfs
               # cd /home/jianbw/busybox/_install
               # cp -r ./ /home/jianbw/rootfs

               # cd /home/jianbw/rootfs
               # mkdir dev
               # mkdir etc
               # mkdir lib
               # mkdir proc
               # mkdir sys
               # mkdir tmp

               以 root 身份執(zhí)行(可通過(guò) su 切換):
               # cd dev
               # mknod -m 660 console c 5 1
               # mknod -m 660 null c 1 3

            (3)庫(kù)
               可拷貝開(kāi)發(fā)板自帶的文件系統(tǒng)的庫(kù),如果開(kāi)發(fā)板的文件系統(tǒng)是映像,只需把映像掛載
               在某個(gè)目錄下訪問(wèn)即可。假設(shè)映像為 demo.cramfs,以命令示之,如下:

               # mkdir /home/jianbw/demo
               # mount -o loop demo.cramfs /home/jianbw/demo
               # cd /home/jianbw/demo/lib
               # cp -r ./ /home/jianbw/rootfs/lib

            (4)腳本
               要使 Shell 正常工作, 還要設(shè)置初始化腳本。

               首先是 /etc/inittab:
               # Startup the system
               null::sysinit:/bin/mount -o remount,rw /
               null::sysinit:/bin/mount -t proc proc /proc
               null::sysinit:/bin/mount -a
               null::sysinit:/bin/hostname -F /etc/hostname# Now run any rc scripts
               ::sysinit:/etc/init.d/rcS                   # Now invoke shell
               ::askfirst:/bin/ash                         # Logging junk
               null::sysinit:/bin/touch /var/log/messages
               null::respawn:/sbin/syslogd -n -m 0
               null::respawn:/sbin/klogd -n                # Stuff to do for the 3-finger salute
               ::ctrlaltdel:/sbin/reboot                        # Stuff to do before rebooting
               null::shutdown:/usr/bin/killall klogd
               null::shutdown:/usr/bin/killall syslogd
               null::shutdown:/bin/umount -a -r
               null::shutdown:/sbin/swapoff -a

               其次設(shè)置文件系統(tǒng)的掛載表 /etc/fstab:
               # <file system> <mount pt> <type> <options>                       <dump> <pass>
               /dev/root          /                  ext2      rw,noauto                           0      1
               proc                 /proc           proc     defaults                               0      0
               devpts              /dev/pts       devpts  defaults,gid=5,mode=620      0      0
               tmpfs                /tmp            tmpfs    defaults                             0      0
               sysfs                 /sys             sysfs     defaults                             0      0
               

               再設(shè)置 /etc/init.d/rcS:
               # Start udev
               /bin/mount -t tmpfs tmpfs /dev
               /sbin/udevd --daemon
               /sbin/udevstart  # Configure net interface
               /sbin/ifconfig lo 127.0.0.1 up
               /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
               /sbin/ifconfig eth0 192.168.2.25 netmask 255.255.255.0
               /sbin/route add default gw 192.168.2.1

            (5)生成根文件系統(tǒng)映像
               # mkcramfs rootfs rootfs.cramfs

            posted on 2008-02-19 12:29 Normandy 閱讀(8731) 評(píng)論(3)  編輯 收藏 引用 所屬分類: Embeded Area

            評(píng)論

            # re: 學(xué)習(xí) ARM 系列 -- 為 ARM Linux 制作根文件系統(tǒng)  回復(fù)  更多評(píng)論   

            不錯(cuò),以前一直用別人的,現(xiàn)在也可以自己修改出來(lái)一個(gè)了。
            2008-02-19 15:25 | aGAric

            # re: 學(xué)習(xí) ARM 系列 -- 為 ARM Linux 制作根文件系統(tǒng)  回復(fù)  更多評(píng)論   

            你的內(nèi)核版本是多少,設(shè)備用的是devfs還是udev
            2008-07-02 09:10 | joely

            # re: 學(xué)習(xí) ARM 系列 -- 為 ARM Linux 制作根文件系統(tǒng)  回復(fù)  更多評(píng)論   

            請(qǐng)問(wèn)你用的是什么板子?
            2009-04-02 16:41 | 去來(lái)公子
            久久久久免费看成人影片| 久久久无码一区二区三区 | 99久久夜色精品国产网站| 久久人人青草97香蕉| 欧美va久久久噜噜噜久久| 蜜桃麻豆www久久| 亚洲天堂久久久| 久久亚洲国产欧洲精品一| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲国产精品无码成人片久久| 99久久国产热无码精品免费| 日日狠狠久久偷偷色综合0| 久久精品黄AA片一区二区三区| 久久人妻少妇嫩草AV无码蜜桃| 精品国产乱码久久久久软件| 久久久久国产一级毛片高清板| 精品久久无码中文字幕| 久久综合视频网| 久久久久99精品成人片三人毛片| 国产精品久久波多野结衣| 亚洲欧美伊人久久综合一区二区| 日韩欧美亚洲综合久久影院Ds| 国产韩国精品一区二区三区久久 | 精品久久综合1区2区3区激情| 国产精品久久免费| 久久久国产精品亚洲一区| 中文字幕无码精品亚洲资源网久久 | 潮喷大喷水系列无码久久精品| 久久久久久久女国产乱让韩| 久久综合色之久久综合| 日本精品久久久中文字幕| 久久99精品国产99久久6男男| 无码日韩人妻精品久久蜜桃| 久久亚洲国产精品成人AV秋霞| 色8激情欧美成人久久综合电| 九九久久精品国产| 久久久久国产精品三级网| 理论片午午伦夜理片久久| 一本久久免费视频| 亚洲AV无码一区东京热久久 | 久久热这里只有精品在线观看|