請問如何從source編譯網卡的模組

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

請問如何從source編譯網卡的模組

文章訪客 » 週四 4月 28, 2005 2:14 pm

各位先進大家好,我是debian的新手,想跟各位請教網卡設定的問題。
我的主機是內建的broadcom bcm5700網路卡,
安裝時是採用mini-disc安裝,內建並無bcm5700的驅動程式,
所以到http://www.debian.org/distrib/packages 中找到相對的驅動程式碼,
但它是原始程式碼,必須要重新編譯才行。
直接編譯需要kernel的headers,查到的kernel版號是:2.2.20-idepci
下載後,在/usr/src/modules/bcm5700中執行
dpkg-buildpackage -rfakeroot -b
編譯時會告訴我bcm5700-source並不包含在control檔案中,
但control檔似乎是dpkg-buildpackage程式自行產生的,
其中的package名稱是bcm5700-module,
想請教這是什麼原因?該如何解決?

另想說從核心編譯來著手,下载相關的kernel原始碼及套件,然後執行:
make-kpkg modules
來編譯,如此雖然可以編譯成功,但執行它時會出現:
此模組是 2.2.20 版,但核心是 2.2.20-idepci 版,版本不符合
(原為英文,此取其意)的訊息。
但從http://www.debian.org/distrib/packages 找到的套件又明白的說2.2.20-idepci是從 2.2.20編譯出來的,
雖然另有提供kernel-image-2.2.20-i386_2.2.20-5woody5.dsc 這個檔案,
但解開後只有幾個檔案而已,並沒有編譯方法的說明,實在是不知如何由這些檔案去編譯bcm5700給 2.2.20-idepci 核心的模組,
希望各位先進能否指點一下?
訪客
 

文章訪客 » 週五 4月 29, 2005 1:12 pm

自問自答,很明顯的我的方法應該不是debian的正式做法,不過能用就是了。
謹記錄於下,以供有相同困擾的人參考,若有人知道更好的解答亦請不吝指教。

由於我想要ext3檔案系統,所重新安裝同一片光碟中的bf2.4核心。

我試了以下方法來編譯網卡驅動程式,
1.
bcm5700-source-2.0.32-1_all.deb <- stable 版提供的原始程式,
kernel-headers-2.4.18-bf2.4-2.4.18-5woody8_i386.deb <- 對應光碟核心的headers
kernel-source-2.4.18_2.4.18-14.3_all.deb <- 對應的核心原始碼
及其他編譯kernel所需的套件,
先將headers中的include目錄複製到source中的include目錄中,
在 /usr/src/kernel-source-2.4.18目錄中執行
make-kpkg --append_to_version -bf2.4 modules
如此即可編譯出符合光碟核心版號的驅動程式,不幸的是,這個程式並不能使網卡運作。

2.
直接到 /usr/src/modules/bcm5700/src 中打 make 來編譯,
(需先將kernel-headers-... 軟連結(ln)成 /usr/src/linux)
可編譯完成,但一樣沒有作用。

3.
所以我懷疑stable版提供的bcm5700程式碼太舊了,乾脆抓testing版的來試試看,
bcm5700-source_7.3.5-4_all.deb
不過當想依1.的步驟來編譯時,發覺需要同時更新很多套件到testing版才行,
所以放棄第一種方法,直接到其src目錄下以make來編譯,不過需先設定:
ln -s kernel-headers-... linux (in /usr/src directory)
export KSRC=/usr/src/linux
編譯完成後執行 insmod bcm5700.o 進行測試,發覺它終於可以運作了,
總算可以連上網路了。
訪客
 


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客