BusyBox 制作最小文件系统

一、配置busybox

 

1、拷贝busybox-1.21.1.tar.bz2,解压命令该文件。

 

2、进入到解压后的文件,使用命令 make menuconfig 配置Busybox。

 

3、选中Busybox Settings,然后按回车进入到Busybox Settings 界面。

在Busybox Settings 配置选项里面需要修改两个地方,第一个是Build Optiions-> Cross

Compiler prefix,它是指定用什么编译器来编译Busybox,选中Build Options ,进入到Build Options 配置界面。选中Build Options 配置界面的Cross Compiler prefix ,进入CrossCompiler prefix 配置界面。

输入使用的交叉编译工具arm-hisiv500-linux-

 

 

选中Installation Options 车,进入Installation Options 配置界面,选中BusyBox installation prefix ,然后按回车进入BusyBox installationprefix 配置界面,这个界面是设置编译完Busybox,把最终生成的二进制文件安装到哪个目录下面。

删除里面的./_install,然后输入../system(最终生成的二进制文件会安装到当前目录的上一级目录下的system 目录里面。

 

4、保存配置界面。

 

二、编译和安装Busybox

1、编译 make

 

 

 

2、安装 make install

 

3、返回上级目录,查看安装的文件:

 

 

三、完善最小Linux 系统的文件

 

1、使用命令mkdir dev etc lib mnt proc sys tmp var 创建文件夹。

 

 

2、cd etc,在里面新建eth0-setting 文件,在里面输入如下内容,然后保存并退出eth0-setting,使用chmod 755 eth0-setting命令修改eth0-setting的权限。

IP=192.168.1.230

Mask=255.255.255.0

Gateway=192.168.1.1

DNS=192.168.1.1

MAC=08:90:90:90:90:90

 

 

3、在etc 目录下建立init.d 文件夹,进入到该文件夹。在init.d 文件夹下面使用建立ifconfig-eth0 文件。在ifconfig-eth0 文件输入下面的内容:

#!/bin/sh



echo -n Try to bring eth0 interface up......>/dev/ttySAC2



if [ -f /etc/eth0-setting ] ; then

source /etc/eth0-setting



if grep -q "^/dev/root / nfs " /etc/mtab ; then

echo -n NFS root ... > /dev/ttySAC2

else

ifconfig eth0 down

ifconfig eth0 hw ether $MAC

ifconfig eth0 $IP netmask $Mask up

route add default gw $Gateway

fi



echo nameserver $DNS > /etc/resolv.conf

else



if grep -q "^/dev/root / nfs " /etc/mtab ; then

echo -n NFS root ... > /dev/ttySAC2

else

/sbin/ifconfig eth0 192.168.253.12 netmask 255.255.255.0 up

fi

fi



echo Done > /dev/ttySAC2

 

然后保存并退出ifconfig-eth0,使用命令 chmod 755 ifconfig-eth0 修改ifconfig-eth0

的权限。

 

4、在init.d 文件夹下面使用“vim rcS”命令建立rcS 文件,在里面输入如下内容:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel



#

# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

#

trap ":" INT QUIT TSTP

/bin/hostname iTOP-4412



#/bin/mount -n -t proc none /proc

#/bin/mount -n -t sysfs none /sys

#/bin/mount -n -t usbfs none /proc/bus/usb

#/bin/mount -t ramfs none /dev

[ -e /proc/1 ] || /bin/mount -n -t proc none /proc

[ -e /sys/class ] || /bin/mount -n -t sysfs none /sys

[ -e /dev/tty ] || /bin/mount -t ramfs none /dev



echo /sbin/mdev > /proc/sys/kernel/hotplug

/sbin/mdev -s

#/bin/hotplug

# mounting file system specified in /etc/fstab

mkdir -p /dev/pts

mkdir -p /dev/shm

/bin/mount -n -t devpts none /dev/pts -o mode=0622

/bin/mount -n -t tmpfs tmpfs /dev/shm

#/bin/mount -n -t ramfs none /tmp

#/bin/mount -n -t ramfs none /var

mkdir -p /var/empty

mkdir -p /var/log

mkdir -p /var/log/boa

mkdir -p /var/lock

mkdir -p /var/run

mkdir -p /var/tmp



ln -sf /dev/ttyS2 /dev/tty2

ln -sf /dev/ttyS2 /dev/tty3

ln -sf /dev/ttyS2 /dev/tty4



syslogd

/etc/rc.d/init.d/netd start

echo " " > /dev/tty1

echo "Starting networking..." > /dev/tty1

#sleep 1

#/etc/rc.d/init.d/httpd start

#echo " " > /dev/tty1

#echo "Starting web server..." > /dev/tty1

#sleep 1

#/etc/rc.d/init.d/leds start

#echo " " > /dev/tty1

#echo "Starting leds service..." > /dev/tty1

#echo " "

#sleep 1



#echo "*************************************" > /dev/ttySAC2

#echo " http://www.topeet.com.cn " > /dev/ttySAC2

#echo "*************************************" > /dev/ttySAC2

#echo "*************************************"

#echo " http://www.topeet.com.cn "

#echo "*************************************"





mkdir /mnt/disk



sleep 1

/sbin/ifconfig lo 127.0.0.1

/etc/init.d/ifconfig-eth0

 

保存并退出rcS,使用命令 chmod 755 rcS 修改rcS 的权限。

 

 

 

5、在etc 目录下使用命令建立passwd文件,在里面输入如下内容:

root::0:0:root:/:/bin/sh

bin:*:1:1:bin:/bin:

daemon:*:2:2:daemon:/sbin:

nobody:*:99:99:Nobody:/:

保存并退出passwd,使用 chmod 755 passwd 命令修改passwd 的权限。

 

6、在etc 目录建立profile 文件,输入如下内容:

# Ash profile

# vim: syntax=sh



# No core files by default

ulimit -S -c 0 > /dev/null 2>&1



USER="`id -un`"

LOGNAME=$USER

PS1='[$USER@$HOSTNAME]# '

PATH=$PATH



HOSTNAME=`/bin/hostname`



export USER LOGNAME PS1 PATH

 

保存并退出profile,使用 chmod 755 profile 命令修改profile 的权限。

 

 

7、在etc 目录建立文件夹rc.d,进入到rc.d 文件夹,进入rc.d 目录,在rc.d 目录下建立init.d 文件夹,进入到init.d。

建立netd 文件,在里面输入如下内容:

#!/bin/sh



base=inetd



# See how we were called.

case "$1" in

start)

