歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Redhat下無線網卡配置攻略

無線上網是近幾年來網絡發展的重點。由於脫離了物理的線纜限制,無線上網已經成為眾多家庭和辦公環境的首選方式。許多傳統的基於有線局域網的環境也都在向無線遷移,這對於Linux下的驅動程序提出了很迫切。眾所周知,對於無線網卡這種新產物,Linux的驅動支持總是慢一拍,大多數網卡的驅動盤都是只有Windows的驅動,直到目前也很少有附加Linux驅動的。這對於Linux在國內的普及和發展造成了很大的障礙。

一、引言

這兩天根據實驗室內部的需要,承擔了改造現有網絡,增加無線AP的工程。由於本實驗室長期從事Unix/Linux方面的研究和工程項目,有大量的Linux主機需要解決無線上網問題。為此筆者一直在廣泛的搜尋Linux下面可以支持無線網卡,也曾經在GOOGLE上查閱了無數資料,包括硬件廠商的、第三方開源支持的,等等。但是這些資料看起來很多,但是實際上符合我的需求的可以說很少,主要有以下幾個問題:

1. 現有的敘述Linux下面無線網卡支持方案的文章,絕大多是講使用ndis wrapper的方式。這個軟件包只支持2.6以上內核,對於內核版本2.4.20的根本不支持。而實驗室內大多數機器都在使用傳統的RedHat 9.0,其內核恰恰用的是2.4.20,如果再需要換內核就比較麻煩了。另外,它使用的重新利用WindowsXP驅動的方式,從裡面分析二進制指令以轉化成Linux驅動,但是目前轉化率並不是100%完善,對windows xp的驅動也不是100%可用。

2. ndis wrapper需要重編譯內核,這造成安裝過程非常麻煩,另外很多已經在運行的應用是根本不允許再編譯內核的。因此,最好拿來驅動編出模塊,直接加載就能用。筆者認為驅動程序就是應該使用上盡量簡化,比較反感需要重新編譯內核的任何應用。

3. 所講的無線網卡多是PCMICA、USB的,對於標准PCI的講的相對較少。而我們需要支持的大多數是PC機,使用PCI網卡是最方便的,也是最省錢的。

4. 所講的無線網卡在市場上不一定好買,所述的型號都是比較老的,或者說是國外廣泛使用而在國內市場很少見的。而對於現在市面上最流行的TP-link、D-Link等常見網卡,卻很難找到是否可以支持的明確回答,往往回答都很含混,使得讀者沒有方法判斷,也沒有精力去買挨個買網卡做實驗。

