一、配置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='[[email protected]$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系统!这是使用讯为提供的例子进行制作,其它环境下的可以参考进行相应的修改即可!