IT技術互動交(jiao)流平台(tai)

一分pk10官网

來源︰IT165收集  發布日期︰2020-02-19 08:42:48

自己(ji)挖的(de)坑(kang),哭(ku)著也(ye)要填平!!!

軟件環境︰虛擬機ubuntu12.04

硬件環境︰騰達811M無線(xian)網卡

OK6410︰ 512m sdram 2g nandflash 運行(xing)官(guan)方提供的(de)3.0.1內核linux wpa_supplicant版(ban)本0.7.3(官(guan)方內核自帶)

RT5370驅動下載︰http://download.csdn.net/detail/andylauren/9581594

先ren)狄幌攣 裁次乙 浦T5370,因(yin)為4年前買了一個騰達811M的(de)usb網卡,但(dan)是在windows下面需要安裝(zhuang)一個官(guan)方的(de)驅動,而(er)且(qie)覺得(de)驅動界(jie)面不是很友好(hao),後來在街上掃碼送了個360wifi,從此騰達的(de)網卡就被擱置了。後來學習了嵌(qian)入式,一直就想做(zuo)一個不用網線(xian)的(de)開發設備(bei),于是就想做(zuo)個帶wifi的(de),買了個二(er)手(shou)的(de)ok6410開發板,還買了一個sdio的(de)無線(xian)網卡,但(dan)是說起來飛(fei)凌家(jia)的(de)模塊做(zuo)的(de)真(zhen)是不太完善(shan),開發板上有個帶缺口的(de)座,但(dan)是模塊上的(de)母座卻ci)敲mei)有反正,只依靠(kao)一個小小的(de)1腳標(biao)記區分正反面,可能是我yi)諛炒問褂玫de)時候插反了,導(dao)致這個sdio無線(xian)模塊連接不穩(wen)定。于是就想起了騰達網卡,想能不能把他插上去(qu)當做(zuo)網卡使用,答案一定是肯(ken)定的(de),但(dan)是我作為一個初學者,這個問題(ti)絕對是巨(ju)大(da)的(de)挑戰。後來經過不懈的(de)努力終于成功了!我的(de)騰達在開發板上正常工作,能夠上網,能夠掛yi)fs,下面就按照我從開始(shi)到最終移植的(de)過程說一下,並(bing)把我yi)諞浦駁de)過程中遇到的(de)問題(ti)也(ye)說de)饕幌攏 M芄歡院筧ren)有幫助。

首先我們來看下網卡的(de)外觀(guan)

就是這樣的(de),在這個時候是不知道(dao)騰達811M使用的(de)是什麼網卡芯jiu)  緩笪野閹鸝 耍 吹嚼錈嫻de)芯jiu) 醋T5370N

然後我就開始(shi)著手(shou)找RT5370驅動的(de)移植資料,其中http://blog.csdn.net/lanyang123456/article/details/7370805 這篇(pian)博文對我的(de)幫助很大(da),也(ye)建議先看一下這篇(pian)博文。

然後我們下載RT5370驅動的(de)源碼,下載地址在我這篇(pian)博客開始(shi)的(de)地方。首先把rar文件中的(de)文件夾解(jie)壓(ya)到linux目錄中,

修(xiu)改驅動源碼根目錄下的(de)Makefile

PLATFORM=SMDK

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /home/linux/sys/linux-3.0.1/(內核源碼路徑,內核需要被編譯過)
CROSS_COMPILE = /home/linux/sys/arm-gcc-4.3.2/bin/arm-linux-(交(jiao)叉(cha)編譯工具鏈路徑)
endif

這個時候就可以(yi)進(jin)行(xing)make了,不會報錯(cuo),但(dan)是使用的(de)時候是無法連接無線(xian)路由的(de)。

這個地方jiao) fei)了我大(da)量的(de)時間,而(er)且(qie)yi)謖庵zhong)情況下運行(xing)wpa_supplicant只會提示(shi)失敗,並(bing)且(qie)ye)煌5de)嘗試重新(xin)連接。

Trying to associate with a8:57:4e:0d:76:e6 (SSID='CMCC-PUB' freq=2412 MHz)
ioctl[SIOCSIWGENIE]: Operation not supported
Association request to the driver failed
Authentication with a8:57:4e:0d:76:e6 timed out.

下面我來說一下如(ru)何解(jie)決這個問題(ti),需要更改./os/linux/config.mk文件中的(de)幾個配置選(xuan)項(xiang),如(ru)下

# Support AP-Client function
HAS_APCLI=y

# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y

# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

需要將這三項(xiang)選(xuan)為y。

現在編譯出來的(de)驅動文件仍然是無法使用的(de),在開發板上xian)誦xing)的(de)時候會提示(shi)如(ru)下錯(cuo)誤

