busybox-1.7.0製作yaffs根文件系統

一、編譯安裝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 上的最小系統構建完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章