首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

如果你发现你需要的网卡是灰色的,不能点,那么先确定他上一级的选项已经点了,比如你想选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_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简介
返回列表