第十六章:AP模式USB WIFI驱动移植

2019-07-13 08:19发布

最近跳槽,忙着折腾新东西,所以也好久没更新博客了。虽然不知道现在的选择是对是错,但是总算跨出了第一步吧,就算是个坑,也得填平它。 使用到的硬件是联发科的MTK7601无线网卡

1、下载源码

源码路径:https://download.csdn.net/download/tainjau/10433501 首先将源码复制到ubuntu中实验目录,并解压开,这里我们用到的是ap模式。 所以解压MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2这个文件。我们这里解压之后放在了以下目录中:

2、修改移植

include/rtmp_def.h中1627行左右,修改网络名始终为:wlan                                   修改ap/MT7601U_LinuxAP_3.0.0.1_20130802文件夹下的主makefile。              修改完成之后,执行make clean清除原来的编译过的东西,再执行make,但是报错了,错误原因是找不到rt_config.h这个文件。          仔细一看是源码目录下的os/linux/rt_profile.c引用了这个头文件,但是在源码目录下的include中却能找到rt_config.h,初步怀疑是os/linux/目录下的config.mk有问题,需要修改。           修改完成之后,再次make,就会在os/linux/目录下生成mt7601Uap.ko文件,之后将其拷贝进开发板的文件系统中,加载就能使用。            

3、部署到开发板

首先将上面编译好的RT2870AP.dat,复制到开发板的文件系统中的/etc/Wireless/RT2870AP目录下。 RT2870AP.dat文件在源码目录下。     复制完成后,还需要修改RT2870AP.dat这个文件,更改以下几个内容。 SSID=MT7601AP_WPA(这里的名字是在pc机上看到的连接ssid名) AuthMode=WPA2PSK(加密方式) EncrypType=TKIP;AES WPAPSK=1234567890(这个是密码)                     修改完成RT2870AP.dat之后,就可以加载之前编译好的mt7601Uap.ko驱动了。 insmod mt7601Uap.ko 安装完驱动之后,执行ifconfig -a就可以看到以下信息,这就说明usb网卡安装成功了。 给网卡设置ip地址,这里我们设置ip地址为:192.168.0.100 ifconfig wlan0 192.168.0.100 这样用手机也可以找到咱们自己配置的usbwifi。但是连接不上,因为它上不了网。                                  配置windows上的无线网卡的ip地址也在192.168.0这个网段,这里我们配置成192.168.0.30       

4、测试用例准备

参考之前移植的ortp库,进行修改host端的ip地址。 参考帖子:https://blog.csdn.net/tainjau/article/details/80399872 修改Hi3518E_SDK_V1.0.3.0/mpp/sample/common目录下的sample_common_venc.c文件。 将LOCAL_HOST_IP为192.168.0.30。 修改完成之后,进入Hi3518E_SDK_V1.0.3.0/mpp/sample/venc目录下,执行make clean,然后再执行make,最后生成新的sample_venc文件,放在开发板文件系统中,将来就可以使用了。

5、测试实验

首先确认将sample_venc拷贝到了开发板文件系统中,拔掉网线(此时也可以重启下开发板以彻底消除前面的影响)。 之后将PC端WIFI连接 MT7601AP_WPA,输入密码 ks123456 确认了PC端设置无线网络的静态IP地址为:192.168.0.30 PC端cmd去ping 192.168.0.100,或者反过来开发板端ping PC的无线IP,确认可以进行通信。 最后开发板端执行 ./sample_venc 0                                    PC端打开vlc播放器,修改sdp配置,注意c=IN IP4 192.168.0.30,就能播放了。