/usr/sbin/$base

;;

stop)

pid=`/bin/pidof $base`

if [ -n "$pid" ]; then

kill -9 $pid

fi

;;

esac



exit 0

 

保存并退出netd,使用 chmod 755 netd 命令修改netd 的权限。

 

 

8、进入到系统下的lib文件夹,拷贝/opt/hisi-linux/x86-arm/arm-hisiv500-linux/arm-hisiv500-linux-uclibcgnueabi/lib/a17_a7下的库文件,(只是作为参考)

 

 

 

 

9、进入到系统下的var目录,mkdir lib lock log run tmp

 

 

 

四、安装打包软件和编译

打包工具make_ext4fs 可以制作成二进制文件。

make_ext4fs -s -l 314572800 -a root -L linux system.img system

 

 

至此,整个最小linux系统编译完成,将其烧写至开发板上即可成为自己制作的最小linux系统!这是使用讯为提供的例子进行制作,其它环境下的可以参考进行相应的修改即可!

 

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。首先,busybox是一个非常小巧的程序集合,它集成了许多常用的Linux工具,可以用来替代传统的Linux命令行工具,从而使得系统的启动时间更快、占用的空间更小。基于busybox的根文件系统可以使得系统更加轻量级,并且可以方便地定制。下面是实现基于busybox的根文件系统的步骤: 1. 下载busybox源代码,并编译生成busybox可执行文件。你可以从busybox的官网上下载源代码,然后使用make命令进行编译。 2. 创建一个新的目录作为根文件系统的挂载点。你可以使用mkdir命令创建一个空目录。 3. 将busybox可执行文件复制到根文件系统目录中。你可以使用cp命令将busybox可执行文件复制到根文件系统目录中。 4. 在根文件系统目录中创建必要的目录和文件。根据你的需求,你可以使用mkdir和touch命令创建必要的目录和文件。 5. 创建一个init脚本来启动系统。init脚本是系统的启动脚本,用来初始化系统并启动其他进程。你可以使用vi或者nano等编辑器创建init脚本。 6. 将根文件系统目录打包成一个镜像文件。你可以使用tar命令将根文件系统目录打包成一个tar包,然后使用mkfs命令将tar包转换成一个镜像文件。 7. 将镜像文件烧录到SD卡或者其他存储介质中。你可以使用dd命令将镜像文件写入到SD卡或者其他存储介质中。 以上就是基于busybox的根文件系统制作的基本步骤,你可以根据你的需求进行定制和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值