busybox制作根文件系统.doc
文本预览下载声明
精品Word文档, 知识共享!
操作系统:Ubuntu9.04
内核版本:linux-??
开发板:博创arm2410s????
交叉编译工具:arm-linux-gcc-4.1.1?
BusyBox:busybox-1.11.1??????
CramFS:CramFS-1.1
?
注意:由于要制作的根文件系统使用了mdev(BusyBox简化版的udev),因此,需要内 核支持sysfs、procfs和ramfs(tmpfs)文件系统以及hotplug(uevent)事件机制。
?
浅蓝色为命令,橘红色为 代码和脚步1、准备根文件系统使用shell脚本create_rootfs.sh,建立根文件系统的目录框架lingd@ubuntu:~/arm2410s$ vi create_rootfs.shcreate_rootfs.sh 内容如下:#!/bin/shecho ------Create rootfs directons......mkdir rootfscd rootfsecho --------Create root,dev......mkdir root dev etc bin sbin mnt sys proc lib home tmp var usrmkdir usr/sbin usr/bin usr/lib usr/modulesmkdir mnt/usb mnt/nfs mnt/etc mnt/etc/init.dmkdir lib/moduleschmod 1777 tmpcd ..echo -------make direction done---------为 create_rootfs.sh添加执行权限lingd@ubuntu:~/arm2410s$ chmod a+x create_rootfs.sh执行create_rootfs.sh,建立根文件系统的目录框架lingd@ubuntu:~/arm2410s$ ./create_rootfs.shlingd@ubuntu:~/arm2410s$ cd rootfslingd@ubuntu:~/arm2410s/rootfs$ lsbin? dev? etc? home? lib? mnt? proc? root? sbin? sys? tmp? usr? var2、创建设备 文件mdev 是通过 init 进程来启动的,在使用 mdev 构造 /dev 目录之前,init 至少要用到设备文件/dev/console、/dev/null?,所以需要事先建立这两个设备文件:lingd@ubuntu:~/arm2410s/rootfs$ cd devlingd@ubuntu:~/arm2410s/rootfs/dev$ sudo mknod -m 660 console c 204 64[sudo] password for lingd:?lingd@ubuntu:~/arm2410s/rootfs/dev$ sudo mknod -m 660 null c 1 3lingd@ubuntu:~/arm2410s/rootfs/dev$ ls -ltotal 0crw-rw---- 1 root root 5, 1 2010-04-02 15:49 consolecrw-rw---- 1 root root 1, 3 2010-04-02 15:50 null注意:本来console的主次设备号应为5和1.但是因为init在执行完/etc/init.d/rcS脚本后,就 会在一个控制台上,按照inittab的指示开一个shell(或者是开getty+login,这样用户就会看到提示输入用户名的提示符)。在mdev -s未执行之前,/dev目录下只有我们创建的/dev/null和/dev/console,也就是说,没有控制台可供init用来按照inittab 的指示开一个shell。而在s3c24xx 系列芯片的串口驱动里面用了s3c2410_serial做为设备名(在内核源码的“drivers/serial/s3c2410.c”文件的949 行),因此,启动时可用s3c2410_serial0、s3c2410_serial1或s3c2410_serial2作为init用来按照 inittab的指示开一个shell的控制台,这里我用了串口0,即s3c2410_serial0(主次设备号为204和64)作为控制台。这里直接 将console当s3c2410_serial0,所以console的主次设备号才会为204和64。
3、准备一些配置文件和系统启动时所需的文件3.1、mde
显示全部