微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 最小的Linux系统制作过程详解

最小的Linux系统制作过程详解

时间:10-08 来源:互联网 点击:

_IDE_MODES=y

CONFIG_NETDEVICES=y

CONFIG_NET_ETHERNET=y

CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024

CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_VT=y

CONFIG_VT_CONSOLE=y

CONFIG_REISERFS_FS=y

CONFIG_EXT3_FS=y

CONFIG_JBD=y

CONFIG_FAT_FS=y

CONFIG_VFAT_FS=y

CONFIG_RAMFS=y

CONFIG_ISO9660_FS=y

CONFIG_JFS_FS=y

CONFIG_NTFS_FS=y

CONFIG_PROC_FS=y

CONFIG_EXT2_FS=y

CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT=iso8859-1

CONFIG_VGA_CONSOLE=y

CONFIG_VIDEO_SELECT=y

CONFIG_VIDEO_IGNORE_BAD_MODE=y

CONFIG_FB=y

CONFIG_DUMMY_CONSOLE=y

CONFIG_FB_VESA=y

CONFIG_VIDEO_SELECT=y

CONFIG_FBCON_CFB8=y

CONFIG_FBCON_CFB16=y

CONFIG_FBCON_CFB24=y

CONFIG_FBCON_CFB32=y

CONFIG_FBCON_FONTWIDTH8_ONLY=y

CONFIG_FONT_8x8=y

CONFIG_FONT_8x16=y

5,编译内核

#make dep

#make bzImage

下面是最后编译结果:

Boot sector 512 bytes.

Setup is 4733 bytes.

System is 845 kB

make[1]: Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot'

我用上面的配置得到了一个845k的内核.

编译好的内核放在/usr/src/linux-2.4.20-8/arch/i386/boot下.将他拷贝在一个安全的地方备用.

建立一个专放babylinux材料的目录

#mkdir /babylinux

建立一个做babylinux根文件系统的目录

#mkdir /babylinux/rootfs

备份内核

#cp /usr/src/linux-2.4.20-8/arch/i386/boot/bzImage /babylinux/

七,编译busybox

1,busybox简介

busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分力式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.

Busybox的小身材大作用的特性,给制作一张软盘的linux带来了及大方便.

2,busybox的用法

可以这样用busybox

#busybox ls

他的功能就相当运行ls命令

最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.

#ln -s busybox ls

#ln -s busybox rm

#ln -s busybox mkdir

然后分别运行这三个链接:

#./ls

#./rm

#./mkdir

就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox

但是只要链接名不同,完成的功能就不同,busybox就是这么的神奇.

很多linux网站都提供busybox的源代码下载.目前版本是busybox1.0正式版.

3,配置busybox

busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.

#cp busybox-1.00.tar.gz /babylinux

#cd /babylinux

#tar xvfz busybox-1.00.tar.gz

#cd busybox-1.00

#make menuconfig

下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.

General Configuration应该选的选项

Show verbose applet usage messages

Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options

Build BusyBox as a static binary (no shared libs)

这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.

Installation Options

Don't use /usr

这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.

配置好后退出并保存.

4,编译并安装busybox

#make

#make install

编译好后在busybox目录下生成子目录_install,里面的内容:

drwxr-xr-x 2 root root 4096 11月 24 15:28 bin

lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox

drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin

其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.

我编译出来的busybox可执行文件是935K,加上符号链接,整个_install目录是952K.加上845K的内核不是已经超过1440K了吗?别担心,我们将对整个根文件系统做大幅度的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top