目錄
- 前言
- STA模式USB-WIFI的驅動移植與部署
-
- 源碼修改
- 驅動部署
- 移植wpa_supplicant
-
- 移植openssl
- 移植wpa_supplicant
- STA模式USB-WIFI的ORTP視訊傳輸測試
- ORTP視訊傳輸測試
- 無限調試環境搭建
前言
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實作區域網路内ortp視訊傳
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實作區域網路全程無線調試
STA模式USB-WIFI的驅動移植與部署
源碼修改
參考上一篇
修改
Makefile
的plantform、linux裝置樹位址、plantform對應交叉編譯、驅動儲存位址
修改
os/linux/config.mk
修改
include/rtmp_def.h
然後編譯
驅動部署
從共享檔案夾中将
mt7601Usta.ko
和
RT2870STA.dat
複制到開發闆目錄下
此時先不用修改
RT2870STA.dat
中的參數,後續配合wpa_supplicant進行修改
在AP模式時,需要修改,因為AP模式是向外廣播自己的源
裝載新ko的時候需要将之前AP模式的KO解除安裝,否則報錯
移植wpa_supplicant
(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
移植openssl
用于ssl驗證,有很多地方會用到
(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。
移植wpa_supplicant
(1)解壓并進入下面的目錄
~/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視訊傳輸測試
部署前确定sta的驅動和配置檔案放在
/etc/Wireless/RT2870STA/RT2870STA.dat
1、部署wpa_supplicant
(1)将wppa_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
(2)設定靜态IP位址(注意要與實際路由器的位址段一緻)
-
因為沒有移植DHCP是以這裡設定靜态IP。
ifconfig wlan up, ifconfig ra0 192.168.43.233
這個闆子的靜态ip之是以這樣設定,是因為查詢我房間的無線網絡資訊得知網段是192.168.43.xx,由于xx自動配置設定是從小開始,是以我這裡設定一個比較大的233,以防止和其他的沖突。
(3)開發闆作為STA,連接配接AP (-dd打開調試資訊)
使用指令
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &
& 符号表示讓其工作在背景。這行指令表示讓wpa_supplicant 工作起來。
(4)檢視連接配接狀态
使用指令
wpa_cli -i wlan0 status
(5)測試連接配接效果
ping 192.168.2.1 (網關AP,即路由器的IP)
如果想上網,先添加網關資訊,即路由器的IP,使用指令
route add default gw 192.168.2.1 dev wlan0
。
測試ping 8.8.8.8(google的dnw server)。
因為沒有添加DNS,是以不能直接類似ping www.baidu.com.cn這種形式。
ORTP視訊傳輸測試
(1)在mpp/sample/common/sample_common_ven.c,修改LOCAL_HOST_IP 為192.168.2.13(pc接入時自動配置設定的IP)
(2)編譯得到sample并到開發闆運作,如果虛拟機重新開機過,要在ortp源碼那再make install,確定tmp中有ortp
(3)修改sdp中c=IN IP4 192.168.2.233,打開sdp播放。
無限調試環境搭建
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設定靜
- (5) 開發闆重新開機,看是否能成功挂載。
ifconfig lo 127.0.0.1
#ifconfig eth0 192.168.2.111
cd /ko
./load3518e -i -sensor ar0130 -osmem 32 -total 64 &
cd -
insmod /etc/mt7601Usta.ko
ifconfig wlan0 up
ifconfig wlan0 192.168.2.233
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &
route add default gw 192.168.2.1 dev wlan0
sleep2
mount -t nfs -o nolock 192.168.2.84:/home/test/nfsShare /mnt