Busybox构建根文件系统和制作Ramdisk
Posted LoTGu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Busybox构建根文件系统和制作Ramdisk相关的知识,希望对你有一定的参考价值。
定制根文件系统的方法很多,最常用的是使用BusyBox来构建定制根文件系统。它集成压缩了Linux的许多工具和命令,可以使用户迅速方便地建立一套相对完整、功能丰富的文件系统,其中包括大量常用的应用程序。下面详细介绍有关Busybox定制根文件系统。
一、系统环境:
1、操作系统:Ubuntu140.4
2、交叉编译工具:gcc version 6.1.1 20160711 (Linaro GCC 6.1-2016.08)
3、busybox源码包:busybox-1.26.2
二、构建rootfs
1、建立rootfs目录
在/home/xxx/xxx目录下建立rootfs目录,
$ mkdir rootfs
$ cd rootfs
$ mkdir root bin sbin etc dev usr lib tmp mnt sys proc var //建立常用目录
$ mkdir usr/lib usr/bin usr/sbin
2、解压源码包:
$ tar -jxvf busybox-1.26.2.tar.bz2
3、配置BusyBox
$ make distclean
$ make defconfig
$ make menuconfig ARCH=arm
3.1选择Busybox Settings --->
Installation Options --->
BusyBox installation prefix(在里面输入BusyBox的安装目录,我是保存在/home/xxx/xxx/rootfs下)
3.2选择Busybox Settings --->
选中[*] Don\'t use /usr
3.3 Busybox Settings---->
Build Options---->
选中 [*]Build BusyBox as a static binary(静态链接)
Cross Compiler prefix配置为arm-linux-gnueabi-(指定交叉编译器)
配置好后,保存相关配置信息。
4、编译安装Busybox
$ make
$ make install
5、添加/home/xxx/xxx/rootfs/dev目录下的设备文件。
dev目录下必须有console和null这两个设备文件,使用mknod来创建这两个设备文件。
$ cd dev/
$ sudo mknod -m 666 console c 5 1
$ sudo mknod -m 666 null c 1 3
6、把busybox源码目录下的examples/bootfloppy/etc的内容拷贝到rootfs目录下的etc下
$ cd /home/xxx/xxx/rootfs/etc
$ cp /home/ xxx/xxx/Downloads/busybox-1.26.2/examples/bootfloppy/etc/* ./ -raf
8、修改配置文件
8.1、修改fstab配置文件为:
#device mount-point type options dump fsck order proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0 var /dev tmpfs defaults 0 0 ramfs /dev ramfs defaults 0 0 |
8.2修改profile文件为:
# /etc/profile: system-wide .profile file for the Bourne shells
USER="root" LOGNAME=$USER export HOSTNAME=`/bin/hostname` export USER=root export HOME=/root export PS1="[$USER@$HOSTNAME \\W]\\# " PATH=/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH export PATH LD_LIBRARY_PATH |
8.3修改inittab文件为:
# /etc/inittab ::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::restart:/sbin/init |
8.4 配置系统的hostname。在etc目录下执行如下命令:
$ mkdir sysconfig
$ cd sysconfig
$ touch HOSTNAME
$ echo tiny4412 > HOSTNAME
8.5 配置init.d/rcS文件为:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel
mount -a mkdir -p /dev/pts mount -t devpts devpts /dev/pts #mount -n -t usbfs none /proc/bus/usb echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s mkdir -p /var/lock
ifconfig lo 127.0.0.1
/bin/hostname -F /etc/sysconfig/HOSTNAME |
修改init.d/rcS文件权限为:
$ chmod 777 init.d/rcS
三、制作Ramdisk文件系统
制作Ramdisk的脚本mk_Ramdisk.sh如下:
#!/bin/bash
rm -rf ramdisk*
sudo ddbusybox最小根文件系统 用wubi装的Ubuntu10.10系统,装完重启后出现了下面的问题: busybox v1.13.3(ubuntu 1:1.1.3.3-1ubuntu11) |