有许多原因编译Ubuntu7.1内核,不过最重要的原因便是硬件支撑。
IBM ThinkPad T61笔记本的硬件比较新,尽管装了一次就成功了,可是用起来仍是不是很顺。
比方:无线网卡不能装备固定IP,声卡有点问题,显卡装起来费力。
无线网卡是有点受不了的,所以仍是决议晋级一把内核,首要是打个补丁,用新一点的驱动。
事前做好预备:
1.保存好lspci, lsmod的装备和内核模块,弄清楚一切的硬件用的是什么模块。在Ubuntu下,基本上分三种模块:内核模块、Ubuntu特别模块(新的无线网卡之类)和受限驱动。假如自己要编译内核,主张把受限驱动去掉,然后运用厂商引荐的办法。例如:nvidia就要去下载
Ubuntu特别模块是存在于包:linux-Ubuntu-modules-2.6.22-14-generic 中。假如自己 编译内核,也要替换这个(比方:无线网卡iwl4965)。
2.下载厂家引荐驱动,假如没有就能够停步了(除非你自己能搞定驱动),最好是源码的,或者是不依赖于内核,或者是能够依据内核变化而从头编译的,反正要匹配内核。
无线网卡intel 4965:
声卡:
一般来说CPU、主板、内存、硬盘都是内核带的(有些特别硬盘是需求厂商供给驱动的),声卡alsa都能搞定(也有少数支撑欠好的),显卡就难说了(新显卡一般都需求厂家供给,要依照厂家的装置办法来装置),有线网卡一般来说都能支撑,可是无线网卡的支撑程度仍是不可的,即使是最新的intel驱动也有不少问题,特别是速度不可。
还有一些特其他硬件,指纹驱动:
快捷键和acpi电源支撑,这个一般包含在内核里,当然也有或许不支撑,那要看厂家是否支撑或者是有开源支撑。thinkpad_acpi现已包含在内核中了,只需不把它去掉就行。
HDAPS和电源附加支撑:, 专门有开源项目支撑,其间tp_smapi便是支撑这个的。
modem,好像没有支撑,估量要等了。不过一直都没用过。
触摸板和trackpoint小红帽:都支撑,当鼠标用,不过特别功用没有 了,需求的话要特别去装置。仍是去这儿找:
3.下载源码,确定好版别,具体操作拜见:
假如是运用Ubuntu 7.1的内核,就装置linux-source包。版别应该是2.6.22-14,装好在/usr/src下有个压缩包,便是源码。
我选了kernel 2.6.23.12,这是最终的稳定版,先用着(其实对快捷键的支撑好像不如2.6.22)。
装置好一切编译所需包(拜见上面),下载了kernel源码和无线网卡、显卡、声卡驱动后,开端折腾,绵长的……
正式开端编译装置:
1.实际上编译仅仅花时间,事前的补丁要搞好。有些模块是需求先补丁,再编译内核,有些是编译好内核后再装置驱动,次第不要搞错,要事前知道清楚。
nvidia是需求编译装置好内核后再装置驱动,就放到最终。声卡,指纹,virtualbox也是相同。
无线网卡最费事,要先打补丁,为了mac80211。
intel的驱动有三大部分,一个是mac80211,一个是iwlwifi驱动,其间包含4965,3945两种,还有一个是firmware,复制就行了。
mac80211是要对内核打补丁的,那是由于内核现已包含了mac80211,而intel是要替换掉的。拜见mac80211的INSTALL文档,它的补丁是缺省打给/lib/modules/`uname -r`/source的,所以需求把源码目录给链接曩昔。源码目录其实能够放在任何目录,一般放在/usr/src。
iwlwifi能够等内核装置好再装置,由于它需求运用打过补丁的内核,所以要装置好新内核再编译装置。
2.解压和编译内核,除非特别需求,一般都不必再打补丁,直接解压后编译。留意需求用root用户:sudo -s -H。
解压后的目录一般是/usr/src/linux-2.6.23.12,进入这个目录,然后把当时体系的内核装备复制过来:
Java代码
cp /boot/config-2.nfig
cp /boot/config-2.nfig
这应该是Ubuntu 7.1的内核装备文件,假如是其他体系或许有不同。
在源码目录下翻开装备菜单:make menuconfig
挑选load载nfig,然后进行具体装备。一般来说当时体系运转正常则不需求特别装备,假如有驱动要求有特别装备的,必定要细心查看一下,依照驱动装置文档进行。比方:mac80211需求翻开无线支撑。
退出的时分挑选保存。
编译:
Java代码
make-kpkg clean
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
make-kpkg clean
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
其间那个 -custom 是跟在版别号后边的字符串,能够恣意,我就加了一个 -t61,首要是为了差异其他内核,别重名了。
在做这事之前,必定要想好有什么能够打发的闲事,假如机器没有很好,那么编译的时分简直cpu占满了(当然我仍是照常用,T61仍是很强的)。
假如一切正常就会编译完结,假如出了错,那么要查看是否现已装置了一切的编译所需,补丁有没有打错,或者是把错误信息发到其他当地问询。
3.装置内核。
这步太简略了,编译好后会生成两个 deb包,在上一层目录里。
装置,简直在编译内核里都要用root权限
Java代码
dpkg -i linux-image-2.6.23.12-t61_2.6.23.12-t61-10.00.Custom_i386.deb
dpkg -i linux-image-2.6.23.12-t61_2.6.23.12-t61-10.00.Custom_i386.deb
一阵狂闪后,悉数都会主动装好,包含grub会多一个菜单项,便是新装的内核,本来的内核还在,不必忧虑。不过grub要留意,最好是去掉vga=xxx这一项,这样控制台就会正常辨认。
4.重起使用新的内核。
一般来说缺省那项grub菜单便是新内核,假如正常进入后就要装置硬件驱动了。假如X不能进,则把nf里改为vesa驱动,百试百灵。
5.装置硬件驱动。
无线网卡最杂乱。先是装置iwlwifi,依照INSTALL文档,make , make install一般就行了。
假如有问题,要查看几个当地:
/lib/modules/`uname -r`/build和source目录是否指向源码目录了,并且是打了mac80211补丁的源码目录。
mac80211模块是否在/lib/modules/`uname -r`/kernel/net目录下。