rt3070調試

Linux下的wifi驅動移植例子詳解

 

平臺: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   解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章