目录
1 USB WIFI做sta模式的驱动移植和部署
源码包链接:
链接:https://pan.baidu.com/s/1QB7o0stSN8hrxb6OCgHzdA?pwd=kb6c
提取码:kb6c
--来自百度网盘超级会员V4的分享
1.1 源码修改
(1)用sta版本的driver,可以简单看一下区别
(2)修改makefile,参考AP模式下的修改点修改
我将我修改好的一份在这里分享给大家:
Makefile中的108行,修改自己的内核源码树的路径
Makefile中的435行,修改成自己的开发板rootfs挂载目录

链接:https://pan.baidu.com/s/1B-oFJJKtOIqVaTSYFkPwUg?pwd=xnm8
提取码:xnm8
--来自百度网盘超级会员V4的分享
(3)config.mk中修改,参考本季上篇文章AP模式下的修改点修改
(4)修改网卡名称为wlan
(5)make clean && make
2、部署驱动
(1)在开发板部署/etc/Wireless/RT2870STA/RT2870STA.dat
这个文件sta中的源码提供了

(2)部署ko驱动文件(可将其放在主机ubuntu,开发板nfs挂载的方式去使用)
也可将其放到开发板/home/目录下去使用

总结:整体上的操作类似于上篇文章中ap模式的移植,可参考上篇文章
2 移植wpa_supplicant
2.1 源码下载
(1)wpa_supplicant、openssl下载地址:
链接:https://pan.baidu.com/s/1agr_29T0xohqfoGGnA5dwA?pwd=qawh
提取码:qawh
--来自百度网盘超级会员V4的分享
2.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)修改Makefile
CC=arm-hisiv300-linux-gcc
AR= arm-hisiv300-linux-ar $(ARFLAGS) r
ARD=arm-hisiv300-linux-ar $(ARFLAGS) d
RANLIB=arm-hisiv300-linux-ranlib
INSTALLTOP = /tmp/openssl
OPENSSLDIR = /tmp/openssl
(3)make && make install
(4)如果报错
****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
原因:OpenSSL 与 perl版本不兼容
解决方法:
rm -f /usr/bin/pod2man
2.3 移植wpa_supplicant
(1)解压源码并进入主目录
cd 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
修改.config
将CONFIG_DRIVER_NL80211=y 注释掉即可
(5)继续make,生成wpa_supplicant和wpa_cli后整个移植成功完成

3 USB WIFI做sta模式的ORTP视频传输实验
3.1 部署wpa_supplicant
(1)将wpa_supplicant、wpa_cli丢到开发板/usr/bin目录下
(2)创建配置文件/etc/wpa_supplicant.conf,内容如下:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid=" " #连接的路由器wifi名称
scan_ssid=1
key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk=" " #wifi密码
}
3.2 sta模式的USB WIFI设置
(1)安装驱动 insmod mt7601Usta.ko
(2)设置静态IP地址
ifconfig wlan0 up
ifconfig wlan0 192.168.111.240
(3)开发板sta连接AP (-dd打开调试信息)
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &
(4)查看连接状态
wpa_cli -i wlan0 status
(5)测试连接效果
route add default gw 192.168.111.249 dev wlan0 (配置网关)
ping 192.168.111.249 (网关AP)
ping 8.8.8.8 (google的dnw server)
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf (设置dns,否则无法平通百度等网站)
ping www.baidu.com
3.3 ORTP视频传输测试
(1)修改LOCAL_HOST_IP 为192.168.111.118(和我的Widnows的连接WIFI自动分配的IP一样)
(2)编译得到sample并到开发板运行
(3)修改sdp中c=IN IP4 192.168.111.118,打开sdp播放
注:
AP: 192.168.111.249
PC: 192.168.111.118
开发板: 192.168.111.240
ubuntu: 192.168.1.141
4 纯WIFI无线调试环境的搭建
4.1 原理
(1)UBUNTU和Windows桥接,这样ubuntu、windows、开发板三者都做sta,连同一个AP(即路由器)
(2)开发板事先移植部署好USB WIFI驱动、wpa_supplicant等
(3)开发板/etc/profile中设计好配置WIFI启动、连接AP、静态IP等命令
(4)开发板/etc/profile中设置让开发板通过无线mount虚拟机
4.2 实战
(1)先确认开发板部署好USB WIFI驱动、wpa_supplicant工具
(2)sample放到虚拟机ubuntu的共享文件夹中
(3)开发板/etc/profile中做好各种配置
文件末尾添加:
#ifconfig eth0 192.168.1.20
#mount -t nfs -o nolock 192.168.1.141:/mnt/hisilion_nfs /mnt
insmod /home/mt7601Usta.ko
ifconfig wlan0 up
ifconfig wlan0 192.168.111.240
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf &(相比于上边去掉了 -dd,不要打印调试信息)
route add default gw 192.168.111.249 dev wlan0
cd /ko
./load3518e -i -sensor ar0130 -osmem 32 -total 64
//Ubuntu设置成桥接模式,ens33的ip地址设置成静态分配,由于wlan0的初始化还没有完成,下面的挂载可能失败
mount -t nfs -o nolock 192.168.111.242:/mnt/hisilion_nfs /mnt
cd /mnt
(4)设置ubuntu桥接到windows的无线网卡,并给ubuntu设置静态IP地址
(5)开发板重启,看效果
本文详细介绍了USBWIFI在sta模式下的驱动移植过程,包括源码修改、wpa_supplicant和openssl的移植,以及如何进行ORTP视频传输实验。同时涉及了纯WIFI无线调试环境的搭建步骤,包括Ubuntu与Windows的桥接配置。
2075





