移植wifi無線網卡到mini2440上全過程 前段時間移植了U-boot和linux2.6.27.9到
mini2440上,最近有點空,手頭有一個usb接口的zd1211b芯片的
wifi無線網卡(PSP和NDSL玩家都知道的神卡),因而決定進行wifi無線網卡在
嵌入式中的移植。要在內核中加入此無線網卡的驅動。我是在我移植的linux2.6.27.9內核上移植的。關於內核移植,請看個人這篇文章。
http://blog.chinaunix.net/u2/75270/showart.php?id=1796658
新版的linux2.6.27.9已自帶
zd1211b的驅動。此驅動在rat-linux-2.6.27.9/drivers/net/wireless/zd1211rw/中。要讓此驅動生效,得修改內核配置。 選中 networking support-->wireless-->Generic IEEE 802.11 Networking Stack (mac80211) 選中 device drivers-->netword device support-->wirelss lan-->ZyDAS ZD1211/ZD1211B USB-wireless support 從新編譯內核。下載到板子中,重啓。加入無線網卡。出現 usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: reset full speed USB device using s3c2410-ohci and address 3
zd1211rw 1-1:1.0: phy1
表示無線網卡已被識別。使用cat /proc/net/wireless 命令,能夠查看到系統中多了個wlan0網卡。此時,網卡還沒工做。使用命 令ifconfig wlan0 up則出現firmware:requesting zd1211,而後沒反應了,這是由於沒有firmware的緣由,從這裏
http://downloads.sourceforge.net/zd1211/zd1211-firmware-1.4.tar.bz2?modtime=1191498990&big_mirror=0
下載到zd1211 firmware 1.4後,根據firmware的說明,將其中的zd1211_*文件拷貝到根文件系統/lib/firmware/zd1211目錄中。這裏再執行ifconfig wlan0 up命令,則出現 firmware: requesting zd1211/zd1211b_ub
firmware: requesting zd1211/zd1211b_uphr
zd1211rw 1-1:1.0: firmware version 4725
zd1211rw 1-1:1.0: zd1211b chip 0ace:1215 v4810 full 00-02-72 AL2230_RF pa0 g--N
網卡硬件開始正常工做了。其中,0ace:1215是網卡的ID,能夠用主機linux系統命令lsusb查看到。但此時,網卡還沒被正確配置,還不能正常使用。要正常使用無線網卡,還要正確配置。linux下的配置工具是wireless-tools,能夠在這裏下載到它的最新版。
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html 下載後,將源代碼解壓。再修改其中的makefile文件,將其中的 CC = gcc AR = ar RANLIB = ranlib 改成 CC = arm-linux-gcc AR = arm-linux-ar RANLIB = arm-linux-ranlib 再執行make,編譯完成後,將生成的iwconfig,iwlist文件拷貝到rat-linux for mini2440的根文件系統中的/bin目錄下,將 libiw.so.29拷貝到/lib目錄下。啓動mini2440開發板,進入linux命令行後,執行ifconfig wlan0 up,啓動無線網卡。再執行iwlist scanning,此命令能夠搜索到可用的無線網絡接入點。個人無線接入點是一臺無線路由器,ESSID是"rat-linux",執行此命令後就會下列輸出 wlan0 Scan completed : Cell 01 - Address: 00:19:C6:53:B9:CE ESSID:"rat-linux" Mode:Master Channel:2 Frequency:2.417 GHz (Channel 2) Quality=11/100 Signal level:66/100 Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Extra:tsf=000000056306469f Extra: Last beacon: 1065ms ago 其中能夠看到個人無線接入點是須要密碼的。假設密碼是123456。使用以下的命令設置密碼。 iwconfig wlan0 key 123456 爲了能接無線網,還要使用下面的命令設置ESSID iwconfig wlan0 essid "rat-linux" 其它的參數能夠都採用默認的,不用再設了。能夠使用下面的命令加入無線網了。 iwconfig wlan0 ap auto 再執行iwconfig wlan0,就能夠看到下面的信息。 wlan0 IEEE 802.11bg ESSID:"rat-linux" Mode:Managed Frequency:2.417 GHz Access Point: 00:19:C6:53:B9:CE Bit Rate=1 Mb/s Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Encryption key:1234-56 Security mode:open Power Management:off Link Quality=100/100 Signal level:66/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 這就表示已接入無線網。 最後,爲無線網卡指定IP地址。命令以下 ifconfig wlan0 192.168.1.30 netmask 255.255.255.0 個人開發主機和無線網卡處於同一網段,所以是能夠相互PING通的。所以能夠用從開發主機上PING無線網卡的IP地址的方法來確網卡是否工做正常。從主機上執行ping 192.168.1.30,正常PING通。 至此,無線網卡安裝所有完成。最後,爲了方便配置,能夠將上述的配置命令寫入linux腳本文件,之後,只要執行此腳本,便可完成上述步驟的配置。腳本文件內容以下。 #! /bin/sh ifconfig wlan0 up iwconfig wlan0 key 123456 iwconfig wlan0 essid "rat-linux" iwconfig wlan0 ap auto ifconfig wlan0 192.168.1.30 netmask 255.255.255.0