rt5370sta: module license 'unspecified' taints kernel.
Disabling lock debugging due to kernel taint
rt5370sta: Unknown symbol usb_alloc_urb (err 0)
rt5370sta: Unknown symbol usb_free_urb (err 0)
rt5370sta: Unknown symbol usb_alloc_coherent (err 0)
rt5370sta: Unknown symbol usb_register_driver (err 0)
rt5370sta: Unknown symbol usb_put_dev (err 0)
rt5370sta: Unknown symbol usb_get_dev (err 0)
rt5370sta: Unknown symbol usb_submit_urb (err 0)
rt5370sta: Unknown symbol usb_free_coherent (err 0)
rt5370sta: Unknown symbol usb_control_msg (err 0)
rt5370sta: Unknown symbol usb_deregister (err 0)
rt5370sta: Unknown symbol usb_kill_urb (err 0)
insmod: error inserting 'rt5370sta.ko': -1 Unknown symbol in module

第一句話指出這個模塊對內核是有污染的(de),其實就是沒(mei)有聲明使用GPL協(xie)議,需要更改os/linux下的(de)usb_main_dev.c文件,在開頭(tou)的(de)地方寫上

MODULE_LICENSE("GPL");

然後make

LD [M] /home/linux/16021/RT5370_RT5372_Linux_STA_V2.5.0.1/2011_0225_RT5370_RT5372_Linux_STA_V2.5.0.1_DPO/os/linux/rt5370sta.ko

出現這句話說de)鞅嘁氤曬Α/p>

將/os/linux/目錄下的(de)rt5370sta.ko拷貝到開發板上,並(bing)將驅動根目錄下的(de)RT2870STA.dat拷貝到開發板的(de)/etc/Wireless/RT2870STA/目錄下,前提是需要自己(ji)手(shou)動創建/etc/Wireless/RT2870STA/目錄

# mkdir /etc/Wireless/RT2870STA/ -p

將這兩個文件拷貝到開發板上之後,需要修(xiu)改wpa_supplicant的(de)wpa_supplicant.conf文件,這個文件在開發板的(de)/etc/wpa_supplicant.conf路徑下。

這里說一下wpa_supplicant

wpa_supplicant主要是用來支(zhi)持WEP,WPA/WPA2和WAPI無線(xian)協(xie)議和加密認證的(de),由于linux本身並(bing)不支(zhi)持WPA的(de)加密,所(suo)以(yi)需要移植wpa_supplicant來ci)ifi能夠連接WPA加密的(de)無線(xian)路由上,簡單的(de)說,wpa_supplicant就是WiFi驅動和用mei)?de)中轉站外加對協(xie)議和加密認證的(de)支(zhi)持。由于ok6410的(de)3.0.1內核已經移植好(hao)了wpa_supplicant的(de)0.7.3版(ban)本,所(suo)以(yi)對于wpa_supplicant的(de)移植這里就不做(zuo)講(jiang)解(jie)。

接著說wpa_supplicant.conf文件的(de)內容,這里的(de)問題(ti)我也(ye)是解(jie)決了很久。官(guan)方給的(de)例程是這樣的(de)

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="max" //填寫無線(xian)網絡(luo)的(de)的(de)用mei) br />key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="1234567890" //填寫密碼
}

我使用這個模板出現了skip WPA IE - PTK cipher mismatch這個問題(ti),在找到路由之後,提示(shi)密碼錯(cuo)誤,後來查看了路由shan)qi)發現原來密碼也(ye)有幾種(zhong)加密方式。TKIP和AES兩種(zhong),上面的(de)寫法就是被固定為TKIP方式,TKIP方式的(de)帶寬很低,所(suo)以(yi)現在都采用的(de)是AES方式加密,在wpa_supplicant中AES加密方式對應的(de)是CCMP,也(ye)就是需要把TKIP改為CCMP,這個我沒(mei)有驗(yan)證過,我使用的(de)是下面的(de)方法,不聲明使用的(de)是哪(na)種(zhong)加密方式,讓wpa_supplicant去(qu)自適應。

ctrl_interface=/var/run/wpa_supplicant


update_config=1

network={
ssid="mingzi"
key_mgmt=WPA-PSK
psk="mimamimamima"
}

我使用這個配置成功的(de)連接了AES加密方式 的(de)路由shan)qi)

然後我們將驅動加載進(jin)內核

insmod rt5370sta.ko

然後可以(yi)使用

wpa_supplicant -ira0 -Dwext -c/etc/wpa_supplicant.conf -dd &
wpa_supplicant -ira0 -Dwext -c/etc/wpa_supplicant.conf &

這兩條(tiao)指令中的(de)任意一個,-dd的(de)會輸(shu)出更過的(de)信息。

在出現

Trying to associate with a8:57:4e:0d:76:e6 (SSID='CMCC-PUB' freq=2412 MHz)
ioctl[SIOCSIWGENIE]: Operation not supported
Association request to the driver failed
Associated with a8:57:4e:0d:76:e6
WPA: Key negotiation completed with a8:57:4e:0d:76:e6 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to a8:57:4e:0d:76:e6 completed (auth) [id=0 id_str=]

