编译busybox根文件系统

内核版本:linux-2.6.37.2 软件平台:ubuntu 10.10 硬件平台:mini2440 准备工作:busybox源码包 1.建立交叉编译环境,解压源码包进入目录,修改makefile文件如下

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

在命令行输入make menuconfig,不作修改直接保存配置退出,然后make,最后输入make install,就会在在目录里出现install这个文件夹。 2.进入install这个根文件夹,创建以下文件 创建/etc/inittab 以下是文件内容:

::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh //s3c2410_serial是mini2440的串口名。
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a

创建/etc/init.d/rcS 并加上运行权限,以下是文件内容:

#!/bin/sh
ifconfig eth0 192.168.1.12
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

创建/dev/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 在/dev下用mknod创建以下节点

mknod console c 5 1
mknod null c 1 3
mknod ttySAC0 c 204 64
mknod mtdblock0 b 31 0
mknod mtdblock1 b 31 1
mknod mtdblock2 b 31 2
mknod mtdblock3 b 31 3

注意:我的mini2440在common-smdk.c上是有4个区,所以对应mtdblock也有4个。 在根文件系统中创建其他空目录如下:

mkdir proc mnt tmp sys root

3.用mkyaffs2image把文件夹封装,这里要注意的是nand flash为64M的mini2440板用mkyaffs2image命令就可以了,128M或以上的要用mkyaffs2image-128M来封装,不然会出错。 这就是最简单的根文件系统,虽然配置起来不难,但是后面在根文件系统中设置环境变量才是重点。