关闭

busybox-1.7.0制作yaffs根文件系统

330人阅读 评论(0) 收藏 举报

一、编译安装Busybox

使用mdev机制制作最小根文件系统fs_mini_mdev,建立基本目录树:

[root@weijing fs_mini_mdev]# pwd
/work/rootfs/fs_mini_mdev
[root@weijing fs_mini_mdev]# mkdir bin dev etc lib mnt proc sbin sys root tmp usr
[root@weijing fs_mini_mdev]# mkdir mnt/etc
[root@weijing fs_mini_mdev]# mkdir usr/bin usr/sbin usr/lib
[root@weijing fs_mini_mdev]# touch linuxrc

 1.配置Busybox
    在busybox-1.7.0目录下"make menuconfig", 
    see attachments 1—4

 2.编译安装
    修改Makefile文件,使用交叉编译器;
    ARCH            ?= arm
    CROSS_COMPILE   ?= arm-linux-

[root@weijing busybox-1.7.0]# make
[root@weijing busybox-1.7.0]# make CONFIG_PREFIX=/work/rootfs/fs_mini_mdev install

    see attachments 5

二、使用glibc库

[root@weijing fs_mini_mdev]# cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
[root@weijing lib]# cp *.so* /work/rootfs/fs_mini_mdev/lib -d

三、构建根文件系统

  1.创建 etc/inittab 文件

# /etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

  2.创建 etc/init.d/rcS 文件

#!/bin/sh
ifconfig eth0 192.168.1.17

mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

改变其属性:chmod +x etc/init.d/rcS

  3.创建 etc/fstab 文件

# device     mount-point    type   options        dump  fsck order
proc           /proc        proc   defaults        0     0
tmpfs          /tmp        tmpfs  defaults        0     0
sysfs          /sys         sysfs  defaults        0     0
tmpfs          /dev        tmpfs  defaults        0     0

  4. mdev 是通过 init 进程来启动的,在使用 mdev 构造 /dev 目录之前,init 至少要用到设备文件/dev/console、 /dev/null ,所以建立这两个设备文件。

[root@weijing fs_mini_mdev]# cd dev/
[root@weijing dev]# sudo mknod console c 5 1 
[root@weijing dev]# sudo mknod null c 1 3
[root@weijing dev]# ls
console  null
[root@weijing dev]#

四、修改制作yaffs映象文件的工具

    在 yaffs 源码中有个 utils 目录,里面是工具 mkyaffsimage 和 mkyaffs2image的源代码,前者用来制作 yaffs1 映象文件,后者用来制作 yaffs2 映象文件。目前 mkyaffsimage 工具只能生成老格式的yaffs1 映象文件,需要修改才能支持新格式。在这里,直接打上书中补丁即可。

[root@weijing rootfs]# pwd
/work/rootfs
[root@weijing rootfs]# mkyaffsimage fs_mini_mdev fs_mini_mdev.yaffs

烧写、启动。
u-boot参数:

bootargs=noinitrd console=ttySAC0,115200 root=/dev/mtdblock2 rootfstype=yaffs   
bootcmd=nand read 0x32000000 0x100000 0x200000; bootm 0x32000000

由于我之前制作u-boot 不能向内核传递参数(待研究),所以在编译内核时修改参数:

Kernel command line: noinitrd console=ttySAC0,115200 root=/dev/mtdblock2 rootfs rw

至此,FS2410 上的最小系统构建完毕。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:143177次
    • 积分:1747
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:212篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论