後並(bing)且(qie)無線(xian)網卡的(de)燈也(ye)亮了起來說de)饕丫 梢yi)正常使用了,這時候需要禁用有線(xian)網卡eth0。如(ru)果使用的(de)是nfs掛yi)氐de)文件系統建議最後禁用有線(xian)網卡,因(yin)為一旦禁用就沒(mei)有文件系統了,開發板就沒(mei)辦法操作了。

ifconfig eth0 down

這時候無線(xian)網卡還沒(mei)有ip,可以(yi)使用靜態分配的(de)方式

ifconfig ra0 192.168.1.20

如(ru)果路由shan)qi)支(zhi)持動態分配也(ye)可以(yi)使用動態分配

udhcpc -i ra0

之後會返回(hui)

udhcpc (v1.13.3) started
Sending discover...
Sending select for 192.168.1.104...
Lease of 192.168.1.104 obtained, lease time 7200
deleting routers
route: SIOCDELRT: No such process
adding dns 10.10.0.1
adding dns 124.207.160.106

表示(shi)分配IP成功,到這里我們的(de)騰達無線(xian)網卡就已經可以(yi)正常使用了,想做(zuo)什麼都可以(yi),完全和有線(xian)是qie)謊de)。

下面是我的(de)終端顯(xian)示(shi)的(de)信息

 

root@FORLINX6410:/# insmod rt5370sta.ko root@FORLINX6410:/# wpa_supplicant -ira0 -Dwext -c/etc/wpa_supplicant.conf &root@FORLINX6410:/# root@FORLINX6410:/# root@FORLINX6410:/# root@FORLINX6410:/# Trying to associate with a8:57:4e:0d:76:e6 (SSID='CMCC-PUB' freq=2412 MHz)ioctl[SIOCSIWGENIE]: Operation not supportedAssociation request to the driver failedAssociated with a8:57:4e:0d:76:e6WPA: Key negotiation completed with a8:57:4e:0d:76:e6 [PTK=CCMP GTK=CCMP]CTRL-EVENT-CONNECTED - Connection to a8:57:4e:0d:76:e6 completed (auth) [id=0 id_str=]root@FORLINX6410:/# root@FORLINX6410:/# root@FORLINX6410:/# root@FORLINX6410:/# root@FORLINX6410:/# ifconfigeth0 Link encap:Ethernet HWaddr 08:90:00:A0:90:90  inet addr:192.168.1.232 Bcast:192.168.1.255 Mask:255.255.255.0  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1  RX packets:21757 errors:0 dropped:0 overruns:0 frame:0  TX packets:9230 errors:0 dropped:0 overruns:0 carrier:0  collisions:0 txqueuelen:1000  RX bytes:27797014 (26.5 MiB) TX bytes:1513652 (1.4 MiB)  Interrupt:108 Base address:0xc000 lo Link encap:Local Loopback  inet addr:127.0.0.1 Mask:255.0.0.0  UP LOOPBACK RUNNING MTU:16436 Metric:1  RX packets:0 errors:0 dropped:0 overruns:0 frame:0  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  collisions:0 txqueuelen:0  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)ra0 Link encap:Ethernet HWaddr C8:3A:35:CF:42:62  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1  RX packets:0 errors:0 dropped:3 overruns:65015 frame:65015  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  collisions:0 txqueuelen:1000  RX bytes:164689 (160.8 KiB) TX bytes:2226 (2.1 KiB)root@FORLINX6410:/# udhcpc -i ra0udhcpc (v1.13.3) startedSending discover...Sending select for 192.168.1.104...Lease of 192.168.1.104 obtained, lease time 7200deleting routersroute: SIOCDELRT: No such processadding dns 10.10.0.1adding dns 124.207.160.106root@FORLINX6410:/# ping 192.168.1.1PING 192.168.1.1 (192.168.1.1): 56 data bytes64 bytes from 192.168.1.1: seq=0 ttl=64 time=5.951 ms64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.505 ms^C--- 192.168.1.1 ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 0.505/3.228/5.951 msroot@FORLINX6410:/# 
到這里就結束(shu)了,下載再提供一個開機自啟動的(de)腳本文件

 

 

#!/bin/sh insmod rt5370sta.ko&&wpa_supplicant -ira0 -Dwext -c/etc/wpa_supplicant.conf &sleep 40&&udhcpc -i ra0&&ifconfig eth0 down

這個腳本是在最後才(cai)關(guan)閉有線(xian)網卡,所(suo)以(yi)即ci)故褂fs掛yi)馗募低騁ye)可以(yi)。其中有一個sleep 40是等待(dai)無線(xian)驅動加載和無線(xian)網卡連接路由的(de)時間,這個需要根據自己(ji)的(de)實dao)是榭鋈qu)更改。

 

Tag標(biao)簽(qian)︰騰達  無線(xian)網卡  
  • 一分pk10官网

About IT165 - 廣告(gao)服務 - 隱私聲明 - 版(ban)權申明 - 淘宝娱乐官网免責條(tiao)款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅(jin)供用于網絡(luo)技術學習,學習中請遵循相(xiang)關(guan)法律法規
一分pk10官网 | 下一页