版主: 51FPGA

分享到:
共6条 1/1 1   

从零开始制作文件系统

    [您是本帖的第1723位阅读者]
Druid
我是GG
高级会员

最后登陆时间:2013-10-31 13:29:44

直达楼层
1# 发表于 2013-09-02 21:38:43

本人对于arm的了解属于小白阶段。刚刚学习了如何从零开始制作文件系统,与大家分享,希望能帮助到一些同学。

 

1、首先下载busybox.目前最新的稳定版为1.21.1

 

2、在工作目录下创建根目录文件夹,rootfs.

 

ubuntu:~/PrjDev$ mkdir rootfs;

 

3、解压busybox, 

 

ubuntu:~/PrjDev$tar jxvf busybox-1.21.1.tar.bz2;

 

4、进入busybox根目录,修改Makefile,修改ARCHCROSS_COMPILE两个变量的值

 

ARCH =arm

 

CROSS_COMPILE=arm-xilinx-linux-gnueabi-

 

5、通过busybox的配置菜单配置制作文件系统

 

ubuntu:~/PrjDev/busybox-1.21.1$make menuconfig

 

系统将弹出配置菜单,只需要选择动态库编绎,其它基本不需要配置;

 

6、编译busybox使用命令make install CONFIG_PREFIX=/home/PrjDev/rootfsbusybox进行安装

 

编绎成功之后rootfs下面生成三个文件夹,bin,sbin,usr还有一个指向busybox的软链接linuxrc

 

7、在rootfs下创建相关目录

 

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

 

8、下面开始建立及复制文件系统所需的文件

 

 1)在/rootfs/dev/目录下建立 consolenull节点文件

 

      在提示符后输入 sudo mknod -m 666 console c 5 1

 

                             sudo mknod -m 666 null c 1 3

 

 2)在/rootfs/etc目录下创建fstabinittab文件

 

    fstab文件内容如下:

 

   none  /proc proc defaults 0 0

 

   none /dev/pts devpts mode=0622 0 0

 

   tmpfs /dev/shm tmpfs defaults 0 0

 

   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

 

创建完成后,再提示符下输入:chmod +x fstab inittab

 

  3)/rootfs/etc/init.d目录下建立rcS文件

 

    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

最后在提示符下输入:

Chmod +x rcS

4)复制lib库文件

将交叉编绎工具有下的lib文件拷贝到rootfs下的lib目录下。

Cp  /lib/*  /home/PrjDev/rootfs/lib/ -df

 

至此,文件系统制作完成,如果想移植opencv等库,只需要将交叉编绎工具编绎好的库文件也拷贝进来就行了。




关键词:开始    制作    文件    系统    

Druid。

RE: 从零开始制作文件系统

nakey
我是MM
高级会员

最后登陆时间:2015-03-02 15:07:30

2# 发表于 2013-09-03 13:13:30
哇   一步步写的好详细呀

RE: 从零开始制作文件系统

TLZme
我是GG
高级会员

最后登陆时间:2014-12-23 09:31:48

3# 发表于 2013-09-26 13:34:02
步骤详细啊

天外有天 ,人外有人。。

RE: 从零开始制作文件系统

落月风情
我是GG
高级会员

最后登陆时间:2015-01-28 23:01:55

4# 发表于 2013-09-26 13:50:34
很有味道啊

Nothing in the world can take the place of persistence ! Come on baby !。

RE: 从零开始制作文件系统

hong001
我是MM
高级会员

最后登陆时间:2014-12-30 10:40:58

5# 发表于 2013-09-26 14:06:41
步骤详细,很受教~妈妈再也不用担心我不会制作文件系统了~

hong001。

RE: 从零开始制作文件系统

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

6# 发表于 2014-01-10 16:31:42
mark。。。。。
共6条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]