《一》:查看此网站,建议查看笔者上一篇(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更容易写。
《二》:此文主要讲解如何基于busybox制作一个属于自己的嵌入式Linux系统,及编译安装ngnix软件提供http功能,及利用dropbear提供SSH功能
提示:笔者在书写过程中难免发生书写错误,忘读者提出及谅解,笔者会在第一时间内修改内容。
基于busybox制作微型嵌入式Linux系统:kernel(编译)+initrd(busybox)+/(busybox)+dropbear(提供SSH功能)
操作环境表述:
kernel版本:linux-2.6.38.5.tar.bz2(编译安装)-->
busybox版本:busybox-1.20.2.tar.bz2 -->BusyBox各版本下载
dropbear:
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