初试构建Linux根文件系统
开发环境:
SYSTEM : Ubuntu-12.04
Board : Mini2440-t35
Bootloader : u-boot-1.1.6
Kernel : Linux-2.6.22.6
CROSS_COMPILE: arm-linux-gcc v3.4.5
说明:制作过程参考《嵌入式Linux应用开发完全手册》和韦东山视频教程,所用bootloader为韦东山老师提供,Kernel修改自韦东山老师提供的补丁,主要修改了LCD驱动使其能够正确用在我的MINI2440开发板
一、编译busybox-1.7.0
$ tar xjvf busybox-1.7.0.tar.bz2
$ make menuconfig
这里只修改了少部分内容,添加如下选项
Busybox Settings --->
Busybox Library Tuning --->
[*] Tab completion
保存、退出
修改顶层Makefile,指定
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
$ make
$ make CONFIG_PREFIX=<......>/myfirst_rootfs install
二、 创建console、null设备节点
$ mkdir dev
$ cd dev
$ sudo mknod console c 5 1 (c表示字符设备、主设备号是5、次设备号是1)
$ sudo mknod null c 1 3
三、创建 /etc/inittab
$ cd ../
$ mkdir etc
$ vim etc/inittab
添加如下内容
console::askfirst:-/bin/sh
四、安装glibc库
glibc库来自韦东山老师的gcc-3.4.5-glibc-2.3.6
$ mkdir lib
$ cp <.....>/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* ./lib -d
五、文件系统制作测试
$ mkyaffs2image myfirst_rootfs myfirst_rootfs.yaffs2
烧入、测试
到这里最基本的文件系统已经建立,在我的Mini2440上可正常挂载
测试注意修改bootargs参数
set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=yaffs
结果OK
六、完善
添加配置文件
$ cd myfirst_rootfs
$ mkdir proc (创建proc目录,即proc挂载点)
$ vim etc/inittab
添加
::sysinit:/etc/init.d/rcS
创建脚本文件
$ mkdir etc/init.d
$ vim etc/init.d/rcS
修改rcS脚本如下
$ vim etc/init.d/rcS
mount -a #(依赖于etc/fstab)
$ vim etc/fstab
添加如下内容:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
$ mkyaffs2image myfirst_rootfs myfirst_rootfs.yaffs2
烧入测试,ps命令可用
使用mdev创建设备文件
$ mkdir sys
$ mkdir tmp
$ vim etc/fstab
增加内容
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults
$ vim etc/init.d/rcS
#mount -t proc none /proc
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
测试、查看开发板dev/目录下文件
如果用NFS网络文件系统,可修改bootargs参数如下:
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.102:/home/tshwang/arm_linux/nfs/rootfs/myfirst_rootfs ip=192.168.1.117:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 rootfstype=yaffs
阅读(1745) | 评论(2) | 转发(1) |