第十七章:STA模式USB WIFI驱动移植

1、下载源码

源码路径:https://download.csdn.net/download/tainjau/10433501

首先将源码复制到ubuntu中实验目录,并解压开,这里我们用到的是sta模式,所以解压MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2这个文件。

我们这里解压之后放在了以下目录中.

           


2、修改移植

修改sta/MT7601U_LinuxAP_3.0.0.1_20130802文件夹下的主makefile

首先屏蔽SMDK,其次增加内核源码树路径、交叉编译链、平台架构等信息,具体添加内容如下:

修改include/rtmp_def.h中1627行左右,修改网络名始终为:wlan

                       

修改os/linux/目录下的config.mk。增加以下内容。

               

修改完成之后,再次make,就会在os/linux/目录下生成mt7601Usta.ko文件,之后将其拷贝进开发板的文件系统中,加载就能使用。

           


3、部署到开发板

首先将上面编译好的RT2870STA.dat,复制到开发板的文件系统中的/etc/Wireless/RT2870STA目录下。

RT2870STA.dat文件在源码目录下。

         

然后将上述文件拷贝到开发板中的/etc/Wireless目录下


4、移植wpa_supplicant

需要用到wpa_supplicant-2.5.tar.gz和openssl-0.9.8za.tar.gz,这两个文件在第一点那边下载的时候,就有包含在里面。

在移植wpa_supplicant之前还需要移植openssl。

4.1、移植openssl

给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

4.2、修改makefile

修改openssl-0.9.8za目录下的makefile,设定将来编译好的时候,安装的目录,还有设置相关的编译链。

            

然后执行make,编译完成后,再执行make install,如果出现以下错误,原因:OpenSSL 与 perl版本不兼容

解决方法:rm -f /usr/bin/pod2man

当然,如果你在上面有删除install_docs的话,一般就不会碰到这个错误。

             

安装完成之后,在安装目录下就会有这些东西了。

           

4.3、编译wpa_supplicant

首先进入解压好的wpa_supplicant-2.5/wpa_supplicant路径中。将defconfig变成.config文件。

执行命令:cp defconfig .config

在此修改wpa_supplicant源码目录下的makefile(wpa_supplicant-2.6/wpa_supplicant文件夹中)

CC=arm-hisiv300-linux-gcc -L/home/aston/hi3518/usb/MT7601_driver/sta/openssl_install/lib

CFLAGS+=-I /home/aston/hi3518/usb/MT7601_driver/sta/openssl_install/include

LIBS+=-L/home/aston/hi3518/usb/MT7601_driver/sta/openssl_install/lib

其中:/home/aston/hi3518/usb/MT7601_driver/sta/openssl_install这个目录是之前安装openssl的目录。

       

在wpa_supplicant-2.5/wpa_supplicant目录下执行make后,报错。

       

退回到wpa_supplicant-2.6的主目录下执行make后,报错。

上网查询之后,发现要么安装libnl,要么修改.config文件,注释 CONFIG_DRIVER_NL80211=y,在执行make,就好生成wpa_supplicant和wpa_cli。

最后将wpa_supplicant和wpa_cli文件拷贝到nfs文件系统中的/usr/bin目录下。

          


5、部署wpa_supplicant

首先将wpa_supplicant、wpa_cli放到海思开发板/usr/bin目录下

cp wpa_supplicant /usr/bin

然后创建配置文件/etc/wap_supplicant.conf,内容如下:

ctrl_interface=/var/run/wpa_supplicant

network={

ssid="pipixia-lets-go"

scan_ssid=1

key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE

pairwise=TKIP CCMP

group=CCMP TKIP WEP104 WEP40

psk="******"//密码

}

                                     


6、sta模式的USB WIFI设置

首先安装驱动,我们先前将mt7601Usta.ko复制到了开发板文件系统中的/home目录。

insmod /home/mt7601Usta.ko

然后设置静态IP地址,这里先要确认清楚自己的pc主机的ip地址,将开发板的网段设置和pc一直,这里我的电脑ip地址是192.168.1.102。

ifconfig wlan0 up, ifconfig wlan0 192.168.1.120

之后使用开发板sta连接AP (-dd打开调试信息)

wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &

完成后,输入命令wpa_cli -i wlan0 status查看连接状态

                       

注:这时候可以ping我的pc主机192.168.1.102,但是会发现ping不通。主要原因是之前还有一个有线网卡,这时候使用命令:ifconfig eth0 down 关闭有线网卡。然后再ping主机就可以ping通了。

          

如果想上外网,就需要添加

route add default gw 192.168.0.1 dev wlan0

这时候ping 8.8.8.8就能ping通。


8、测试用例准备

参考之前移植的ortp库,进行修改host端的ip地址。

参考帖子:

修改Hi3518E_SDK_V1.0.3.0/mpp/sample/common目录下的sample_common_venc.c文件。

将LOCAL_HOST_IP为192.168.1.102。(和我的Widnows的WIFI自动分配的IP一样)

                

修改完成之后,进入Hi3518E_SDK_V1.0.3.0/mpp/sample/venc目录下,执行make clean,然后再执行make,最后生成新的sample_venc文件,放在开发板文件系统中,将来就可以使用了。

最后开发板端执行 ./sample_venc 0

                        

PC端打开vlc播放器,修改sdp配置,注意c=IN IP4 192.168.1.102,就能播放了。

 

猜你喜欢

转载自blog.csdn.net/tainjau/article/details/81284027