第五季2:STA模式USB-WIFI网卡移植与测试
以下內(nèi)容源于朱有鵬課程,如有侵權(quán),請(qǐng)告知?jiǎng)h除。
本課程實(shí)現(xiàn)內(nèi)容:
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實(shí)現(xiàn)局域網(wǎng)內(nèi)ortp視頻傳
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實(shí)現(xiàn)局域網(wǎng)全程無(wú)線調(diào)試
一、STA模式USB-WIFI的驅(qū)動(dòng)移植與部署
本部分參考之前工作,沒什么難度。
1、源碼修改
(1)用sta版本的driver,可以簡(jiǎn)單看一下區(qū)別
(2)修改makefile,參考AP模式下的修改點(diǎn)修改
(3)config.mk中修改,參考AP模式下的修改點(diǎn)修改
(4)修改網(wǎng)卡名稱為wlan
(5)make clean && make
2、部署驅(qū)動(dòng)
(1)部署/etc/Wireless/RT2870STA/RT2870STA.dat?
- 此時(shí)先別修改里面的參數(shù),后續(xù)配合wpa_supplicant來修改。
(2)部署ko(即把生成的mt7601sta.ko文件安裝在板子上)
- 記得先卸載之前的mt7601uap.ko模塊(如果有的話),否則報(bào)錯(cuò)。
二、移植wpa_supplicant
1、源碼下載與解壓【網(wǎng)盤資源1111】
(1)下載wpa_supplicant、openssl(因?yàn)閣pa_supplicant依賴于openssl)
- http://hostap.epitest.fi/wpa_supplicant/,下載wpa_supplicant-2.5.tar.gz
- ftp://ftp.openssl.org/source/old/0.9.x/,下載openssl-0.9.8za.tar.gz
(2)tar -zxvf 命令解壓wpa_supplicant-2.5.tar.gz、openssl-0.9.8za.tar.gz。
2、移植openssl
(1)給openssl打補(bǔ)丁
- 把wpa_supplicant-2.5里面的patches文件夾下的openssl-0.9.8za-tls-extensions.patch文件拷貝到openssl-0.9.8za目錄下,運(yùn)行:patch -p1 < openssl-0.9.8za-tls-extensions.patch
(2)修改openssl-0.9.8za目錄下的Makefile
- CC=arm-hisiv300-linux-gcc
- AR=arm-hisiv300-linux-ar $(ARFLAGS)? r
- AD=arm-hisiv300-linux-ar $(ARFLAGS)? d
- RANLIB=arm-hisiv300-linux-ranlib
- INSTALLTOP = /tmp/openssl(/tmp目錄重啟之后就沒有,適合臨時(shí)一次使用)
- OPENSSLDIR = /tmp/openssl
(3)make,然后make install
(4)make install時(shí)報(bào)錯(cuò),因?yàn)镺penSSL 與 perl版本不兼容,解決方法:rm -f /usr/bin/pod2man?
????????????????****Expected text after =item, not a number
????????????????****Expected text after =item, not a number
????????????????****Expected text after =item, not a number
????????????????****Expected text after =item, not a number
(5)安裝好后,在/tmp/openssl目錄有諸多文件,我們需要的是lib和include。
3、移植wpa_supplicant
(1)解壓并進(jìn)入下面的目錄
- /root/hisisdk/usb-wifi/MT7601_driver/sta/wpa_supplicant-2.5/wpa_supplicant
(2)在此目錄下執(zhí)行cp defconfig?.config
(3)修改.config,增加以下內(nèi)容
- CC=arm-hisiv300-linux-gcc -L/tmp/openssl/lib
- CFLAGS+=-I /tmp/openssl/include
- LIBS+=-L/tmp/openssl/lib
(4)執(zhí)行make,如果報(bào)錯(cuò)如下:
driver_nl80211.c:17:31: fatal error: netlink/genl/genl.h
則進(jìn)入wpa_supplicant目錄下.config ,將CONFIG_DRIVER_NL80211=y 注釋掉。
(5)執(zhí)行make,生成wpa_supplicant、wpa_cli,則移植成功完成。
- wpa_supplicant 服務(wù)器端,wpa_cli客戶端。
- 這是linux底下運(yùn)用命令行管理無(wú)線網(wǎng)絡(luò)的方式。
三、STA模式USB-WIFI的ORTP視頻傳輸測(cè)試
1、部署wpa_supplicant
(1)將wpa_supplicant、wpa_cli丟到開發(fā)板/usr/bin目錄
- 出現(xiàn)板載系統(tǒng)容量不足的問題……使用df -h 查看空間使用情況。由于不熟悉哪些文件可以刪除,我直接通過/mnt/訪問,后面遇到問題再處理。
(2)在板載系統(tǒng)上,創(chuàng)建/etc/wap_supplicant.conf并配置內(nèi)容如下:(可在虛擬機(jī)寫好拷貝進(jìn)去的,如果直接復(fù)制的haunt,記得每行前面的空格去掉。
?? ?ctrl_interface=/var/run/wpa_supplicant
?? ?network={
?? ?ssid="A209"//當(dāng)前我房間的無(wú)線路由器的網(wǎng)絡(luò)名字
?? ?scan_ssid=1
?? ?key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE//加密方式
?? ?pairwise=TKIP CCMP
?? ?group=CCMP TKIP WEP104 WEP40
?? ?psk="12345678"//路由器的密碼
?? ?}
2、STA模式USB-WIFI的設(shè)置
(1)安裝驅(qū)動(dòng) insmod mt7601Usta.ko
- /mnt insmod mt7601Usta.ko
(2)設(shè)置靜態(tài)IP地址(注意要與實(shí)際路由器的地址段一致)
- 因?yàn)闆]有移植DHCP因此這里設(shè)置靜態(tài)IP。
- 另外在前面我忘記修改網(wǎng)卡名字了,于是這里是ra0,不過無(wú)妨。
- ifconfig ra0 up, ifconfig ra0 192.168.43.233
- 這個(gè)板子的靜態(tài)ip之所以這樣設(shè)置,是因?yàn)椴樵兾曳块g的無(wú)線網(wǎng)絡(luò)信息得知網(wǎng)段是192.168.43.xx,由于xx自動(dòng)分配是從小開始,所以我這里設(shè)置一個(gè)比較大的233,以防止和其他的沖突。(實(shí)際情況應(yīng)該不可能沖突,因?yàn)槲曳块g的路由器只有我一個(gè)人用,只連接了手機(jī)、筆記本。)
(3)開發(fā)板作為STA,連接AP?? ?(-dd打開調(diào)試信息)
- 使用命令wpa_supplicant -Dwext -ira0 -c/etc/wpa_supplicant.conf -dd &
- & 符號(hào)表示讓其工作在后臺(tái)。這行命令表示讓wpa_supplicant 工作起來。
- 因?yàn)槲覜]有拷貝到/usr/bin目錄下(該目錄下一般是命令文件內(nèi)容,只要將命令放在該目錄下,可以不帶路徑),我猜想上面的命令要帶絕對(duì)路徑/mnt,但實(shí)際上帶絕對(duì)路徑好像也不行。需要把這兩個(gè)文件放在/usr/bin下。
- 我查到這個(gè)文件系統(tǒng)是10M的容量,但實(shí)際可以12M,那可以修改其大小為12M的吧?根據(jù)之前的博客文章https://blog.csdn.net/oqqHuTu12345678/article/details/82812123中的“二3(5)1)”,可以在uboot設(shè)置啟動(dòng)傳參設(shè)置為12M的。因?yàn)楸緛碜畲罂梢?2M。于是重啟uboot對(duì)參數(shù)進(jìn)行設(shè)置,問題完美解決。但是當(dāng)我把驅(qū)動(dòng)放在/home目錄,把wpa_*文件放在/usr/bin中,然后安裝驅(qū)動(dòng)時(shí)又出現(xiàn)問題。我猜想這個(gè)問題應(yīng)該還是容量不足導(dǎo)致的。因此盡量不要在可憐兮兮的SPIFLASH放太多東西。
- 這步之后記得重新安裝mt7601Usta.ko并設(shè)置其靜態(tài)IP,因?yàn)橹貑⑦^uboot了。
(4)查看連接狀態(tài)
- 使用命令wpa_cli -i ra0 status ? ? ?
(5)測(cè)試連接效果
- ping 192.168.43.1 (網(wǎng)關(guān)AP,即路由器的IP)
- 如果想上網(wǎng),先添加網(wǎng)關(guān)信息,即路由器的IP,使用命令route add default gw 192.168.43.1 dev ra0。測(cè)試ping 8.8.8.8(google的dnw server)。因?yàn)闆]有添加DNS,所以不能直接類似ping www.baidu.com.cn這種形式。
3、ORTP視頻傳輸測(cè)試
(1)在mpp/sample/common/sample_common_ven.c,修改LOCAL_HOST_IP 為192.168.43.96(筆記本無(wú)線接入時(shí)自動(dòng)分配的IP)
(2)編譯得到sample并到開發(fā)板運(yùn)行
(3)修改sdp中c=IN IP4 192.168.43.96,打開sdp播放。
注:
AP:?? ??? ?192.168.43.1
PC:?? ??? ?192.168.43.96
開發(fā)板:?? ?192.168.43.233
ubuntu:?? ?192.168.43.244
四、全程無(wú)線調(diào)試
1、原理
(1)ubuntu與Windows橋接,這樣ubuntu、windows、開發(fā)板三者都做STA,連接同一個(gè)AP。
(2)開發(fā)板事先移植部署好USB WIFI驅(qū)動(dòng)、wpa_supplicant等。
(3)開發(fā)板/etc/profile中設(shè)計(jì)好配置WIFI啟動(dòng)、連接AP、靜態(tài)IP等。
(4)開發(fā)板/etc/profile中設(shè)置讓開發(fā)板通過無(wú)線mount虛擬機(jī)
2、實(shí)戰(zhàn)
(1)先確認(rèn)開發(fā)板部署好USB-WIFI驅(qū)動(dòng)、wpa_supplicant工具。
(2)sample放到虛擬機(jī)ubuntu的共享文件夾中。
(3)開發(fā)板/etc/profile中做好各種配置。
(4)設(shè)置ubuntu橋接到windows的無(wú)線網(wǎng)卡,并給ubuntu設(shè)置靜態(tài)IP地址。
設(shè)置過程如圖所示。
然后vim /etc/network/interfaces,修改為DHCP(不改也可以,之所以一開始ping不通,是以內(nèi)widow中沒有關(guān)閉防火墻)。
接著使用ifconfig eth0 192.168.43.244設(shè)置其IP。
(5)開發(fā)板重啟,看效果。
附,/etc/profile中設(shè)置的內(nèi)容。
#ifconfig eth0 192.168.1.10
#mount -t nfs -o nolock 192.168.0.103:/home/aston/rootfs /mnt
cd /ko ? ? ? ? ? ?
./load3518e -i -sensor ar0130 -osmem 32 -total 64
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
insmod /home/mt7601Usta.ko ? ? ? ? ? ? ? ? ? ? ??
ifconfig ra0 up ? ? ? ? ? ? ? ? ? ? ? ? ?
ifconfig ra0 192.168.43.233 ? ? ? ? ? ? ??
wpa_supplicant -Dwext -ira0 -c/etc/wpa_supplicant.conf &
route add default gw 192.168.43.1 dev ra0 ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
mount -t nfs -o nolock 192.168.43.244:/root/all_qianrushi/rootfs/hisrootfs
/mnt
cd /mnt ? ?
?
總結(jié)
以上是生活随笔為你收集整理的第五季2:STA模式USB-WIFI网卡移植与测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言程序设计基础练习
- 下一篇: 共轭梯度法(CG)详解