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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值