說下在Fedora 18下ASUS N6系列電腦上以太網卡驅動的安裝過程。
電腦為ASUS N6系列,以太網卡的型號為Atheros AR8161/8165。
到此網卡的官方網站上未找到Linux下的驅動。
在網上搜索這個網卡驅動的安裝,最後得到的結論是安裝alx Ethernet driver。
alx Ethernet driver的網址如下:
http://www.linuxfoundation.org/collaborate/workgroups/networking/alx
alx Ethernet driver在網頁中的下載地址如下:
https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/04/compat-drivers-2013-03-04-u.tar.bz2
下載下來後,解壓並進入到compat-drivers-2013-03-04-u文件夾。
下面是網頁中的安裝方法:
Install
To only compile and install the alx driver you can do:
./scripts/driver-select alx
make
sudo make install
先執行./scripts/driver-select alx,正常。
然後執行make,出現如下編譯錯誤:
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:118:59: error: redefinition of ‘nla_put_s8’
…
include/net/netlink.h:901:59: note: previous definition of ‘nla_put_s8’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:129:59: error: redefinition of ‘nla_put_s16’
…
include/net/netlink.h:912:59: note: previous definition of ‘nla_put_s16’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:140:59: error: redefinition of ‘nla_put_s32’
…
include/net/netlink.h:923:59: note: previous definition of ‘nla_put_s32’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:151:59: error: redefinition of ‘nla_put_s64’
…
include/net/netlink.h:934:59: note: previous definition of ‘nla_put_s64’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:160:59: error: redefinition of ‘nla_get_s32’
…
include/net/netlink.h:1058:59: note: previous definition of ‘nla_get_s32’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:169:59: error: redefinition of ‘nla_get_s16’
…
include/net/netlink.h:1067:59: note: previous definition of ‘nla_get_s16’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:178:58: error: redefinition of ‘nla_get_s8’
…
include/net/netlink.h:1076:58: note: previous definition of ‘nla_get_s8’ was here
…
…compat-drivers-2013-03-04-u/include/linux/compat-3.7.h:188:59: error: redefinition of ‘nla_get_s64’
…
include/net/netlink.h:1085:59: note: previous definition of ‘nla_get_s64’ was here
…compat-drivers-2013-03-04-u/compat/main.o] Error 1
…
先不急著上網上找解決辦法,試著動手解決一下這個編譯錯誤。
在文件夾compat-drivers-2013-03-04-u的include/net下,沒有netlink.h這個文件。
在文件夾compat-drivers-2013-03-04-u中搜索netlink.h,未找到。
這時,估計netlink.h就是系統中自帶的頭文件了。
於是,到/usr下執行如下命令:
find ./ -iname netlink.h
發現了如下文件:
/usr/src/kernels/3.6.10-4.fc18.x86_64/include/net/netlink.h
這個文件的路徑與編譯錯誤中“include/net/netlink.h”這個路徑一致。
打開並查看/usr/src/kernels/3.6.10-4.fc18.x86_64/include/net/netlink.h和compat-drivers-2013-03-04-u/include/linux/compat-3.7.h這兩個文件,
發現編譯錯誤所報的內容,在這兩個文件中都有定義,
於是將compat-drivers-2013-03-04-u/include/linux/compat-3.7.h中重復定義的內容注釋掉,
即將compat-drivers-2013-03-04-u/include/linux/compat-3.7.h中的112行到198行的內容注釋掉。
再次make,編譯通過。
執行su,輸入root密碼。
再執行make install,安裝成功。
不重啟我不知道怎麼讓網卡工作起來,於是我重啟了。
重啟後,網卡工作正常,自動獲取到了IP,上網OK!
更多Fedora相關信息見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5