1. 创建根文件系统的基本目录结构。
关于这个目录环境的建立,我们可以直接把这个过程做成shell脚本(文件名为mkroot.sh) ,很方便!
1): mkroot.sh
#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir bin boot dev etc home lib mnt proc root sbin sys tmp usr var www
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules
echo "make node in dev/console dev/null"
mknod -m 666 dev/console c 5 1
mknod -m 666 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp
chmod 1777 tmp
chmod 1777 var/tmp
echo "-------make direction done---------"
2): 在你想要建立根文件系统的地方,运行
sudo ./mkroot.sh
将在该路径下生成根文件目录。
2. 配置、编译和安装Busybox
1): 下载busybox
下载地址:http://www.busybox.net/downloads/
修改Makefile:
CROSS_COMPILE = arm-linux-
2): 配置busybox
make menuconfig
1)、进入"Busybox Settings"-->"Build Options ",选中“Build Busybox as a static binary”(直接按键盘空格键到“*”)。注意:这里是静态链接。
2)、在同页面,选择“ Cross Compiler prefix”,按键盘Enter键进入,然后输入:“arm-linux-” 。
3)、进入"Busybox Settings"-->"Installation Options"-->“ BusyBox installation prefix ”添加安装路径:指向上面所建立的根文件目录。
3): 编译和安装busybox
make ARCH=arm CROSS_COMPILE=arm-linux- -j4
make install
3. 修改和创建必要的文件
cp -a busybox/examples/bootfloppy/etc/* (上面所建立的根文件目录)/etc/
cd (上面所建立的根文件目录)/etc/
1): 增加为SHELL导入全局变量的文件etc/profile#vi profile
# /etc/profile: system-wide .profile file for the Bourne shells
echo
echo "Processing /etc/profile... "
# no-op
# Set search library path
echo "Set search library path in /etc/profile"
export LD_LIBRARY_PATH=/lib:/usr/lib
# Set user path
echo "Set user path in /etc/profile"
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
# Set PS1
#注意:ash 除了SHELL变量外,支持\u、\h、\W、\$、\!、\n、\w 、\nnn(ASCII字符对应的八进制数)
#以及\e[xx;xxm (彩色特效)等等!
#而且前面还要多加一个 '\'!
echo "Set PS1 in /etc/profile"
export PS1="\\e[05;32m[$USER@\\w\\a]\\$\\e[00;34m"
echo "Done"
echo
2): 增加初始化文件#vi inittab::sysinit:/etc/init.d/rcS::respawn:-/bin/shtty2::askfirst:-/bin/sh::ctrlaltdel:/bin/umount -a -r::shutdown:/bin/umount -a -r::shutdown:/sbin/swapoff -a#vi fstab
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
3): 增加初始化脚本#vi init.d/rcS
#! /bin/shecho "----------mount all"/bin/mount -aecho "----------Starting mdev......"/bin/echo /sbin/mdev > /proc/sys/kernel/hotplugmdev -secho "*********************************************************"
echo " thank you Tekkaman "echo " gec2410 Rootfs(nfs) 2009.4 yoso.Jeff "echo "********************************************************"
4): 为mdev创建配置文件
# touch mdev.conf
创建一个mdev.conf文件,内容可有可无。
4. 复制主机/etc/下面的文件passwd, group, shadow文件到/etc
# cp /etc/group .
# cp /etc/passwd .
# cp /etc/shadow .
一般上边的文件有很多内容,且基本是不需要的,而我们需要的仅是root账号的
#vi passwd
root:x:0:0:root:/root:/bin/sh#vi group
root:x:0:root#vi shadow
root:$1$N8K8eEQe$.XkJo3xcsjOE6vo1jW9Nk/:13923:0:99999:7:::那么现在 root的登陆密码和Host的登陆口令一致了,可以登录后再修改以及创建新用户。( 若使用以上文件,则root密码为tekkaman)
好了,大功告成。