- 论坛徽章:
- 0
|
Kernel version :2.6.22.6Crosstool :arm-linux-gcc-3.4.5Board :FS2410
参考:《嵌入式Linux应用开发完全手册》
一、编译安装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 上的最小系统构建完毕,CS8900A、USB、QT……等待续。
Attachment:
![]()
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74310/showart_1144857.html |
|