免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 616 | 回复: 0
打印 上一主题 下一主题

为 ARM Linux 制作根文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-26 02:39 |只看该作者 |倒序浏览

                                 为 ARM Linux 制作根文件系统
               
根文件系的组成:目录、Shell、库、脚本
(1)目录
   根文件系统要包含的目录:/dev /lib /etc、/proc
   /dev:设备文件系统的挂接点
   /lib:用于存放动态链接库
   /etc:用来存放初始化脚本和其他配置文件的
   /proc:用来挂载存放系统信息虚拟文件系统
(2)Shell
   Shell 就是 Busybox,从网上下载来 busybox-1.9.1.tar.gz
   解压缩以后找到 Makefile 里面的 ARCH 和 CROSS_COMPILE,改成:
   ARCH   ?= arm
   CROSS_COMPILE ?= /usr/local/arm/3.3.2/bin/arm-linux-
   当然 CROSS_COMPILE 由你自己的编译器位置决定,然后:
   # make menuconfig
   # make
   # make install
   默认是安装在 Busybox 下的 _install 目录里,然后我们就可以在 Busybox
   生成的 Shell 基础上建根文件系统了, 以命令示之,如下:
   # 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 身份执行(可通过 su 切换):
   # cd dev
   # mknod -m 660 console c 5 1
   # mknod -m 660 null c 1 3
(3)库
   可拷贝开发板自带的文件系统的库,如果开发板的文件系统是映像,只需把映像挂载
   在某个目录下访问即可。假设映像为 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 正常工作, 还要设置初始化脚本。
   首先是 /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
   其次设置文件系统的挂载表 /etc/fstab:
   #                           
   /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
   
   再设置 /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)生成根文件系统映像
   # mkcramfs rootfs rootfs.cramfs
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/60753/showart_483661.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP