新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Ubuntu 7.1內(nèi)核編譯詳解與無線網(wǎng)卡安裝

Ubuntu 7.1內(nèi)核編譯詳解與無線網(wǎng)卡安裝

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

有很多原因編譯Ubuntu7.1內(nèi)核,不過最重要的原因就是硬件支持。

本文引用地址:http://butianyuan.cn/article/201609/304544.htm

IBM ThinkPad T61筆記本的硬件比較新,雖然裝了一次就成功了,但是用起來還是不是很順。

比如:無線網(wǎng)卡不能配置固定IP,聲卡有點(diǎn)問題,顯卡裝起來費(fèi)勁。

無線網(wǎng)卡是有點(diǎn)受不了的,所以還是決定升級一把內(nèi)核,主要是打個(gè)補(bǔ)丁,用新一點(diǎn)的驅(qū)動。

事先做好準(zhǔn)備:

1.保存好lspci, lsmod的配置和內(nèi)核模塊,弄清楚所有的硬件用的是什么模塊。在Ubuntu下,基本上分三種模塊:內(nèi)核模塊、Ubuntu特殊模塊(新的無線網(wǎng)卡之類)和受限驅(qū)動。如果自己要編譯內(nèi)核,建議把受限驅(qū)動去掉,然后使用廠商推薦的方法。例如:nvidia就要去下載

Ubuntu特殊模塊是存在于包:linux-Ubuntu-modules-2.6.22-14-generic 中。如果自己 編譯內(nèi)核,也要替換這個(gè)(比如:無線網(wǎng)卡iwl4965)。

2.下載廠家推薦驅(qū)動,如果沒有就可以止步了(除非你自己能搞定驅(qū)動),最好是源碼的,或者是不依賴于內(nèi)核,或者是可以根據(jù)內(nèi)核變動而重新編譯的,反正要匹配內(nèi)核。

無線網(wǎng)卡intel 4965:

聲卡:

一般來說CPU、主板、內(nèi)存、硬盤都是內(nèi)核帶的(有些特殊硬盤是需要廠商提供驅(qū)動的),聲卡alsa都能搞定(也有少量支持不好的),顯卡就難說了(新顯卡一般都需要廠家提供,要按照廠家的安裝方法來安裝),有線網(wǎng)卡一般來說都能支持,但是無線網(wǎng)卡的支持程度還是不夠的,即使是最新的intel驅(qū)動也有不少問題,特別是速度不行。

還有一些特殊的硬件,指紋驅(qū)動:

快捷鍵和acpi電源支持,這個(gè)一般包括在內(nèi)核里,當(dāng)然也有可能不支持,那要看廠家是否支持或者是有開源支持。thinkpad_acpi已經(jīng)包括在內(nèi)核中了,只要不把它去掉就行。

HDAPS和電源附加支持:, 專門有開源項(xiàng)目支持,其中tp_smapi就是支持這個(gè)的。

modem,似乎沒有支持,估計(jì)要等了。不過一直都沒用過。

觸摸板和trackpoint小紅帽:都支持,當(dāng)鼠標(biāo)用,不過特殊功能沒有 了,需要的話要特別去安裝。還是去這里找:

3.下載源碼,確定好版本,具體操作參見:

如果是使用Ubuntu 7.1的內(nèi)核,就安裝linux-source包。版本應(yīng)該是2.6.22-14,裝好在/usr/src下有個(gè)壓縮包,就是源碼。

我選了kernel 2.6.23.12,這是最后的穩(wěn)定版,先用著(其實(shí)對快捷鍵的支持似乎不如2.6.22)。

安裝好所有編譯所需包(參見上面),下載了kernel源碼和無線網(wǎng)卡、顯卡、聲卡驅(qū)動后,開始折騰,漫長的......

正式開始編譯安裝:

1.實(shí)際上編譯只是花時(shí)間,事先的補(bǔ)丁要搞好。有些模塊是需要先補(bǔ)丁,再編譯內(nèi)核,有些是編譯好內(nèi)核后再安裝驅(qū)動,次序不要搞錯(cuò),要事先知道清楚。

nvidia是需要編譯安裝好內(nèi)核后再安裝驅(qū)動,就放到最后。聲卡,指紋,virtualbox也是一樣。

無線網(wǎng)卡最麻煩,要先打補(bǔ)丁,為了mac80211。

intel的驅(qū)動有三大部分,一個(gè)是mac80211,一個(gè)是iwlwifi驅(qū)動,其中包括4965,3945兩種,還有一個(gè)是firmware,拷貝就行了。

mac80211是要對內(nèi)核打補(bǔ)丁的,那是因?yàn)閮?nèi)核已經(jīng)包括了mac80211,而intel是要替換掉的。參見mac80211的INSTALL文檔,它的補(bǔ)丁是缺省打給/lib/modules/`uname -r`/source的,所以需要把源碼目錄給鏈接過去。源碼目錄其實(shí)可以放在任何目錄,一般放在/usr/src。

iwlwifi可以等內(nèi)核安裝好再安裝,因?yàn)樗枰褂么蜻^補(bǔ)丁的內(nèi)核,所以要安裝好新內(nèi)核再編譯安裝。

2.解壓和編譯內(nèi)核,除非特殊需要,一般都不用再打補(bǔ)丁,直接解壓后編譯。注意需要用root用戶:sudo -s -H。

解壓后的目錄一般是/usr/src/linux-2.6.23.12,進(jìn)入這個(gè)目錄,然后把當(dāng)前系統(tǒng)的內(nèi)核配置拷貝過來:

Java代碼

cp /boot/config-2.nfig

cp /boot/config-2.nfig

這應(yīng)該是Ubuntu 7.1的內(nèi)核配置文件,如果是其他系統(tǒng)可能有不同。

在源碼目錄下打開配置菜單:make menuconfig

選擇load載nfig,然后進(jìn)行詳細(xì)配置。一般來說當(dāng)前系統(tǒng)運(yùn)行正常則不需要特別配置,如果有驅(qū)動要求有特殊配置的,一定要仔細(xì)檢查一下,按照驅(qū)動安裝文檔進(jìn)行。比如:mac80211需要打開無線支持。

退出的時(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 是跟在版本號后面的字符串,可以任意,我就加了一個(gè) -t61,主要是為了區(qū)別其他內(nèi)核,別重名了。

在做這事之前,一定要想好有什么可以打發(fā)的閑事,如果機(jī)器沒有很好,那么編譯的時(shí)候幾乎cpu占滿了(當(dāng)然我還是照常用,T61還是很強(qiáng)的)。

如果一切正常就會編譯完成,如果出了錯(cuò),那么要檢查是否已經(jīng)安裝了所有的編譯所需,補(bǔ)丁有沒有打錯(cuò),或者是把錯(cuò)誤信息發(fā)到別的地方詢問。

3.安裝內(nèi)核。

這步太簡單了,編譯好后會生成兩個(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

一陣狂閃后,全部都會自動裝好,包括grub會多一個(gè)菜單項(xiàng),就是新裝的內(nèi)核,原來的內(nèi)核還在,不用擔(dān)心。不過grub要注意,最好是去掉vga=xxx這一項(xiàng),這樣控制臺就會正常識別。

4.重起應(yīng)用新的內(nèi)核。

一般來說缺省那項(xiàng)grub菜單就是新內(nèi)核,如果正常進(jìn)入后就要安裝硬件驅(qū)動了。如果X不能進(jìn),則把nf里改為vesa驅(qū)動,百試百靈。

5.安裝硬件驅(qū)動。

無線網(wǎng)卡最復(fù)雜。先是安裝iwlwifi,按照INSTALL文檔,make , make install一般就行了。

如果有問題,要檢查幾個(gè)地方:

/lib/modules/`uname -r`/build和source目錄是否指向源碼目錄了,并且是打了mac80211補(bǔ)丁的源碼目錄。

mac80211模塊是否在/lib/modules/`uname -r`/kernel/net目錄下。


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