鑒於以上分析,我試用了Madwifi的驅動(http://www.madwifi.org),使用了當前最好買也最便宜(當然假貨也最多)的Tp-link 550G 802.11G網卡。這個網卡是TP-link 802.11g的代表產品,是標准PCI接口的,帶tp-link的域展功能(將802.11G的有效距離從30、40米擴展到最遠108米,是TP-Link的一大獨特賣點)。之所以用tp-link,也主要是因為它便宜,好買,對於我們這一下買幾十個的規模非常經濟。如果改D-link,則每個網卡要貴上一倍。

下面的講述就不做什麼原理分析了,完全按照已經實現的步驟。因此要求讀者有最基礎的Linux驅動配置知識。所選用的操作系統版本為RedHat 9,內核為2.4.20。對於2.6以上的內核,Madwifi驅動也作了完美支持,讀者可以在http://www.madwifi.org找到類似的升級方法。

二、網卡選型

出於省錢和好買的原則,在中關村的一個做電腦生意的朋友處拿了個tp-link 541G的路由器(即AP),又拿了一個550G的無線網卡。541G 用於做AP,550G用於安裝在每台PC機上。550G只有“域展”(加大傳輸距離,號稱室外可達800米,沒有親自試過)沒有“速展”(最高速率做到了108Mb/s,而且與標准的54M設備兼容)。到目前為止TP-Link的最新無線網卡型號是650G,是兩者兼有的新產品。但是當前650G還比較貴,出貨少,萬一我試驗不成功廠家那裡不好退貨。所以也不好強求所以就作罷了——550G也已經不錯了。

通過在網上查找資料,發現這個無線網卡的芯片型號為Atheros AR5005G,是madwifi支持的類型。

三、AP設置

拿回產品之後先設置AP。先簡單說一下我們現在的網絡環境。我們就一個房間,總共20多台機器,從學校校園網的交換機上面接下來一根100M的對外的LAN線,接到本實驗室的一台交換機。交換機端口上劃分的子網是159.226.204.0/255.255.255.0.,網關159.226.204.199,然後在實驗室裡面通過多個HUB一級一級的往下分。

AP的安裝還是比較簡單的,完全參照產品說明書中的配置方法:

1. 將AP直接接到交換機的某個端口上,或者隨便接到局域網的某個HUB上。把AP四個LAN口之一與HUB相連。

2. 找一台筆記本也接到這HUB上,將改筆記本的IP為192.168.1.250/255.255.255.0(AP內置的默認地址)。

3. 打開浏覽器,訪問AP: http://191.268.1.1:80,在這個WEB界面裡先設AP的IP為159.226.204.250。為了安全起見,將AP設上連接密碼,例如設essid為“gait-wifi”,設WEB加密方式為128位共享口令,並輸入密碼(13位ASCII碼)。在AP上設定好自動分配IP地址(DHCP)。設完後重啟AP。

4. 先找一個迅馳筆記本,測試AP設置是否正常。通過Windows SP2內置的無線網絡管理程序,成功的找到了AP,輸入密碼後連接正常,並且可以正確分配IP地址和DNS。---http://www.bianceng.cn

四、Linux軟硬件平台

1. 硬件:普通PC,CPU為AMD AM2 3200+,內存512M。

2. 軟件:RedHat 9,內核2.4.20。

五、網卡配置

下面講關鍵的部分,Linux下Tp-link無線網卡的配置過程。

1. 找台裝好了windows xp和redhat 9.0雙系統的機器。拆開機箱,把原來的LAN網卡拿掉,換上550G。按原樣裝好機箱。

2. 開機先進windows,直接提示找到新硬件。在隨網卡所附的驅動盤上找到550G/650G的目錄,系統自動搜索驅動,安裝後先不用重啟。然後還要裝TP-link的管理工具,在電腦裡找光盤上550G/650G的目錄,有一個setup.exe裝完即可。重啟之後,打開Windows無線管理,搜索無線網絡找到AP(essid為gait-wifi),填入密碼就可以上網了。IP和DNS的設置都是自動分配的。總之在windows下的安裝很簡單,說明書講的很詳細了。

3. 重啟機器進入red hat 9.0。啟動過程中提示原來網卡找不到了,不用理會。

4. 先檢查/usr/src/linuc下有沒有安裝源代碼(Madwifi驅動的編譯是需要源代碼文件的),如果沒有,就找到Redhat安裝光盤,用rpm –hvi kernel-source-2.4.20-8.rpm(好像在第3張盤)裝上。

5. 在編譯驅動之前,需要准備源代碼目錄:

# cd /usr/src/linux

# make menuconfig // 在對話框出現後直接選exit,然後保存配置即可

# vi Makefile // 找到版本號處的“EXTRAVERSION=8-custom”,改成“EXTRAVERSION=8”

# make dep //注意只需make dep,不需make。madwifi需要的只是一些有關系統內核配置信息的頭文件,不需要重新編譯整個內核。

6. 下載驅動程序源代碼:在http://madwifi.sourceforge.net下載到最新版本的源代碼包madwifi-cvs-current.tar.gz.

7. 編譯驅動程序:

# cp madwifi-cvs-current.tar.gz /tmp

# cd /tmp

# tar zxvf madwifi-cvs-current.tar.gz

# cd madwifi

# make KERNELPATH=/usr/src/linux

8. 安裝驅動程序:

# make install

# /sbin/modprobe ath_pci //加載模塊。至此網卡應該已經能夠成功配置

9. 檢查網卡狀態:

# dmesg

如果已經成功配置網卡並加載,在dmesg裡最後的輸出應該可以看到550G的信息。

10. 網卡配置:此時執行/sbin/ifconfig,應當只能看到一個lo接口。這說明無線網卡已經正常安裝了,但是還沒有經過網絡參數配置。下面需要進行無線網卡的配置。

# /sbin/ifconfig ath0 159.226.204.197 netmask 255.255.255.0

上面一句配置接口ath0的屬性。此時再執行/sbin/ifconfig,應當能夠看到ath0接口了。雖然接口是建立起來了,但是ping交換機是不通的。需要再用iwconfig配置無線接入的參數。

# /sbin/iwconfig ath0 essid “gait-wifi” mode managed key “s:13位ASCII密碼” rate auto

然後用iwconfig應該可以看到網卡成功的連接,速率應該是54M. 這時ping 159.226.204.199應該可以ping通:

# ping 159.226.204.199

PING 159.226.204.199 (159.226.204.199) 56(84) bytes of data.

64 bytes from 159.226.204.199: icmp_seq=1 ttl=255 time=0.647 ms

64 bytes from 159.226.204.199: icmp_seq=2 ttl=255 time=7.29 ms

--- 159.226.204.199 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.647/3.968/7.290/3.322 ms

但是上外網還不行。因為路由沒有配置。加一句默認路由:

# route add default gw 159.226.204.199

同時在/etc/resolve.conf裡加上默認DNS,否則是無法解析域名的。例如:

# cat /etc/resolv.conf

nameserver 202.112.128.51

這時就可以上外網了。例如:

# lynx www.google.com

11. 配置網上自動啟動:在以上步驟中成功的使用了無線網卡,但是都是手工敲入的命令,如果機器重啟那麼一切配置都會丟失了。需要修改系統配置,使之重啟機器能夠自動生效。這個配置與普通網卡的配置過程相同,都是在/etc/sysconfig/network-scripts下建立網絡接口描述文件,並填寫正確的配置內容:

# cd /etc/sysconfig/network-scripts

# cp ifcfg-eth0 ifcfg-ath0 //從當初eth0描述文件的基礎上直接修改

# vi ifcfg-eth0 //把首部的ONBOOT=yes改成ONBOOT=no,不再啟動以太網接口

# vi ifcfg-ath0 //把首部的DEVICE=eth0改成DEVICE=ath0

# vi etc/sysconfig/hwconfig //任意拷貝一段PCI的設備,把driver字段改成“ath_pci”,desc可以任意修改。

# vi /etc/rc.d/rc.local // 最後加一句/sbin/iwconfig ath0 essid “wifiap” mode managed key “s:13位的ASCII密碼” rate auto

12. 重啟動機器,再測試。All things done.

在以上各步驟中,由於軟件和文件系統的具體差異,都可能出現一些問題,尤其是在內核源代碼配置和編譯過程中。這需要讀者綜合運用Linux驅動程序方面的基礎知識,視具體問題,使用你的智慧和經驗加以解決。

六、其它說明

1. 本文所做的實驗都在在PC機上進行的,後來又在筆記本上作了實驗,使用了同為TP-Link品牌的PCMICA無線網卡TP-610G。這個網卡和550G僅在於接口形式的不同,內核芯片是完全相同的。所以配置方法完全相同,工作的也很正常。但是對於大多數內置無線網卡的筆記本,除了少數廠家提供了官方驅動(如Intel的802.11 B/G系列),其它筆記本仍然存在很多問題。

2. 根據mdwifi的官方聲明,這個驅動的當前版本只支持PCI和PCMICA接口的網卡,對於USB尚不支持,想畢是由於技術上尚未實現全面。截止到目前為止仍然沒有什麼進展。這一點對於網卡選型尤其關鍵。如果選用了USB無線網卡,本文的方法就失效了,需要再下功夫解決驅動問題。

七、總結

以上是我建立無線AP和在linux下使用無線網卡的全過程,總之還算是比較簡單的。這個madwifi驅動適用於幾乎所有Atheros芯片的網卡(注意只支持PCI、mini PCI、pcmica的,不支持USB的),內核2.4、2.6都可以,也就是說從red hat7.3就可以用,而且不用重編內核。希望能對在linux下使用無線的人一點參考。

後來筆者測試了一下最新版的Ubuntu 6.04,發現Ubuntu內置了madwifi的驅動,安裝之後就能自動識別網卡,這樣就省略了上面所有的配置過程,可供參考。但是對於大多數其它發行版(尤其是比較傳統的服務器發行版),還是按照本文的方法手工配置。

Copyright © Linux教程網 All Rights Reserved