微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > cramfs根文件系统的移植成功(fs2410下亲测)

cramfs根文件系统的移植成功(fs2410下亲测)

时间:11-11 来源:互联网 点击:

根文件系统无法再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-only file system

mount: /etc/mtab: No such file or directory

mount: /etc/mtab: Read-only file system

mount: /etc/mtab: Read-only file system

mount: /etc/mtab: Read-only file system

mount: /etc/mtab: Read-only file system

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

/ #

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top