Debian内核编译手记

来源:互联网 发布:迅雷mac历史版本 编辑:程序博客网 时间:2024/05/07 02:10
内核编译手记

debian的内核编译是比较轻松的,版本控制也很方便。
首先,需要下载fakeroot和kernal-package包,当然,开发包不可少。
然后进入源代码目录,make conifg。当然,我喜欢用make xconfig,这需要安装libqt3-dev包:apt-get install libqt3-dev即可。
make xconfig里边非常多的 选项,搞不好就会导致机器启动不了。由于我是笔记本,显卡、网卡、声卡什么的,总不会换,所以我只选择适合我的东西,只得注意的是,为了支持休眠,要把ata支持编译进核心而不能是模块;而且,尽管本本不可能有scsi控制器,但是USB硬盘、USB CD、U盘都是模拟scsi的,所以需要scsi支持;network呢,我选上自己的网卡e100就好了,另外去掉IPV6和许多什么IPX、Appletalk一辈子用不到的东西的支持可能会让系统工作高效一些;characher device一项中,选自己的agp芯片组和显卡类型就可以了 ;对新手比较困惑的是graphic选项,这个几乎没有用,因为你也许永远不会想去在控制台用中文,一般而言,我把vesafb编译进核心,如果把自己的显卡编译进核心,无非就是可以让控制台在高于1024
×768的分辨率下工作,看的东西多一点;声卡呢,选上alsa就行了,oss已经废弃了,但是好多程序都还是使用oss的/dev/dsp设备,如果不选oss,你需要在/etc/modules里边手动添加snd_pcm_oss,这样就和oss兼容了,但是quake2对ALSA支持不好;USB是个好东西,你几乎不要动它的编译选项,不过我把uchi-hcd编进了核心,因为我是intel芯片组,要指出的是,USB鼠标只需加入usbhid模块即可;文件系统呢,为了不用initrd(4M大的空间),我把ext2文件系统编译进核心,去掉了compressed ROM fs support,然后是光盘文件(DVD使用UDF)系统,DOS文件系统(vfat、ntfs之类),pseudo文件系统不要去动它,其他出了smbfs,我一概不要;其他什么MTD、AR、Ftape、old-cdrom等等一堆东西,就不要选了。
上面提到休眠支持,这个需要给核心打swsusp2补丁的,下载地址在http://softwaresuspend.berlios.de/, 尽管核心自己带有休眠支持(stock-suspend),但是工作情况不好,没有swsusp2好用,所以还是需要打这个补丁。在编译的时候要注意,自带的休眠选项不能选,apm不要,swsusp2选前面三个就好了,LZF是压缩内核镜像用的,可以减少休眠写盘内容,加快写盘速度。
好了,可以编译核心了:
fakeroot make-kpkg --append_to_version -1-686 kernel-image
一个命令把make mrprper bzImage modules modules-install全部搞定,如果想使用initrd,并且在内核里边选上了Compressed ROM file system support,那么可以这么做:
fakeroot make-kpkg --append_to_version -1-686 --initrd kernel-image
会有警告性提示,选no即可。--append_to_version -1-686是把附加版本定位-1-686。
编译完成之后,回到/usr/src下面,就可以dpkg -i kernel-image××××.deb 了。
要注意的是,这种安装方法,如果在你有这个文件 : /etc/kernel-img.conf
# Do not create symbolic links in /
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = /sbin/update-grub
postrm_hook = /sbin/update-grub
那么你dpkg -i kernel-image××××.deb之后,grub会自动生成启动选项。非常方便。我把lilo改成grub,这也是一个原因。

原创粉丝点击