Ubuntu 7.1內(nèi)核編譯詳解與無(wú)線(xiàn)網(wǎng)卡安裝
掃描二維碼
隨時(shí)隨地手機(jī)看文章
有很多原因編譯Ubuntu7.1內(nèi)核,不過(guò)最重要的原因就是硬件支持。
IBM ThinkPad T61筆記本的硬件比較新,雖然裝了一次就成功了,但是用起來(lái)還是不是很順。
比如:無(wú)線(xiàn)網(wǎng)卡不能配置固定IP,聲卡有點(diǎn)問(wèn)題,顯卡裝起來(lái)費(fèi)勁。
無(wú)線(xiàn)網(wǎng)卡是有點(diǎn)受不了的,所以還是決定升級(jí)一把內(nèi)核,主要是打個(gè)補(bǔ)丁,用新一點(diǎn)的驅(qū)動(dòng)。
事先做好準(zhǔn)備:
1.保存好lspci, lsmod的配置和內(nèi)核模塊,弄清楚所有的硬件用的是什么模塊。在Ubuntu下,基本上分三種模塊:內(nèi)核模塊、Ubuntu特殊模塊(新的無(wú)線(xiàn)網(wǎng)卡之類(lèi))和受限驅(qū)動(dòng)。如果自己要編譯內(nèi)核,建議把受限驅(qū)動(dòng)去掉,然后使用廠(chǎng)商推薦的方法。例如:nvidia就要去下載
Ubuntu特殊模塊是存在于包:linux-Ubuntu-modules-2.6.22-14-generic 中。如果自己 編譯內(nèi)核,也要替換這個(gè)(比如:無(wú)線(xiàn)網(wǎng)卡iwl4965)。
2.下載廠(chǎng)家推薦驅(qū)動(dòng),如果沒(méi)有就可以止步了(除非你自己能搞定驅(qū)動(dòng)),最好是源碼的,或者是不依賴(lài)于內(nèi)核,或者是可以根據(jù)內(nèi)核變動(dòng)而重新編譯的,反正要匹配內(nèi)核。
無(wú)線(xiàn)網(wǎng)卡intel 4965:
聲卡:
一般來(lái)說(shuō)CPU、主板、內(nèi)存、硬盤(pán)都是內(nèi)核帶的(有些特殊硬盤(pán)是需要廠(chǎng)商提供驅(qū)動(dòng)的),聲卡alsa都能搞定(也有少量支持不好的),顯卡就難說(shuō)了(新顯卡一般都需要廠(chǎng)家提供,要按照廠(chǎng)家的安裝方法來(lái)安裝),有線(xiàn)網(wǎng)卡一般來(lái)說(shuō)都能支持,但是無(wú)線(xiàn)網(wǎng)卡的支持程度還是不夠的,即使是最新的intel驅(qū)動(dòng)也有不少問(wèn)題,特別是速度不行。
還有一些特殊的硬件,指紋驅(qū)動(dòng):
快捷鍵和acpi電源支持,這個(gè)一般包括在內(nèi)核里,當(dāng)然也有可能不支持,那要看廠(chǎng)家是否支持或者是有開(kāi)源支持。thinkpad_acpi已經(jīng)包括在內(nèi)核中了,只要不把它去掉就行。
HDAPS和電源附加支持:, 專(zhuān)門(mén)有開(kāi)源項(xiàng)目支持,其中tp_smapi就是支持這個(gè)的。
modem,似乎沒(méi)有支持,估計(jì)要等了。不過(guò)一直都沒(méi)用過(guò)。
觸摸板和trackpoint小紅帽:都支持,當(dāng)鼠標(biāo)用,不過(guò)特殊功能沒(méi)有 了,需要的話(huà)要特別去安裝。還是去這里找:
3.下載源碼,確定好版本,具體操作參見(jiàn):
如果是使用Ubuntu 7.1的內(nèi)核,就安裝linux-source包。版本應(yīng)該是2.6.22-14,裝好在/usr/src下有個(gè)壓縮包,就是源碼。
我選了kernel 2.6.23.12,這是最后的穩(wěn)定版,先用著(其實(shí)對(duì)快捷鍵的支持似乎不如2.6.22)。
安裝好所有編譯所需包(參見(jiàn)上面),下載了kernel源碼和無(wú)線(xiàn)網(wǎng)卡、顯卡、聲卡驅(qū)動(dòng)后,開(kāi)始折騰,漫長(zhǎng)的......
正式開(kāi)始編譯安裝:
1.實(shí)際上編譯只是花時(shí)間,事先的補(bǔ)丁要搞好。有些模塊是需要先補(bǔ)丁,再編譯內(nèi)核,有些是編譯好內(nèi)核后再安裝驅(qū)動(dòng),次序不要搞錯(cuò),要事先知道清楚。
nvidia是需要編譯安裝好內(nèi)核后再安裝驅(qū)動(dòng),就放到最后。聲卡,指紋,virtualbox也是一樣。
無(wú)線(xiàn)網(wǎng)卡最麻煩,要先打補(bǔ)丁,為了mac80211。
intel的驅(qū)動(dòng)有三大部分,一個(gè)是mac80211,一個(gè)是iwlwifi驅(qū)動(dòng),其中包括4965,3945兩種,還有一個(gè)是firmware,拷貝就行了。
mac80211是要對(duì)內(nèi)核打補(bǔ)丁的,那是因?yàn)閮?nèi)核已經(jīng)包括了mac80211,而intel是要替換掉的。參見(jiàn)mac80211的INSTALL文檔,它的補(bǔ)丁是缺省打給/lib/modules/`uname -r`/source的,所以需要把源碼目錄給鏈接過(guò)去。源碼目錄其實(shí)可以放在任何目錄,一般放在/usr/src。
iwlwifi可以等內(nèi)核安裝好再安裝,因?yàn)樗枰褂么蜻^(guò)補(bǔ)丁的內(nèi)核,所以要安裝好新內(nèi)核再編譯安裝。
2.解壓和編譯內(nèi)核,除非特殊需要,一般都不用再打補(bǔ)丁,直接解壓后編譯。注意需要用root用戶(hù):sudo -s -H。
解壓后的目錄一般是/usr/src/linux-2.6.23.12,進(jìn)入這個(gè)目錄,然后把當(dāng)前系統(tǒng)的內(nèi)核配置拷貝過(guò)來(lái):
Java代碼
cp /boot/config-2.nfig
cp /boot/config-2.nfig
這應(yīng)該是Ubuntu 7.1的內(nèi)核配置文件,如果是其他系統(tǒng)可能有不同。
在源碼目錄下打開(kāi)配置菜單:make menuconfig
選擇load載nfig,然后進(jìn)行詳細(xì)配置。一般來(lái)說(shuō)當(dāng)前系統(tǒng)運(yùn)行正常則不需要特別配置,如果有驅(qū)動(dòng)要求有特殊配置的,一定要仔細(xì)檢查一下,按照驅(qū)動(dòng)安裝文檔進(jìn)行。比如:mac80211需要打開(kāi)無(wú)線(xiàn)支持。
退出的時(shí)候選擇保存。
編譯:
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
其中那個(gè) -custom 是跟在版本號(hào)后面的字符串,可以任意,我就加了一個(gè) -t61,主要是為了區(qū)別其他內(nèi)核,別重名了。
在做這事之前,一定要想好有什么可以打發(fā)的閑事,如果機(jī)器沒(méi)有很好,那么編譯的時(shí)候幾乎cpu占滿(mǎn)了(當(dāng)然我還是照常用,T61還是很強(qiáng)的)。
如果一切正常就會(huì)編譯完成,如果出了錯(cuò),那么要檢查是否已經(jīng)安裝了所有的編譯所需,補(bǔ)丁有沒(méi)有打錯(cuò),或者是把錯(cuò)誤信息發(fā)到別的地方詢(xún)問(wèn)。
3.安裝內(nèi)核。
這步太簡(jiǎn)單了,編譯好后會(huì)生成兩個(gè) deb包,在上一層目錄里。
安裝,幾乎在編譯內(nèi)核里都要用root權(quán)限
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
一陣狂閃后,全部都會(huì)自動(dòng)裝好,包括grub會(huì)多一個(gè)菜單項(xiàng),就是新裝的內(nèi)核,原來(lái)的內(nèi)核還在,不用擔(dān)心。不過(guò)grub要注意,最好是去掉vga=xxx這一項(xiàng),這樣控制臺(tái)就會(huì)正常識(shí)別。
4.重起應(yīng)用新的內(nèi)核。
一般來(lái)說(shuō)缺省那項(xiàng)grub菜單就是新內(nèi)核,如果正常進(jìn)入后就要安裝硬件驅(qū)動(dòng)了。如果X不能進(jìn),則把nf里改為vesa驅(qū)動(dòng),百試百靈。
5.安裝硬件驅(qū)動(dòng)。
無(wú)線(xiàn)網(wǎng)卡最復(fù)雜。先是安裝iwlwifi,按照INSTALL文檔,make , make install一般就行了。
如果有問(wèn)題,要檢查幾個(gè)地方:
/lib/modules/`uname -r`/build和source目錄是否指向源碼目錄了,并且是打了mac80211補(bǔ)丁的源碼目錄。
mac80211模塊是否在/lib/modules/`uname -r`/kernel/net目錄下。[!--empirenews.page--]
裝好后,檢查一下/lib/modules/`uname -r`/kernel/drivers/net/wireless/目錄,是否有 iwl3945.ko和iwl4965.ko,這兩個(gè)是真正的驅(qū)動(dòng)。
還要把firmware拷貝過(guò)去。
手動(dòng)安裝內(nèi)核是沒(méi)有firmware,所以要先創(chuàng)建
進(jìn)入目錄 /lib/firmware
Java代碼
cp -R 2.6.22-14-generic/ 2.6.23.12-t61/
cp -R 2.6.22-14-generic/ 2.6.23.12-t61/
相當(dāng)于把原來(lái)缺省的firmware都拷貝過(guò)來(lái)。不過(guò)重點(diǎn)是 iwlwifi*
從無(wú)線(xiàn)網(wǎng)卡驅(qū)動(dòng)網(wǎng)站上下載的firmware解開(kāi),把iwlwifi*.ucode拷貝過(guò)來(lái)覆蓋掉。
這樣mac80211-10.0.3 ,iwlwifi-1.2.23 , iwl4965-ucode-4.44.1.20 就安裝好了,版本號(hào)要對(duì)齊,否則極容易錯(cuò)。
這里給一個(gè)高人的好辦法,但是我怎么也沒(méi)試成功過(guò),不知道這個(gè)牛人怎么裝上的。(要用代理看)
弄好了無(wú)線(xiàn),要搞聲卡,這個(gè)太方便了,只要下載drivers, utils, lib, oss,然后分別make make install(注意lib要比utils先裝),基本上都可以了。但是還要識(shí)別一下聲卡和驅(qū)動(dòng)。裝好程序后,在drivers源碼目錄下./snddevices來(lái)創(chuàng)建聲卡設(shè)備,然后使用alsaconf來(lái)自動(dòng)識(shí)別。如果識(shí)別了,那就搞定了,如果不行,那就放棄alsa吧,或者是有特殊的驅(qū)動(dòng)再安裝。
顯卡也方便,退回控制臺(tái)(sudo /etc/init.d/gdm stop),然后轉(zhuǎn)到ctrl+alt+F1,登錄后安裝nvidia。
Java代碼
sudo sh ./NVIDIA-Linux-x86-169.07-pkg1.run
sudo sh ./NVIDIA-Linux-x86-169.07-pkg1.run
照著提示就行了,也要編譯一下,需要內(nèi)核header,當(dāng)然源碼也可以,只要保證 /lib/modules/`uname -r`/build指向正確就行了。
ati安裝也用廠(chǎng)商的,不要用Ubuntu缺省的驅(qū)動(dòng),因?yàn)?strong>內(nèi)核動(dòng)過(guò),有可能出問(wèn)題。
當(dāng)然如果是vesa就沒(méi)關(guān)系了。其實(shí)感覺(jué)還是vesa好,nvidia這個(gè)驅(qū)動(dòng)感覺(jué)挺慢的,不知道為什么。
如果重啟后沒(méi)事,那么恭喜你了,一場(chǎng)大戰(zhàn)結(jié)束了,雖然是慘勝,不過(guò)也是勝。
如果裝了virtual box,別忘了重新編譯
Java代碼
sudo /etc/init.d/vboxdrv setup
sudo /etc/init.d/vboxdrv setup
檢驗(yàn)戰(zhàn)果:
無(wú)線(xiàn)網(wǎng)卡還算是穩(wěn)定了,可以設(shè)固定IP了,而且似乎速度快了一點(diǎn),但是比windows還慢,這個(gè)實(shí)在是不能原諒,不過(guò)只能等了。
顯卡驅(qū)動(dòng)還是那樣,要靠nvidia再努力了。
聲卡的靜音快捷鍵沒(méi)有OSD了,不過(guò)還能靜音,只是不能取消靜音了,只能用mixer來(lái)調(diào)了。不過(guò)我的聲卡長(zhǎng)年靜音,都快忘了。
空格鍵上放大的快捷鍵失效了,實(shí)在是大喜事啊,多么恨這個(gè)鍵啊。鍵盤(pán)燈是bios控制的,沒(méi)問(wèn)題。調(diào)LCD亮度只要裝了新的nivida驅(qū)動(dòng)就能用。
休眠和待機(jī)是不用的,不是不想,而是問(wèn)題多多,基本處于windows 98水平,次得很。
切換外置顯示器還沒(méi)試過(guò),據(jù)說(shuō)要配另一個(gè)screen的,不過(guò)老的sony上試過(guò),很容易,這個(gè)要看驅(qū)動(dòng)保佑了。
總結(jié):
要娛樂(lè)還是去xp,連vista都兼容性不好,linux工作是一流的,要在windows這種細(xì)調(diào)的可能性都沒(méi)有,不過(guò)實(shí)在是繁瑣了一點(diǎn),沖著這超強(qiáng)的硬盤(pán)緩存,值了。