首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

基于BusyBox的Mini Linux 打造教程

2012-07-02 
基于BusyBox的Mini Linux 制作教程基于BusyBox的Mini Linux 制作教程一、准备工作1.指定工作目录,例如: (/h

基于BusyBox的Mini Linux 制作教程
基于BusyBox的Mini Linux 制作教程

一、准备工作
    1.指定工作目录,例如: (/home/oopos/linux/os/mini/work)
        export WORK="/home/oopos/linux/os/mini/work"
        mkdir -p $WORK
        export SRC=$WORK/src
        mkdir -p $SRC
        export ROOT=$WORK/ops
        mkdir -p $ROOT
        cd $WORK

    2.源码下载
     (1) Linux Kernel
            Url: http://www.kernel.org
                cd $SRC
                wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.7.tar.bz2
                tar xvf linux-2.6.35.7.tar.bz2
                export LINUX_SRC=$SRC/linux-2.6.35.7
     (2) BusyBox
            Url: http://www.busybox.net
                cd $SRC
                wget http://busybox.net/downloads/busybox-1.17.2.tar.bz2
                tar xvf busybox-1.17.2.tar.bz2
                export BUSYBOX_SRC=$SRC/busybox-1.17.2

二、编译操作

    1.编译Linux Kernel

        (1)创建编译后的文件的输出目录($LINUX_OBJ),默认为源码目录,即: $LINUX_SRC.
            export LINUX_OBJ=${LINUX_SRC}-obj
            mkdir -p $LINUX_OBJ

        (2)内核配置   
            cd $LINUX_SRC
            make O=$LINUX_OBJ menuconfig
           说明:
               此处建议参考有关内核配置指南,为了支持initrd内存盘文件系统,以下两项必选:
                General Setup -> Initial RAM filesystem and RAM disk support
                Device Drivers -> Block Devices -> RAM block device support
        (3)编译及安装
            make O=$LINUX_OBJ (前面可以加上: time 来计算编译耗时),如: time make O=$LINUX_OBJ
            cd $LINUX_OBJ
            (将bzImage拷贝到$ROOT目录)
            cp linux-2.6.35.7-obj/arch/x86/boot/bzImage $ROOT

    2.编译BusyBox
        (1)BusyBox配置
            cd $BUSYBOX_SRC
            make menuconfig
            因为要编译成静态链接库,所以要选上以下选项:
                Busybox Settings -> Build Options -> Build Busybox as a static bindary

        (2)编译及安装
            make
            make install

        (3)根系统配置
            cd _install
            mkdir {proc,sys,etc,dev} (创建Linux内核需要的目录)

            cd dev
            mknod console c 5 1 (创建一个控制台字符设备文件)
            mknod null c 1 3  (创建一个0设备文件)

            cd ../etc
            (创建fstab文件)
            cat > fstab << EOF
            # device    mount-point   type   options   dump   fsck
            proc   /proc   proc   defaults    0    0
            sysfs  /sys    sysfs  defaults    0    0
            EOF

            mkdir init.d
            cat > init.d/rcS << EOF
            #!/bin/sh
            mount -a
            EOF
            chmod +x init.d/rcS
            cat > inittab << EOF
            ::sysinit:/etc/init.d/rcS
            console::respawn:-/bin/sh
            ::ctrlaltdel:/sbin/reboot
            ::shutdown:/bin/umount -a -r
            EOF
           
            cd ..

            (现在我们在根系统目录: $BUSYBOX_SRC/_install)

            rm -f linuxrc
            ln -sv bin/busybox init
            (创建initrd镜像)
            find . | cpio --quiet -H newc -o | gzip -9 -n > ../initrd.gz

            cd ..
            (将initrd.gz拷贝到$ROOT目录里)
            cp initrd.gz  $ROOT

三、启动配置

    1.转到ROOT
        cd $ROOT
        ls
        ------------------
        bzImage  initrd.gz
        ------------------
        现在我们得到两个文件: bzImage 和 initrd.gz


    2.GRUB 引导
        mkdir /ops
        cp -rfv $ROOT/* /ops/

        启动命令:
            kernel /ops/bzImage root=/dev/ram0 rw
            initrd /ops/initrd.gz
            boot

        至此,你应该可以看到一个完整的Linux控制台了

热点排行