内核版本:2.6.31
编译器版本:4.1.2
所用工具busybox版本:1.15.2
一、创建目录
#sudo root_2.6.31
#cd root_2.6.31
#sudo mkdir bin etc dev home lib mnt opt proc root sbin sys tem usr var
二、解压busybox
#tar xjvf busybox1.15.2.tar.bz2
进入busybox主目录
#cd busybox1.15.2
把第164行 CROSS_COMPILE ?=改成:
CROSS_COMPILE ?= arm-linux-
第190行 ARCH ?= $(SUBARCH) 改成:
ARCH ?= arm
3、配置busybox
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs) 静态编译
[*] Build with Large File Support (for accessing files > 2 GB)
Installation Options --->
(./_install) BusyBox installation prefix ./_install 是安装路径
Busybox Library Tuning --->
[*] vi-style line editing commands
[*] Fancy shell prompts
保存退出
4、编译、安装
#make
#make install
5、制作文件系统
在busybox/_install 生成 bin sbin usr linuxrc 文件和文件夹,把这文件全部复制到root_2.6.31文件下
#sudo cp -rf * /root_2.6.31
在root_2.6.31/dev文件下创建两个结点
#sudo mknod console c 5 1
#sudo mknod null c 1 3
写配置文件,可以从busybox-1.15.2/examples/bootfloppy/etc复制到root_2.6.31/etc文件下
#sudo cp -r ../../busybox-1.15.2/examples/bootfloppy/etc/* ./
把宿主机上的有关密码文件复制到root_2.6.31/etc文件下
sudo cp -rf /etc/passwd ./
sudo cp -rf /etc/group ./
sudo cp -rf /etc/shadow ./
把passwd文件下第一行root:x:0:0:root:/root:/bin/bash 改成:
root:x:0:0:root:/root:/bin/ash 由于文件系统下的bin没有bash,所以用ash代替
修改Inittab文件
console::sysinit:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
::tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
修改profile文件
# /etc/profile: system-wide .profile file for the Bourne shells
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/init.d/reS文件
#! /bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
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
修改fstab文件
proc /proc proc defaults 0 0
tmpfs /temp tpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
在/etc文件夹想创建sysconfig,在sysconfig创建文件HOSTNAME里面的内容为:My2440
把库文件复制到文件系统的lib文件夹下
sudo cp -f -a /toolchains/arm920t-eabi/arm/angstrom-linux-gnueabi/lib/*.so ./
这样制作出的文件系统很大,下面是常用到的库文件:
libresolv.so libthread_db.so
最后是有mkyaffs2image工具制作yaffs2镜像
该文章与http://hi.baidu.com/123820668/blog/item/b400e5dd5d8ae44eccbf1a4f.html为同一人博客