Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20405
  • 博文数量: 15
  • 博客积分: 730
  • 博客等级: 军士长
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-04 14:41
文章分类

全部博文(15)

文章存档

2010年(15)

我的朋友
最近访客

分类: 嵌入式

2010-01-06 15:25:56

1.mkdir rootfs; cd rootfs
2.mkdir dev proc etc mnt usr bin sbin
3.编译busybox
make meconfig O=./out/
注意:配置成静态链接。
修改makefile
ARCH ?= mips
CROSS_COMPILE ?= mipsel-linux-gnu-
make O=./out/
或者
make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- O=./out/
 
4.安装busybox
修改.config文件,CONFIG_PREFIX="../../rootfs"
make install
或者 make CONFIG_PREFIX=../../rootfs O=./out/
 
5.配置文件
直接使用busybox source中带的sample 
cp examples/bootfloppy/etc/* ../rootfs/ -ar
 
6.创建设备文件
cd ../rootfs/dev
../../busybox-1.15.3/examples/bootfloppy/mkdevs.sh ./
如果采用udev配合sysfs自动创建设备文件,这步可以省略?(某些设备文件null、console还是需要手动创建?)
 
7.init(zz)
Busybox init的流程在《构建嵌入式 linux 系统》这本书里面有介绍,我在这简单的说一下:如果不采用 linuxrc 的话就会执行 /sbin/init 脚本(busybox init),它会去分析 /etc/inittab 脚本(如果没有的话就使用它默认的来代替,一般没必要自己为它编写这个脚本,用它默认的就行),然后会执行
/etc/init.d/rcS 命令。至于 rcS 这个目录的编写主要是安排哪些目录挂载哪些次级文件系统,比如 /proc 要挂载 proc 文件系统、 /sys 要挂载 sysfs 、 /dev/shm 要挂载 tmpfs 、 /tmp 要挂载 ramfs 等等。此外,还可以让内核重新挂载根文件系统也行,具体可以参考 rcS 这个脚本里面的内容,我的是参考友善的那个来写的。另外,可以在这个脚本里执行一些命令,比如设置 ip 地址、建立符号链接(我为 usb 设备的挂载特意建立了 /dev/sda1 的符号链接)、设置主机名等等。 Busybox init 还会调用 /etc/profile 来设置 PATH ,具体请看文件。
8.lib目录
因为busybox配置成静态链接所需要的库文件,所以只启动busybox是不需要其它库的支持。如果需要启动自己的程序,则需要将程序用到的lib、ko放到本目录内。
 
9.生成initramfs.cpio.gz
find . ! -wholename '*.svn*' -print | cpio -o -H newc | gzip > ../initramfs.cpio.gz
注意:增加了删除svn目录的操作。
阅读(491) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~