linux 内核编译手记

来源:本站
导读:目前正在解读《linux 内核编译手记》的相关信息,《linux 内核编译手记》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《linux 内核编译手记》的详细说明。
简介:首先,需要下载fakeroot和kernal-package包,当然,开发包不可少。
然后进入源代码目录,make conifg。当然,我喜欢用make xconfig,这需要安装libqt3-dev包:apt-get install libqt3-dev即可。

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,这也是一个原因。

ALSA的设置

论坛里边ALSA的设置一大堆,但是Debian的ALSA设置非常简单。

首先,要确认你的核心支持alsa,用lsmod看,必须要有snd_intel8x0,snd_ac97_codec,snd_mpu401_uart,snd_rawmidi,snd_seq_device,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss这一堆模块,(注意,我笔记本是的是AC97

声卡,所以是snd_intel8x0,snd_ac97_codec硬件模块,而snd_pcm_oss是我为了兼容OSS手动而不是靠hotplug方式自动加载的),如果没有,那么你要按我上边写的那样去编译ALSA支持和ALSA模块。

下载alsa-utils,它会顺带下载alsa-base:

apt-get install alsa-utils

然后用alsaconf命令来自动配置,如果你的声卡模块对头,它会自动检测到的。并且会在/etc/init.d/下面添加一个启动脚本alsa。

这样你绝对可以mpg123来听mp3了,当然,还需要gnome下的gstreamer支持alsa,下载这个插件软件包gstreamer0.8-alsa:

apt-get install gstreamer0.8-alsa

然后,你就可以在gstreamer-properties程序里边选择ALSA进行发声测试了。

提醒:《linux 内核编译手记》最后刷新时间 2024-03-14 01:04:20,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《linux 内核编译手记》该内容的真实性请自行鉴别。