cramfs根文件系统的移植成功(fs2410下亲测)
根文件系统无法再fs2410上正常启动,换回busybox - 1. 00 - pre10则可以轻松解决这个问题。
首先将busybox-1.00-pre10.tar.bz2拷贝到用户家目录:home/jixiang (busybox拷贝到什么目录可以自行设定)。
[root@mynet jixiang]# cd /home/jixiang
[root@mynet jixiang]# tar vxjf busybox-1.00-pre10.tar.bz2
[root@mynet jixiang]# cd busybox-1.00-pre10
[root@mynet busybox-1.00-pre10]# make menuconfig
进入配置菜单界面,我们做如下配置:
(1)在General Configuration中,一定要选择“Support for devfs”选项,现在的Busybox新版本去掉了这个选项,不过应该可以通过修改配置文件加入。
图1配置支持设备文件系统界面
(2)在Build Options选项中,选择使用“静态库”以及设置交叉编译工具的PREFIX。我使用的交叉编译工具的路径是:/usr/local/arm/3.3.2/bin。(具体情况因宿主机交叉编译环境路径不同做相应修改。
图2配置静态库界面
(3)在Init Utilities选项中,“Support reading an inittab file”应该选中,这样可以根据自己编写的inittab文件初始化;“Support running init from within an initrd ”应该选中,否则会提示非常困扰的“/bin/sh: cant access tty; job control turned off”的提示,尽管可以进入控制台命令行。
图3脚本文件配置界面
(4)Another Bourne - like Shell→Choose your default shell (ash)→,这里应该选中默认shell :ash ,否则不会生成sh导致不能解释脚本文件。
图4 shell配置
(5)其他的配置可以根据自己开发需要自行配置。
4.3编译并安装Busybox
配置完成后,退出保存(最好备份.config文件以供后用),然后开始生成,执行make TARGET_ARCH=arm;此处的TARGET_ARCH是必须的。
[root@mynet busybox-1.00-pre10]# make TARGET_ARCH=arm
[root@mynet busybox-1.00-pre10]# make install
Busybox将在默认的PREFIX目录- install下面生成bin、sbin、usr三个子目录和一个链接文件linuxrc。
4.4准备生成cramfs文件系统
(1)创建一个文件夹rootfs,把_install目录下生成的bin、sbin、usr三个目录拷贝到rootfs,并且在rootfs目录下建立其他子目录。执行命令mkdir dev etc home lib mnt procsystmp var,建立相应的文件夹,再建立etc下的init.d文件夹。
(2)准备启动文件inittab、fstab、linuxrc、rcS。其中inittab、fstab放在etc目录下面, rcS放在etc/ init.d/目录下面,linuxrc放在rootfs目录下面。
(3)简单的配置文件的编写
linuxrc文件:
#!/bin/sh
echo "mount /etc as ramfs"
/bin/mount -f -t cramfs -o remount,ro /dev/bon/2 /
/bin/mount -t ramfs ramfs /var
/bin/mkdir -p /var/tmp
/bin/mkdir -p /var/run
/bin/mkdir -p /var/log
/bin/mkdir -p /var/lock
/bin/mkdir -p /var/emptymk
#/bin/mount -t usbdevfs none /proc/bus/usb
exec /sbin/init
rcS文件:
#!/bin/sh
/bin/mount –a
fstab文件:
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
tmpfs /dev/shm tmpfs defaults 0 0
注意应该使得上述文件具有执行权限,可以使用chmod755来修改其权限。
4.5生成Cramfs根文件系统映像
我们使用的是优龙提供的cramfs-1.1.tar.gz源码包,用该工具生成根文件系统映像,
解压后将mkcramfs放到宿主机Red Hat9的/bin目录下。
转到rootfs目录的上级目录执行:mkcramfsrootfstest.cramfs
5下载运行test.cramfs
将test.cramfs通过dnw下载到优龙FS2410开发板的nandflash中的文件分区(其地址为:offset 0x200000 , size 0x1e00000),文件系统正常启动。启动界面如图:
NET: Registered protocol family 1
NET: Registered protocol family 17
VFS: Mounted root (cramfs filesystem) readonly.
Mounted devfs on /dev
Freeing init memory: 124K
mount /etc as ramfs
mount: /etc/mtab: No such file or directory
mount: /etc/mtab: Read-on
mount: /etc/mtab: No such file or directory
mount: /etc/mtab: Read-on
mount: /etc/mtab: Read-on
mount: /etc/mtab: Read-on
mount: /etc/mtab: Read-on
Please press Enter to activate this console.
BusyBox v1.00-pre10 (2009.09.01-12:23+0000) Built-in shell (ash)
Enter help for a list of built-in commands.
/ # ls
binetclibmntsbintmpvar
devhomelinuxrcprocsysusr
/ #
cramfs根文件系统移植成功fs241 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)