Linux最小系統制作
1.準備工具
- Ubuntu
- Busybox
2.製作流程
- 建立工作目錄
mkdir minilinux
- 拷貝busybox文件至工作目錄下
- 配置busybox
make menuconfig
->Busybox Settings->Build Options->Cross compiler prefix
//輸入使用的交叉編譯工具arm-none-linux-gnueabi-
->Busybox Settings->Installation Options->BusyBox installation prefix
//輸入../system
//退出保存
//make
//make install
//之後會將內核文件安裝至../system 目錄下
-
完善最小系統其他文件
-
//製作的文件系統還需要 dev,etc,lib,mnt,proc,sys,tmp,var文件
mkdir dev etc lib mnt proc sys tmp var
-
etc目錄下建立網卡配置文件eth0-setting
文件內容:Mask=255.255.255.0 Gateway=192.168.1.1 DNS=192.168.1.1 MAC=08:90:90:90:90:90
更改權限755 chmod 755 eth0-setting
-
etc下建立passwd文件
bin:*:1:1:bin:/bin: daemon:*:2:2:daemon:/sbin: nobody:*:99:99:Nobody:/:
-
etc下建立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
更改權限755 chmod 755 profile
-
etc目錄下建立rc.d文件夾並在其內部建立init.d文件夾
在init,d文件夾下建立netd文件,輸入內容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
更改權限755 chmod 755 netd
-
etc目錄下建立init.d文件夾 並在內部建立ifconfig-eth0文件
文件內容: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
更改權限755 chmod 755 ifconfig-eth0
-
init.d再建立一個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
-
更改權限755 chmod 755 rcS