1.最小系統制作

Linux最小系統制作

1.準備工具

  1. Ubuntu
  2. Busybox

2.製作流程

  1. 建立工作目錄
mkdir minilinux
  1. 拷貝busybox文件至工作目錄下
  2. 配置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 目錄下

  1. 完善最小系統其他文件

    1. //製作的文件系統還需要 dev,etc,lib,mnt,proc,sys,tmp,var文件
      mkdir dev etc lib mnt proc sys tmp var

    2. 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

    3. etc下建立passwd文件

      bin:*:1:1:bin:/bin:
      daemon:*:2:2:daemon:/sbin:
      nobody:*:99:99:Nobody:/:
      
    4. 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

    5. 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

    6. 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

    7. 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章