一、制作目录
创建一个文件夹名为root_2.6.31
创建子目录/bin、/etc、/dev、/home、/lib、/mnt、/opt、/proc、/root、/sbin、/sys、/tmp、/usr、/var
二、编译busybox
解压BusyBox,修改Makefile 制定编译器和芯片arm
修改第164行 CROSS_COMPILE = arm-linux-
修改第190行 ARCH = arm
配置BusyBox
Busybox Setting --->
Build Options --->
[*]Build Busybox as a static binary(no shared libs)
[*]Build with Large File Support (for accessing files > 2GB)
Installation Options --->
(./_install) Busybox installation prefix <—进入这个选项,输入busybox生成文件路径,
如:../rootfs
Busybox Library Tuning --->
[*] vi-style line editing commands
[*] Fancy shell prompts
编译,输入make 然后 make install,将生成的文件全部放到root_2.6.31目录中·
三、制作文件系统
在dev目录下创建设备节点
#mknod console c 5 1
#mknod null c 1 3
进入etc目录,将Busybox-1.15.2/examples/bootfloopy/etc/目录下所有文件拷贝过来;拷贝/etc/passwd、/etc/group、/etc/shadow到当前目录下,把passwd文件中的第一行:root:x:0:0:root:/root:/bin/bash中的/bin/bash,改成/bin/ash
修改inittab文件:
内容如下:
console::sysinit:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/bin/umount -a -r
修改fstab文件,内容如下:
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
修改init.d/rcS文件,内容如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
6
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME
修改profile文件,内容如下:
# Ash profile
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
echo "Processing /etc/profile... "
echo "Done"
export USER LOGNAME PS1 PATH
在etc目录下新建HOSTNAME文件夹 在里面添加文件 内容为TX2440A
拷贝交叉编译器的库文件到lib目录下
#cp -f -a /opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib/*.so* ./
安装mkyaffs2image工具,制作yaffs2镜像,解压mkyaffs2image.tar.gz,将解压出 来的可执行文件复制到/usr/bin目录下。
生成yaffs2文件系统镜像:
mkyaffs2image root_2.6.31 root_2.6.31.bin
特别要注意文件的权限问题 在制作镜像前,一定要把etc目录下所有文件权限设好,否则编译可能没问题 但是安装到arm板上会无法正常载入文件系统