第五季2:STA模式USB-WIFI网卡移植与测试
以下內容源于朱有鵬課程,如有侵權,請告知刪除。
本課程實現內容:
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實現局域網內ortp視頻傳
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實現局域網全程無線調試
一、STA模式USB-WIFI的驅動移植與部署
本部分參考之前工作,沒什么難度。
1、源碼修改
(1)用sta版本的driver,可以簡單看一下區別
(2)修改makefile,參考AP模式下的修改點修改
(3)config.mk中修改,參考AP模式下的修改點修改
(4)修改網卡名稱為wlan
(5)make clean && make
2、部署驅動
(1)部署/etc/Wireless/RT2870STA/RT2870STA.dat?
- 此時先別修改里面的參數,后續配合wpa_supplicant來修改。
(2)部署ko(即把生成的mt7601sta.ko文件安裝在板子上)
- 記得先卸載之前的mt7601uap.ko模塊(如果有的話),否則報錯。
二、移植wpa_supplicant
1、源碼下載與解壓【網盤資源1111】
(1)下載wpa_supplicant、openssl(因為wpa_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打補丁
- 把wpa_supplicant-2.5里面的patches文件夾下的openssl-0.9.8za-tls-extensions.patch文件拷貝到openssl-0.9.8za目錄下,運行: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目錄重啟之后就沒有,適合臨時一次使用)
- OPENSSLDIR = /tmp/openssl
(3)make,然后make install
(4)make install時報錯,因為OpenSSL 與 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)解壓并進入下面的目錄
- /root/hisisdk/usb-wifi/MT7601_driver/sta/wpa_supplicant-2.5/wpa_supplicant
(2)在此目錄下執行cp defconfig?.config
(3)修改.config,增加以下內容
- CC=arm-hisiv300-linux-gcc -L/tmp/openssl/lib
- CFLAGS+=-I /tmp/openssl/include
- LIBS+=-L/tmp/openssl/lib
(4)執行make,如果報錯如下:
driver_nl80211.c:17:31: fatal error: netlink/genl/genl.h
則進入wpa_supplicant目錄下.config ,將CONFIG_DRIVER_NL80211=y 注釋掉。
(5)執行make,生成wpa_supplicant、wpa_cli,則移植成功完成。
- wpa_supplicant 服務器端,wpa_cli客戶端。
- 這是linux底下運用命令行管理無線網絡的方式。
三、STA模式USB-WIFI的ORTP視頻傳輸測試
1、部署wpa_supplicant
(1)將wpa_supplicant、wpa_cli丟到開發板/usr/bin目錄
- 出現板載系統容量不足的問題……使用df -h 查看空間使用情況。由于不熟悉哪些文件可以刪除,我直接通過/mnt/訪問,后面遇到問題再處理。
(2)在板載系統上,創建/etc/wap_supplicant.conf并配置內容如下:(可在虛擬機寫好拷貝進去的,如果直接復制的haunt,記得每行前面的空格去掉。
?? ?ctrl_interface=/var/run/wpa_supplicant
?? ?network={
?? ?ssid="A209"//當前我房間的無線路由器的網絡名字
?? ?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的設置
(1)安裝驅動 insmod mt7601Usta.ko
- /mnt insmod mt7601Usta.ko
(2)設置靜態IP地址(注意要與實際路由器的地址段一致)
- 因為沒有移植DHCP因此這里設置靜態IP。
- 另外在前面我忘記修改網卡名字了,于是這里是ra0,不過無妨。
- ifconfig ra0 up, ifconfig ra0 192.168.43.233
- 這個板子的靜態ip之所以這樣設置,是因為查詢我房間的無線網絡信息得知網段是192.168.43.xx,由于xx自動分配是從小開始,所以我這里設置一個比較大的233,以防止和其他的沖突。(實際情況應該不可能沖突,因為我房間的路由器只有我一個人用,只連接了手機、筆記本。)
(3)開發板作為STA,連接AP?? ?(-dd打開調試信息)
- 使用命令wpa_supplicant -Dwext -ira0 -c/etc/wpa_supplicant.conf -dd &
- & 符號表示讓其工作在后臺。這行命令表示讓wpa_supplicant 工作起來。
- 因為我沒有拷貝到/usr/bin目錄下(該目錄下一般是命令文件內容,只要將命令放在該目錄下,可以不帶路徑),我猜想上面的命令要帶絕對路徑/mnt,但實際上帶絕對路徑好像也不行。需要把這兩個文件放在/usr/bin下。
- 我查到這個文件系統是10M的容量,但實際可以12M,那可以修改其大小為12M的吧?根據之前的博客文章https://blog.csdn.net/oqqHuTu12345678/article/details/82812123中的“二3(5)1)”,可以在uboot設置啟動傳參設置為12M的。因為本來最大可以12M。于是重啟uboot對參數進行設置,問題完美解決。但是當我把驅動放在/home目錄,把wpa_*文件放在/usr/bin中,然后安裝驅動時又出現問題。我猜想這個問題應該還是容量不足導致的。因此盡量不要在可憐兮兮的SPIFLASH放太多東西。
- 這步之后記得重新安裝mt7601Usta.ko并設置其靜態IP,因為重啟過uboot了。
(4)查看連接狀態
- 使用命令wpa_cli -i ra0 status ? ? ?
(5)測試連接效果
- ping 192.168.43.1 (網關AP,即路由器的IP)
- 如果想上網,先添加網關信息,即路由器的IP,使用命令route add default gw 192.168.43.1 dev ra0。測試ping 8.8.8.8(google的dnw server)。因為沒有添加DNS,所以不能直接類似ping www.baidu.com.cn這種形式。
3、ORTP視頻傳輸測試
(1)在mpp/sample/common/sample_common_ven.c,修改LOCAL_HOST_IP 為192.168.43.96(筆記本無線接入時自動分配的IP)
(2)編譯得到sample并到開發板運行
(3)修改sdp中c=IN IP4 192.168.43.96,打開sdp播放。
注:
AP:?? ??? ?192.168.43.1
PC:?? ??? ?192.168.43.96
開發板:?? ?192.168.43.233
ubuntu:?? ?192.168.43.244
四、全程無線調試
1、原理
(1)ubuntu與Windows橋接,這樣ubuntu、windows、開發板三者都做STA,連接同一個AP。
(2)開發板事先移植部署好USB WIFI驅動、wpa_supplicant等。
(3)開發板/etc/profile中設計好配置WIFI啟動、連接AP、靜態IP等。
(4)開發板/etc/profile中設置讓開發板通過無線mount虛擬機
2、實戰
(1)先確認開發板部署好USB-WIFI驅動、wpa_supplicant工具。
(2)sample放到虛擬機ubuntu的共享文件夾中。
(3)開發板/etc/profile中做好各種配置。
(4)設置ubuntu橋接到windows的無線網卡,并給ubuntu設置靜態IP地址。
設置過程如圖所示。
然后vim /etc/network/interfaces,修改為DHCP(不改也可以,之所以一開始ping不通,是以內widow中沒有關閉防火墻)。
接著使用ifconfig eth0 192.168.43.244設置其IP。
(5)開發板重啟,看效果。
附,/etc/profile中設置的內容。
#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 ? ?
?
總結
以上是生活随笔為你收集整理的第五季2:STA模式USB-WIFI网卡移植与测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言程序设计基础练习
- 下一篇: 共轭梯度法(CG)详解