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

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

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

可能有你想要的好东西,比如1394接口驱动,但是在babylinux上意义不大,而且我们的空间只有1440K.

下面一个大项:

Network device support

选择Y,这样就可以支持网卡了,其余都选择N.然后点Ethernet(10 or 100 Mbit)按钮选择你需要的网卡驱动,你可以把最常见的几种Reltek8139,NE2000,3COM等网卡编译进内核.虽然网卡的驱动通常都很小, 但是不要太贪心,选2~3个就足够了,否则你的内核就会一下子多出几十K.在我先前编译的babylinux内核中,我把via-rhine网卡编译了进去,是因为我打造babylinux的机器上只有一块那个芯片的网卡.

如果你发现你需要的网卡是灰色的,不能点,那么先确定他上一级的选项已经点了,比如你想选NE2000的网卡,就必需先选择ELSA,VLB,PCI and on board controllers.如果还不能点,那么请确定是否已经把PCI的支持选项选上了,(在Geneal setup)里.没有PCI的支持,PCI的网卡将不能选.

可能你是个有钱人,在自己的PC上用千兆网卡,那么请在千兆网卡那一栏选择.

接下来几个大项:

Amateur Radio support

IrDA (infrared) support

ISDN subsystem

Old CD-ROM drivers (not SCSI,not IDE)

Input core support

全部选择N.

接下来的Charcter devices是很重要的一项,他和Bloack devices一样重要,我将重点讲述.

除了Virtual terminal和Support for console on terminal两项,其他全选N.

Virtual terminal 即虚拟终端,这是一般linux必备选项.否则你的linux启动后,在屏幕看不到任何东西.另外还负责键盘输入信息等等.只有在某些嵌入式linux应用场合才会不要这个选项,因为这些linux通常都不用操作.

Support for console on terminal

在虚拟终端上的控制台.他支持在终端上各种信息的输出,这也是必备的.

接下来的几个大项:

Multimedia devices

Crypto Hardware support

全部选择N.

再接下来的那部分File sytems可是重头戏喔.

这部分不用我太罗嗦了吧,自己需要支持什么就选什么.

但是其中有三个是你必需选的:

/proc file system support 缺了他,很多命令和软件就不能运行.

Second extended fs support BabyLinux的基本文件系统.

ISO 9660 CDROM filesytem support 除非你不想用光盘.

另外,诸如磁盘限额(Quota support),Reiserfs的DEBUG模式(Enable reiserfs debug mode)

等就不用编译进去了.这些东西意义不大,确要无端的增大内核大小.请牢记一点:编译出来的内核大小不要超过900K.

Tip:是不是看的很累啊,我写得更累,别急,内核配置部分马上要好了.

最后一个Console drivers

这是支持linux在字符模式下高分辨率显示的内核模块.前面三个全部选择Y,

Frame-buffer support按钮是灰色的不能选,别急,回到第一个大选项:

Code maturity level options 选择Y,就可以激活这个按钮了.

下面几个选项需要选择Y:

Support for framebuffer devices

VESA VGA graphics console

你也可以选择其他的显卡驱动,比如nVidia的,但是VESA和VGA是通用性最好的,只要不是几十年前的黑白显卡(我只听说过,没见过),都兼容VESA和VGA,因此,为了制作好的BabyLinux的通用性,请选择这个驱动.

Support only 8 pixels wide FONTs

这个一定要选,否当你给内核传递vga=788参数,让linux在字符界面下高分辨率显示的时候,系统会因为找不到合适的小字体而返回到低分辨率模式.

好了!所有内核的配置工作到这里就全部完成了,剩下的几个大项全部选N就行了.

保存后退出,配置程序会自动生成一个隐藏的配置文件.config

下面是我配置好的.config文件内容.如果你懒的自己去配置,那么直接把这个.config拷贝到你的源代码目录下就能直接用了.(已经去掉了#开头的注释行)

CONFIG_X86=y

CONFIG_UID16=y

CONFIG_EXPERIMENTAL=y

CONFIG_M586=y

CONFIG_X86_WP_WORKS_OK=y

CONFIG_X86_INVLPG=y

CONFIG_X86_CMPXCHG=y

CONFIG_X86_XADD=y

CONFIG_X86_BSWAP=y

CONFIG_X86_POPAD_OK=y

CONFIG_RWSEM_XCHGADD_ALGORITHM=y

CONFIG_X86_L1_CACHE_SHIFT=5

CONFIG_X86_USE_STRING_486=y

CONFIG_X86_ALIGNMENT_16=y

CONFIG_X86_PPRO_FENCE=y

CONFIG_NOHIGHMEM=y

CONFIG_NET=y

CONFIG_PCI=y

CONFIG_PCI_GODIRECT=y

CONFIG_PCI_DIRECT=y

CONFIG_SYSVIPC=y

CONFIG_SYSCTL=y

CONFIG_KCORE_ELF=y

CONFIG_BINFMT_ELF=y

CONFIG_BLK_DEV_FD=y

CONFIG_BLK_DEV_LOOP=y

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_SIZE=4096

CONFIG_BLK_DEV_INITRD=y

CONFIG_PACKET=y

CONFIG_INET=y

CONFIG_IP_MULTICAST=y

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y

CONFIG_IDEDISK_MULTI_MODE=y

CONFIG_BLK_DEV_IDECD=y

CONFIG_BLK_DEV

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

网站地图

Top