海思Hi3518E移植WIFI驱动(STA模式)

1 移植驱动

源码下载:

链接:https://pan.baidu.com/s/1EXGMkPs8-GxsdyK0735Sqw 
提取码:bx5c

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

 

(2)修改Makefile

原来默认的平台是PC,然后添加平台

海思Hi3518E移植WIFI驱动(STA模式)_第1张图片

(3)添加Linux内核源码路径,编译工具链,CPU

#add point
ifeq ($(PLATFORM),HISI_3518E)
LINUX_SRC = /home/aston/David/Hi3518E_SDK_V1.0.3.0/package/osdrv/opensource/kernel/linux-3.4.y
CROSS_COMPILE = arm-hisiv300-linux-
export ARCH=arm
endif

(4)在如下位置将原来的配置型修改为HISI_3518E的

$(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules

海思Hi3518E移植WIFI驱动(STA模式)_第2张图片

(5) 在 ./os/linux/config.mk添加 

海思Hi3518E移植WIFI驱动(STA模式)_第3张图片

(6)编译  make

(7)默认将驱动复制到了tftpboot中,所以修改makefile,将复制驱动的路径修改为我们需要的路径,或者手动复制也可以

2  部署驱动

(1)先lsusb,然后插入USB WIFI模块,再lsusb,确认模块被识别了

(2)在开发板中创建 /etc/Wireless/RT2870STA 文件夹,把驱动源文件下的 RT2870STA.dat 复制到开发板的这个文件夹中

mkdir /etc/Wireless/RT2870STA/ -p

修改:/etc/Wireless/RT2870STA/RT2870STA.dat

装载驱动:insmod  mt7601Usta.ko

启动网卡: ifconfig wlan0 up 

注意:配置项现在不需要修改,因为作为station是需要结合wpa_supplicant使用的

 

3 移植  wpa_supplicant  和  openssl

下载地址:

(1)wpa_supplicant     http://hostap.epitest.fi/wpa_supplicant/   和  https://w1.fi/releases/
(2)openssl             ftp://ftp.openssl.org/source/old/0.9.x/

编译wpa_supplicant要依赖openssl中的lib和include

但是编译openssl需要给openssl打补丁。补丁就在把wpa_supplicant中。

打补丁:

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

cp wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch ./openssl-0.9.8za

3.1 编译openssl

(1)进入openssl路径,运行:patch -p1 < openssl-0.9.8za-tls-extensions.patch

/openssl-0.9.8za$ patch -p1 < openssl-0.9.8za-tls-extensions.patch
patching file ssl/s3_clnt.c
patching file ssl/s3_srvr.c
patching file ssl/ssl_err.c
patching file ssl/ssl.h
patching file ssl/ssl_sess.c
patching file ssl/t1_lib.c
patching file ssl/tls1.h
patching file util/ssleay.num

(2)修改makefile

更换安装目录为/tmp/openssl       tmp目录当下次开机的时候里面的东西就会消失,中间文件使用

修改编译工具链

CC=arm-hisiv300-linux-gcc
AR=arm-hisiv300-linux-ar $(ARFLAGS) 
RANLIB=arm-hisiv300-linux-ranlib

海思Hi3518E移植WIFI驱动(STA模式)_第4张图片

(3)make编译成功,make install的时候出现错误,错误如下

海思Hi3518E移植WIFI驱动(STA模式)_第5张图片

原因:OpenSSL 与 perl版本不兼容
解决方法:sudo rm -f /usr/bin/pod2man 

再次:make install

在/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl目录下安装了ssl库

root@liu-virtual-machine:/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl# ls
bin  certs  include  lib  man  misc  openssl.cnf  private

后面编译  wpa_supplicant   要依赖openssl中的lib和include

3.2 编译wpa_supplicant 

(1)进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:

(2)进入wpa_supplicant目录生成.config

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,出现一下错误

../src/drivers/driver_nl80211.c:17:31: fatal error: netlink/genl/genl.h: No such file or directory
 #include 
                               ^
compilation terminated.
Makefile:1758: recipe for target '../src/drivers/driver_nl80211.o' failed
make: *** [../src/drivers/driver_nl80211.o] Error 1
aston@ubuntu:~/WifiPort/MT7601_driver/sta/wpa_supplicant-2.5/wpa_supplicant$ 

解决:

            进入wpa_supplicant目录下.config 
            将CONFIG_DRIVER_NL80211=y 注释掉即可

(5)继续make,生成wpa_supplicant和wpa_cli后整个移植成功完成

海思Hi3518E移植WIFI驱动(STA模式)_第6张图片

 注:wpa_supplicant和wpa_cli是命令行进行无线网络的管理方法

  • wpa_supplicant是server,先将server在后台运行然后又运行客户端
  • wpa_cli是客户端,该客户端运行的时候会发一些参数给serve,与serve配合,达到对无线网络的管理

4 USB WIFI做sta模式的ORTP视频传输实验

4.1 部署wpa_supplicant

(1)将wpa_supplicant、wpa_cli丢到开发板/usr/bin目录下
(2)创建配置文件/etc/wap_supplicant.conf,内容如下:

 ctrl_interface=/var/run/wpa_supplicant

    network={
    ssid="CMCC_vwmq"
    scan_ssid=1
    key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE
    pairwise=TKIP CCMP
    group=CCMP TKIP WEP104 WEP40
    psk="xxxxxxxx"
    }

 ZLSWLW-2:就是要连接的无线网 AP

 psk:就是无线的密码

4.2 sta模式的USB WIFI设置

(1)安装驱动 insmod mt7601Usta.ko
(2)设置静态IP地址  (因为没有移植dhcp,所以不能用动态IP)
         ifconfig wlan0 up, ifconfig wlan0 192.168.0.233
(3)开发板sta连接AP    要工作在后台
         wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd &
(4)查看连接状态
         wpa_cli -i wlan0 status  

(5)测试连接效果
         ping 192.168.0.1        (网关AP)此时是不通的

设置getway IP   网关IP

route add default gw 192.168.0.1 dev wlan0

      ping 8.8.8.8            (google的dnw server)成功ping通

注:AP:           192.168.0.1               网关IP
       PC:           192.168.0.3               电脑自动分配的IP
       开发板:     192.168.0.233           自行设置,不与局域网其他IP冲突即可
       ubuntu:    192.168.0.244           暂时不需要

4.3 ORTP视频传输测试

(1)ORTP版本的sample,common/sample_common_venc.c中,修改LOCAL_HOST_IP为192.168.0.3(和我的Widnows的               WIFI自动分配的IP一样)
(2)编译得到sample并到开发板运行
(3)修改sdp中c=IN IP4 192.168.0.3,打开sdp播放

 

你可能感兴趣的:(Hi3518E学习)