LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1104|回复: 1

如何编译一个精简的系统?

[复制链接]
发表于 2006-3-20 00:23:17 | 显示全部楼层 |阅读模式
编译一个精简的核心,不需要的功能全部去除。
下最新的kernel版本2.6.15.6,配置,去掉usb,1394.,isa,pcimap,oss支持,ext2和ext3直接编入内核,安装,起动后用 lsmod:
Module                  Size  Used by
nvidia               4068048  12
ipv6                  234368  8
snd_seq_dummy           2692  0
snd_seq_oss            29696  0
snd_seq_midi_event      5632  1 snd_seq_oss
snd_seq                44688  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          6796  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            47392  0
snd_mixer_oss          16512  1 snd_pcm_oss
snd_intel8x0           28572  5
snd_ac97_codec         89888  1 snd_intel8x0
snd_ac97_bus            1920  1 snd_ac97_codec
snd_pcm                75144  5 snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer              19588  4 snd_seq,snd_pcm
snd_page_alloc          8200  2 snd_intel8x0,snd_pcm
snd                    43620  15 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
soundcore               7136  1 snd
lp                      9928  0
parport_pc             31812  1
parport                32328  2 lp,parport_pc
8139too                21248  0
mii                     4864  1 8139too
af_packet              16008  2
floppy                 55364  0
ide_cd                 36100  0
cdrom                  36000  1 ide_cd
loop                   12680  0
nls_cp936             126336  10
vfat                   10624  5
fat                    44444  1 vfat
intel_agp              20252  1
agpgart                27720  2 nvidia,intel_agp
在配置kernel时候,声卡选alsa了,对于oss连根除去。不知为何启动后还有snd_seq_oss 和snd_pcm_oss的存在?


在lib/modules/下有,
[root@localhost modules]# ls
2.6.12-12mdk/  2.6.12-17mdk/  2.6.15.6/
相对应的是各版本的模块。进入2.6.15.6目录,再ls
[root@localhost 2.6.15.6]# ls
build@          modules.dep          modules.pcimap    source@
kernel/         modules.ieee1394map  modules.seriomap
modules.alias   modules.inputmap     modules.symbols
modules.ccwmap  modules.isapnpmap    modules.usbmap
奇怪?怎么能这样!配置内核时,1394总线,pcimap卡,usb总线,isa总线我全部去掉的,即没有配置为内核,也没有配置为模块,这里怎么会出现的呢???
 楼主| 发表于 2006-3-20 01:39:34 | 显示全部楼层
上文提到了/lib/modules/2.6.15.6/下的文件
[root@localhost 2.6.15.6]# ls
build@          modules.dep          modules.pcimap    source@
kernel/         modules.ieee1394map  modules.seriomap
modules.alias   modules.inputmap     modules.symbols
modules.ccwmap  modules.isapnpmap    modules.usbmap

查得modules.ieee1394map ,modules.usbmap,modules.isapnpmap等等文件是纯文本文件。
现拿一个文件当例子
[root@localhost 2.6.15.6]# vi modules.isapnpmap
# isapnp module      cardvendor carddevice driver_data vendor     function   ...
snd-mpu401           0xffff     0xffff     0x00000000  0xd041     0x06b0   
parport_pc           0xffff     0xffff     0x00000000  0xd041     0x0004   
parport_pc           0xffff     0xffff     0x00000000  0xd041     0x0104   
sb1000               0xffff     0xffff     0x00000000  0x231d     0x0010   

问题是这些文件是否不起任何作用?

另外:
[cyx@localhost /]$ ls /lib/modules/2.6.15.6/kernel/drivers/
acpi/      block/     char/      i2c/       input/     mtd/       parport/   serial/
base/      cdrom/     connector/ ide/       media/     net/       scsi/      video/
瞧瞧,原来我在配置内核是选的模块都在这里,

对比在安装2006时默认的内核模块
[cyx@localhost /]$ ls /lib/modules/2.6.12-12mdk/kernel/drivers/
acpi/  block/      char/     i2c/       infiniband/  md/       misc/  net/
atm/   bluetooth/  cpufreq/  ide/       input/       media/    mmc/   parport/
base/  cdrom/      crypto/   ieee1394/  isdn/        message/  mtd/   pci/

很容易看出名堂了。这里有ieee1394/ ,isdn/ ,bluetooch/等目录,在新配置的2.6.15.6内核里,因为我把这些设备除去了,就没有相应的目录了。嘿嘿,就是说新内核并没有编译这些设备为模块,这种理解对不对啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表