Chinaunix首页 | 论坛 | 博客
  • 博客访问: 178470
  • 博文数量: 43
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-09 10:25
文章分类

全部博文(43)

文章存档

2011年(1)

2009年(11)

2008年(31)

我的朋友

分类: LINUX

2008-12-14 14:41:22

busybox制作文件系统

主机:Ubuntu8.04

编译器:

arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Busybox版本:busybox-1.12.1.tar.bz2

tar –jxvf busybox-1.12.1.tar.bz2              //解压

cd busybox-1.12.1

make menuconfig

 

root@dc-desktop:/home/dc/arm/busybox-1.12.1# gedit Makefile            //修改Makfile

CROSS_COMPILE ?= arm-none-linux-gnueabi-

ARCH ?= arm

root@dc-desktop:/home/dc/arm/busybox-1.12.1# make             

root@dc-desktop:/home/dc/arm/busybox-1.12.1# make CONFIG_PREFIX=/home/bx/ install        //安装到/home/bx/

此时/home/bx目录下应该有:sbin,bin,usr,linuxrc

root@dc-desktop:/home/bx# mkdir lib proc tmp usr var sys root mnt home test

建立设备文件:

root@dc-desktop:/home/bx# cd dev

root@dc-desktop:/home/bx/dev# mknod sda b 8 0

root@dc-desktop:/home/bx/dev# mknod sda1 b 8 1

root@dc-desktop:/home/bx/dev# mknod console c 5 1

root@dc-desktop:/home/bx/dev# mknod fb0 c 29 0

root@dc-desktop:/home/bx/dev# mknod hda1 b 3 1

root@dc-desktop:/home/bx/dev# mknod hda b 3 0

root@dc-desktop:/home/bx/dev# mknod loop0 b 7 0

root@dc-desktop:/home/bx/dev# mknod null c 1 3

root@dc-desktop:/home/bx/dev# mknod ram0 b 1 0

root@dc-desktop:/home/bx/dev# mknod tty c 5 0

root@dc-desktop:/home/bx/dev# mknod tty0 c 4 0

root@dc-desktop:/home/bx/lib#                                                                              cp -a /usr/local/arm/arm-2008q1/arm-none-linux-gnueabi/libc/armv4t/lib/* .

//拷贝编译器的库到lib目录,准备为将来做应用程序做准备。

etc目录下面建立文件inittab,在文件中写入以下内容:

::sysinit:/etc/rc.S

::askfirst:/bin/ash

其中,sysinit表示后面找个程序在系统初始化的时候执行,后面的askfirst表示系统初始化完毕后启动的程序。这个程序如果执行结束,那么系统会再次启动它。

然后建立rc.S文件,写入以下内容:

#!/bin/ash

/bin/mount -t proc /proc /proc

export PATH=/bin/:/sbin/:/usr/sbin/

到此一个基本的根文件系统已经制作完毕,以下将其制作成成ramdisk格式的文件系统:

在某一个目录下输入如下命令:

mkdir initrd

dd if=/dev/zero of=initrd.img bs=1k count=8192

mke2fs -F -v -m0 initrd.img

mount -o loop initrd.img initrd

cp -r /home/bx/* initrd         

umount initrd

gzip -9 initrd.img

即可得到压缩后的ranmdisk文件系统initrd.img.gz

 

 

阅读(1536) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-05-08 21:07:04

您好,那个inittab文件是说/etc下的inittab吧,它本身有这么一段: si::sysinit:/etc/rc.d/rc.sysinit 请问::sysinit:/etc/rc.S ::askfirst:/bin/ash 这两句应该填在哪里阿