- 论坛徽章:
- 0
|
1 构造目标板的根目录及文件系统
1.1 建立一个目标板的空根目录
我们将在这里构建构建根文件系统,创建基础目录结构. 存放交叉编译后生成的目标应用程序(BUSYBOX,TINYLOGIN),存放库文件等。
# mkdir rootfs
# cd rootfs
# pwd
/home/arm/dev_home/rootfs
1.2 在rootfs中建立Linux目录树
#mkdir bin dev etc home lib mnt proc sbin sys tmp root usr
#mkdir mnt/etc
#mkdir usr/bin usr/lib usr/sbin
#touch linuxrc
#tree
.
| --bin
| --dev
| --etc
| --home
| --lib
| --linuxrc /* 此文件为启动脚本,是一shell脚本文件。本文后面有专门介绍*/
| --mnt
| ` --etc
| --proc
| --sbin
| --sys
| --tmp
| --root
` --usr
| --bin
| --lib
` --sbin
权限参照你的linux工作站即可,基础目录介绍参见本文参考资料(未尾)。
需要说明的一点就是etc目录存放配置文件,这个目录通常是需要修改的,所以在linuxrc脚本当中将etc目录
挂载为ramfs文件系统,然后将mnt/etc目录中的所有配置文件拷贝到etc目录当中,这在下一节的linuxrc脚本
文件当中会有体现。
1.3 创建linuxrc文件
1. 创建linuxrc,加入如下内容:
#vi linuxrc
!/bin/sh
echo "mount /etc as ramfs"
/bin/mount -n -t ramfs ramfs /etc
/bin/cp -a /mnt/etc/* /etc
echo "recreate the /etc/mtab entries"
/bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/2 /
echo "mount /dev/shm as tmpfs"
/bin/mount -n -t tmpfs tmpfs /dev/shm
echo "mount /proc as proc"
/bin/mount -n -t proc none /proc
echo "mount /sys as sysfs"
/bin/mount -n -t sysfs none /sys
/bin/mount -n -t usbdevfs none /proc/bus/usb
/bin/mount -n -t yaffs /dev/mtdblock/3 /var
/bin/mount -n -t yaffs /dev/mtdblock/4 /home
exec /sbin/init
2. 修改权限
#chmod 775 linuxrc
#ls linuxrc -la
-rwxrwxr-x 1 root root 533 Jun 4 11:19 linuxrc
当编译内核时,指定命令行参数如下
Boot options -->Default kernel command string: 我的命令行参数如下
noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200
其中的init指明kernel执行后要加载的第一个应用程序,缺省为/sbin/init,此处指定为/linuxrc |
|