最近跳槽,忙着折腾新东西,所以也好久没更新博客了。虽然不知道现在的选择是对是错,但是总算跨出了第一步吧,就算是个坑,也得填平它。
使用到的硬件是联发科的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,就能播放了。