rt3070 wifi驅動移植
阿新 • • 發佈:2019-02-14
平臺:TI dm6441, ,linux2.6.18,
wifi:RT3070
我看wifi模組上沒有寫是鐳凌公司的,因為公司同事是在另一個公司買的,但是當我看模組的驅動手冊時,看到了驅動模組是rt3070sta.ko,狗狗一下後知道了一切。於是:下載了wifi驅動。
wifi驅動是DPO_RT3070_LinuxSTA_V2[1].3.0.4_20100604.tar.bz2在鐳凌的官網上可以下載到最新驅程原始碼。
一:配置核心
Make menuconfig:
Device Drivers --->
Network device support --->
Wireless LAN (non-hamradio) --->
[*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
[*] Wireless Extension API over RtNetlink
--- Obsolete Wireless cards support (pre-802.11)
< > STRIP (Metricom starmode radio IP)
< > USB ZD1201 based Wireless device support
< > IEEE 802.11 for H
不然你即使編譯好了這個模組也不能用
二、當然是編譯模組咯,看驅動裡面的readme,根據它來改驅動:
1、改Makefile: 裡面沒有dm6441平臺的,我看到有dm6446的,所以就在這裡改了
ifeq ($(PLATFORM),DM6446)
LINUX_SRC = /root/work/linux-2.6.18_pro500
CROSS_COMPILE=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-
Endif
這兩個路徑一定要正確。後來我想了一下這個Makefile裡面的平臺只是指定了核心和編譯工具鏈,應該隨便改哪個平臺都是一樣的吧。
2、改os/linux/config.mk
設定CC,LD :
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
不用修改。
3.複製.dat檔案到/etc/目錄:
README上說是把RT2870STA.dat 複製到 /etc/Wireless/RT2870STA/RT2870STA.dat,
這裡的目錄要自己建。
三、用到的測試工具和庫檔案。
後來我從廠家那裡拿到了他們驅動和工具。
我把廠家驅動光盤裡WF8000-U_091225/linux/usr下的bin檔案cp到/usr/bin 下。注意要改許可權 chmod a+x /usr/bin/* 用於測試的工具就算裝好了。
但是我把 libiw.so.29拷到/lib目錄下但是和沒拷錯誤一樣,結果拷到根目錄下成功,但是庫不能放在這裡啊,我估計要放到/usr/lib下,還沒有試。
四、測試:
檢視模組驅動裡面的iwpriv_usage.txt可知道各個命令的引數,我由於當初沒有看這裡面的東西在進入有密碼的路由器時吃了大虧,原來這裡寫的很清楚。
insmod rt3070sta.ko
ifconfig ra0 up 啟用無線網絡卡,至於為什麼是ra0,因為我的使用手冊上是這樣做的
此時cat /proc/wireless 可以看到多了一個ra0
iwlist scanning 可以搜尋到可用的網路 iwlist ra0 scanning (只搜尋ra0的無線網路)
iwpriv ra0 set SSID="name"無線網路配置 name是搜到的一個網路的名字。假如不要密碼這樣就行了。
iwpriv ra0 set WPAPSK="A3DDD" 輸入登陸密碼
iwconfig ra0 key open 開啟密碼 輸入密碼後 一定要加這條命令哦,不然連線不上
ifconfig ra0 192.168.1.109 netmask 255.255.255.0為無線網絡卡指定IP地址
設定閘道器 route add default gw 192.168.1.1
之後我在ubantu上ping 192.168.1.109 成功。這些命令就是所謂的工具。
在超級終端ping 外網成功。
各種密碼的命令引數,這在iwpriv_usage.txt裡面可以查到。
無密碼:
iwpriv ra0 set SSID="Vodafone D100"
注意:在切換到無密碼的使用者時,若之前是有密碼使用者,則要iwconfig ra0 key off。
WPA型密碼:
網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有這樣做,還是可以。
iwpriv ra0 set NetworkType=Infra 網路型別有Infra,Adhoc兩種,前者是基於AP的,後者是p2p
iwpriv ra0 set AuthMode=WPAPSK OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE
iwpriv ra0 set EncrypType=TKIP NONE,WEP,TKIP,AES
iwpriv ra0 set SSID="Vodafone D100"
iwpriv ra0 set WPAPSK="1234567890"
WEP型密碼:
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=OPEN
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0 set Key1="1234567890"
iwpriv ra0 set SSID="Vodafone D100"
切換使用者登陸:
直接重新輸入登陸名字和輸入密碼的命令,值得注意的是在切換有密碼和沒有密碼的使用者時要相應的iwconfig ra0 key open和iwconfig ra0 key off。
網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有作過,看別人的 http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx
錯誤資訊
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Network is unreachable
此原因是沒有設定ip ifconfig ra0 192.168.1.109 up 解決。
ping 219.134.65.113 外網
ping: sendto: Network is unreachable
此原因是沒有設定閘道器 route add default gw 192.168.1.1 解決。
wifi:RT3070
我看wifi模組上沒有寫是鐳凌公司的,因為公司同事是在另一個公司買的,但是當我看模組的驅動手冊時,看到了驅動模組是rt3070sta.ko,狗狗一下後知道了一切。於是:下載了wifi驅動。
wifi驅動是DPO_RT3070_LinuxSTA_V2[1].3.0.4_20100604.tar.bz2在鐳凌的官網上可以下載到最新驅程原始碼。
一:配置核心
Make menuconfig:
Device Drivers --->
Network device support --->
Wireless LAN (non-hamradio) --->
[*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
[*] Wireless Extension API over RtNetlink
--- Obsolete Wireless cards support (pre-802.11)
< > STRIP (Metricom starmode radio IP)
< > USB ZD1201 based Wireless device support
< > IEEE 802.11 for H
不然你即使編譯好了這個模組也不能用
二、當然是編譯模組咯,看驅動裡面的readme,根據它來改驅動:
1、改Makefile: 裡面沒有dm6441平臺的,我看到有dm6446的,所以就在這裡改了
ifeq ($(PLATFORM),DM6446)
LINUX_SRC = /root/work/linux-2.6.18_pro500
CROSS_COMPILE=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-
Endif
這兩個路徑一定要正確。後來我想了一下這個Makefile裡面的平臺只是指定了核心和編譯工具鏈,應該隨便改哪個平臺都是一樣的吧。
2、改os/linux/config.mk
設定CC,LD :
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
不用修改。
3.複製.dat檔案到/etc/目錄:
README上說是把RT2870STA.dat 複製到 /etc/Wireless/RT2870STA/RT2870STA.dat,
這裡的目錄要自己建。
三、用到的測試工具和庫檔案。
後來我從廠家那裡拿到了他們驅動和工具。
我把廠家驅動光盤裡WF8000-U_091225/linux/usr下的bin檔案cp到/usr/bin 下。注意要改許可權 chmod a+x /usr/bin/* 用於測試的工具就算裝好了。
但是我把 libiw.so.29拷到/lib目錄下但是和沒拷錯誤一樣,結果拷到根目錄下成功,但是庫不能放在這裡啊,我估計要放到/usr/lib下,還沒有試。
四、測試:
檢視模組驅動裡面的iwpriv_usage.txt可知道各個命令的引數,我由於當初沒有看這裡面的東西在進入有密碼的路由器時吃了大虧,原來這裡寫的很清楚。
insmod rt3070sta.ko
ifconfig ra0 up 啟用無線網絡卡,至於為什麼是ra0,因為我的使用手冊上是這樣做的
此時cat /proc/wireless 可以看到多了一個ra0
iwlist scanning 可以搜尋到可用的網路 iwlist ra0 scanning (只搜尋ra0的無線網路)
iwpriv ra0 set SSID="name"無線網路配置 name是搜到的一個網路的名字。假如不要密碼這樣就行了。
iwpriv ra0 set WPAPSK="A3DDD" 輸入登陸密碼
iwconfig ra0 key open 開啟密碼 輸入密碼後 一定要加這條命令哦,不然連線不上
ifconfig ra0 192.168.1.109 netmask 255.255.255.0為無線網絡卡指定IP地址
設定閘道器 route add default gw 192.168.1.1
之後我在ubantu上ping 192.168.1.109 成功。這些命令就是所謂的工具。
在超級終端ping 外網成功。
各種密碼的命令引數,這在iwpriv_usage.txt裡面可以查到。
無密碼:
iwpriv ra0 set SSID="Vodafone D100"
注意:在切換到無密碼的使用者時,若之前是有密碼使用者,則要iwconfig ra0 key off。
WPA型密碼:
網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有這樣做,還是可以。
iwpriv ra0 set NetworkType=Infra 網路型別有Infra,Adhoc兩種,前者是基於AP的,後者是p2p
iwpriv ra0 set AuthMode=WPAPSK OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE
iwpriv ra0 set EncrypType=TKIP NONE,WEP,TKIP,AES
iwpriv ra0 set SSID="Vodafone D100"
iwpriv ra0 set WPAPSK="1234567890"
WEP型密碼:
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=OPEN
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0 set Key1="1234567890"
iwpriv ra0 set SSID="Vodafone D100"
切換使用者登陸:
直接重新輸入登陸名字和輸入密碼的命令,值得注意的是在切換有密碼和沒有密碼的使用者時要相應的iwconfig ra0 key open和iwconfig ra0 key off。
網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有作過,看別人的 http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx
錯誤資訊
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Network is unreachable
此原因是沒有設定ip ifconfig ra0 192.168.1.109 up 解決。
ping 219.134.65.113 外網
ping: sendto: Network is unreachable
此原因是沒有設定閘道器 route add default gw 192.168.1.1 解決。