jixianglsq 2013-04-02
说明:
《二》:此文主要讲解如何基于busybox制作一个属于自己的嵌入式Linux系统,及编译安装ngnix软件提供http功能,及利用dropbear提供SSH功能
提示:笔者在书写过程中难免发生书写错误,忘读者提出及谅解,笔者会在第一时间内修改内容。
基于busybox制作微型嵌入式Linux系统:kernel(编译)+initrd(busybox)+/(busybox)+dropbear(提供SSH功能)  
 
 
操作环境表述:  
    kernel版本:linux-2.6.38.5.tar.bz2(编译安装)-->http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.5.tar.bz2 
    dropbear:http://matt.ucc.asn.au/dropbear/dropbear.html/dropbear-2013.56.tar.bz2   
 
 
busybox介绍:  
    BusyBox 是一个集成了百多个最常用linux命令和工具的软件。  
    BusyBox 包含了一些简单的工具(ls、cat、echo、touch......)及复杂的命令(grep、find、mount....)  
    Busybox最初是由Bruce Perens在1996年为Debian GNU/Linux安装盘编写,简单的说BusyBox就是个百宝箱,它集成压缩了Linux系统中的许多工具和命令。  
      
dropbear(开源软件)介绍:  
    dropbear是一个相对较小的SSH服务器和客户端软件,运行在一个基于POSIX的各种平台,dropbear实现完整的SSH S/C版本2协议。  
    简单说dropbear就是一款开源的轻量级SSH服务软件。(笔者理解)  
 
 
 
实现步骤:  
1、添加一块IDE硬盘(10G),并对其进行分区(/dev/hda1(20M)、/dev/hda2(512M)、/dev/hda3(128M)->将/dev/hda3的文件类型改为82即可)  
   文件类型均为ext3(mke2fs -j /dev/hda#),可以参考笔者写的RAID的原理及一步步来实现RAID的创建 (里面有关于创建分区及更改分区文件系统类型案例)  
    # fdisk /dev/hda (/dev/hda分区)  
    # partprobe /dev/hda  
    # mke2fs -j /dev/hda#  
 
 
2、创建目录作为/dev/hda1、/dev/hda2挂载点并进行挂载  
    # mkdir /mnt/{boot,sysroot} -pv  
    # tree /mnt     ##查看/mnt目录下的所有文件及其子目录  
    # mount /dev/hda1 /mnt/boot       ##用于Linux启动分区  
    # mount /dev/hda2 /mnt/sysroot    ##用于Linux根分区  
    # mount       ##可以使用mount命令查看是否挂载成功  
 
 
3、编译内核源代码,作为新系统提供所需的内核(源代码包都位于/usr/src目录中)  
    # cd  /usr/src  
    # tar jxvf linux-2.6.38.5.tar.bz2    ##解压源代码这里下载的bzip格式压缩的,所以使用j选项  
    # ln  -sv  linux-2.6.38.5  linux      ##给linux-2.6.38.5做个软连接其命名为linux  
    # cd linux  
    # cp /root/kernel-2.6.38.1-i686.cfg   ./.config  ##kernel-2.6.38.1-i686.cfg(2.6.38系统所使用的模块,可以修改一些模块)  
    # make menuconfig         
说明:在这里我们将文件系统中的ext3、网卡的驱动程序直接编译进内核,因为笔者使用的是vmware Workstation虚拟机 ,所以网卡类型为pcnet32  
        
    # make  SUBDIR=arch/       
    # cp arch/x86/boot/bzImage  /mnt/boot/  ##将我们编译安装好的内核文件复制到/mnt/boot目录  
      
      
4、编译安装busybox(busybox-1.20.2.tar.bz2)  
说明:busybox需要比较新的内核支持头文件中的ubi-user.h,  
    所以我们要将这个文件复制到/usr/src/busybox-1.20.2/iniclued/mtd即可  
    # cd /usr/src  
    # tar  jxvf  busybox-1.20.2.tar.bz2  
    # cd  busybox-1.20.2  
    # mkdir include/mtd     
    # cp  /usr/src/linux/include/mtd/ubi-user.h  include/mtd/  
    # make menuconfig    ## 参考“说明”  
    # make install