logo资料库

使用busybox-1.21.1制作根文件系统.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
1.下载源码
2.解压
3.修改根目录下Makefile
4.配置
5.编译
6.生成根文件系统目录
7.将编译busybox生成的文件及目录复制到根文件系统目录下
8.创建etc下的文件
8.1创建/etc/inittab
8.2创建/etc/init.d/rcS文件
8.3创建/etc/fstab文件
8.4创建/etc/profile文件
8.5拷贝主机的passwd、shadow、group文件到根文件系统/etc文件
8.6创建/etc/sysconfig/HOSTNAME文件
1. 下载源码 从 http://www.busybox.net/downloads/下载 busybox-1.21.1 源码。 2. 解压 # pwd /opt/work # tar xvjf busybox-1.21.1.tar.bz2 3. 修改根目录下 Makefile # cd busybox-1.21.1 164 行: 修改前:CROSS_COMPILE ?= 修改后:CROSS_COMPILE ?= arm-linux- 190 行: 修改前:ARCH ?= $(SUBARCH) 修改后:ARCH ?= arm 4. 配置 # pwd /opt/work/busybox-1.21.1 # make menuconfig 使用静态编译: Busybox Settings Build Options ---> ---> [*] Build BusyBox as a static binary (no shared libs) 5. 编译 # pwd /opt/work/busybox-1.21.1 # make # mkdir install_dir # make install CONFIG_PREFIX=./install_dir/ 之后可以看到,在 install_dir 有了 bin linuxrc 6. 生成根文件系统目录 sbin usr。 # pwd /opt/work # touch create_rootfs_bash create_rootfs_bash 内容如下: #!/bin/sh echo "---create rootfs directions start---" mkdir -p rootfs cd rootfs echo "---create root,dev,---" mkdir -p root dev etc boot tmp var sys proc lib mnt home mkdir -p etc/init.d etc/rc.d etc/sysconfig mkdir -p usr/sbin usr/bin usr/lib usr/modules echo "make node in dev/console dev/null" mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3 mkdir -p mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir -p var/lib var/lock var/run var/tmp chmod 1777 tmp chmod 1777 var/tmp echo "done" # chmod +x create_rootfs_bash # ./create_rootfs_bash 可以看到,生成了/opt/work/rootfs 目录,并生成了相应的子目录。 7. 将编译 busybox 生成的文件及目录复制到根文件系统目录下 # pwd /opt/work/busybox-1.21.1/install_dir # cp -R ./* /opt/work/rootfs 8. 创建 etc 下的文件 8.1 创建/etc/inittab # pwd /opt/work/rootfs # cd etc # touch inittab # chmod +x inittab Inittab 内容如下: #etc/inittab ::sysinit:/etc/init.d/rcS ttySAC0::askfirst:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a –r 8.2 创建/etc/init.d/rcS 文件 # pwd /opt/work/rootfs/etc/init.d # touch rcS # chmod +x rcS rcS 内容如下: #!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel #echo "----------munt all----------------" mount -a mdev -s /bin/hostname -F /etc/sysconfig/HOSTNAME
8.3 创建/etc/fstab 文件 # pwd /opt/work/rootfs/etc # touch fstab # chmod +x fstab fstab 内容如下: #device mount-point type option dump fsck order proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 mdev /dev ramfs defaults 0 0 8.4 创建/etc/profile 文件 # pwd /opt/work/rootfs/etc # touch profile # chmod +x profile profile 文件内容如下: #Ash profile #vim:syntax=sh #No core file by defaults #ulimit -S -c 0>/dev/null 2>&1 USER="id -un" LOGNAME=$USER PS1='[\u:$PWD@\h]#' PATH=$PATH HOSTNAME='/bin/hostname' export USER LOGNAME PS1 PATH 8.5 拷贝主机的 passwd、shadow、group 文件到根文件系统/etc 文件 # pwd /opt/work/rootfs/etc # cp /etc/passwd ./ # cp /etc/shadow ./ # cp /etc/group ./ 8.6 创建/etc/sysconfig/HOSTNAME 文件 # pwd /opt/work/rootfs/etc/sysconfig # touch HOSTNAME HOSTNAME 内容如下: MINI2440
分享到:
收藏