您的位置:首页 > 其它

cramfs文件系统制作。/*嵌入式博客3_7*/

2012-03-08 00:11 429 查看
今天学习嵌入式cramfs文件系统的制作。

操作环境,ubuntu11.04。工具:busybox1.13.0、cross-arm-linux-4.2.2-eabi交叉编译器。

一、安装busybox1.13.0

在这一阶段真的是把我给害苦了,因为不是很清楚busybox1.13.0的配置原理,所以上面的很多选项都是尝试的做的。好了直接说一下安装步骤。

1、下载。2.解压。3、创建路径mkdir/rootfs

4、先对对busybox下Makefile文件的做一些修改。
#vi Makefile
1)搜索命令/ARCH ?=
将这一行的内容改为ARCH =arm,注意我就是在这里出现的错误,不知道为什么我的只有将这个问号去掉才能编译成功,而网上很多帖子是不用去掉这个问号的。
2)搜索命令/CROSS_COMPILE ?=
将这一行改写成CROSS_COMPILE=/usr/local/arm/usr/bin/arm-linux-
这里/usr/local/arm/usr/bin/arm-linux- 是我自己的交叉编译器的路径,你要将它改写成你自己的编译器路径。

5、对dusybox 的一些配置(重要)

make menucong执行命令后会出现(上图)



6、进入:Busybox Setting-----> 

       build option--> 



进入,注意第一行,和最后一行,第一行代表了你的文件系统是否要共享libs库函数,这一条需要选上,到最后就可以不用认为的添加libs库文件了。

最后一行代表你的交叉编译器路径,我的是/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-。你按自己的路径正确填写。



退出进入图二,选第四行,选择installation option



第三行选择你要将busybox安装在那个路径下,我这里选择的是/rootfs。这里有一点我也现在还是不是很清楚,在最后几步里,cramfs文件系统也要从这个目录产生。自己在了解一下是不是可以将这两者分开在两个目录下。

7、这样就可以执行命令make了

#make

#make install

8、进入/rootfs下查看是否生成了bin 、sbin和linuxc的文件,如果已经生成了,就证明你已经成功了一半了

9、对/rootfs下的文件进行一些处理

# mkdir boot dev etc home lib mnt proc root sys tmp var  usr

执行上面的命令,创建一些基本的文件目录  

10、建立及复制文件系统所需要的文件

1)、在/rootfs/dev/目录下建立console和null节点文件(要有root权限)

执行命令

/rootfs/dev# mknod -m 666 console c 5 1 
/rootfs/dev# mknod -m 666 null c 1 3 

12、在/rootfs/etc/目录下建立fstab和inittab文件

进入/rootfs/etc/目录,创建 fstab 文件,其内容如下: 

none    /proc    proc    defaults     0     0 

none    /dev/pts  devpts mode=0622          0       0 

tmpfs    /dev/shm  tmpfs    defaults     0     0 

进入/rootfs/etc/目录,创建 inittab 文件,其内容如下: 

#[inittab] 

::sysinit:/etc/init.d/rcS 

::askfirst:-/bin/sh 

::restart:/sbin/init 

::ctrlaltdel:/sbin/reboot 

::shutdown:/bin/umount -a –r 

::shutdown:/sbin/swapoff –a 

最后在提示符下输入: 

/rootfs/etc# chmod +x fstab inittab 

13、在/rootfs/etc/init.d/目录下建立rcS文件

进入/rootfs/etc/目录,创建 init.d 目录,在该目录下创建 rcS 文件,其

内容如下: 

#! /bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin 

echo "running /etc/init.d/rcS" 

echo " mount -t proc proc /proc" 

mount -t proc proc /proc 

echo " mount -t sysfs /sys /sys" 

mount -t sysfs /sys /sys 

# echo " mount -t tmpfs /tmpfs /dev " 

#/mount -t tmpfs /tmpfs /dev 

#echo "mount ramfs filesystem to /var" 

#/mount -t ramfs none /var 

#echo "starting udevd..." 

#/udevd --daemon 

#/udevstart 

#ln -s /dev/rtc0 /dev/rtc 

#/mount -t yaffs2 /dev/mtdblock1 /home/ 

#hostname SBC6020 

#ifconfig lo 127.0.0.1 netmask 255.0.0.0 

#ifconfig eth1 192.192.192.200 netmask 255.255.255.0 

#ifconfig eth0 hw ether 00:11:22:33:44:55 

#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 

#/opt/apache/bin/apachectl start 

#exec /etc/init.d/rcS.local 

最后在提示符下输入: 

/rootfs/etc/init.d# chmod +x rcS 

14、到这里基本上已经完成了,然后在执行最后一步命令生成cramfs文件系统

#mkcramfs  rootfs  demo.cramfs 

如果你没有安装mkcramfs的脚本文件的话,系统会提示你的,使用apt-get install下载相应的脚本就行了

下一篇博客:配置TFTP及NFS。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息