迅为iTOP-6818-开发板 QtE系统下的WiFi_mt6620移植方法笔记

发布者:RadiantBreeze最新更新时间:2022-01-24 来源: eefocus 手机看文章 扫描二维码
随时随地手机看文章

平台:iTOP-6818开发板

 

参考官网提供的移植文档自己移植的WIFI,很有成就感 (^_^), 移植过程中的部分库和工具,在源码或者镜像中可能已经存在,可以使用自己生成的覆盖即可。提供的文件如下图所示,分别为三个源码压缩包、编译好的库位于 lib 文件夹、wpa_supplicant 工具位

于 sbin 文件夹、6620_launcher和脚本 make_mt6620.sh。

 

使用的驱动模块对应在 Android源码中的device/nexell/s5p6818_drone/mt6620_6818/

目录下,用户只要在内核将 WiFi设置为模块方式(M),然后编译 Android源码之后可以

在该目录找到可以使用的驱动模块。同样所需驱动我们在 wpa_driver 文件夹直接提供,以方便使用。

 

1 6620_launcher

6620_launcher 工具是作为后台的一个服务程序运行,该服务会配置串口的工作参数,下

固件补丁到 MT6620 中,它位于开发板的“/usr/bin/”目录下,在系统中内置,用户可以直接覆盖。

 

2 移植wpa_supplicant

在进行编译之前要先修改编译器为 4.3.2 版本,“Qt/E4.7.1 编译器的安装”。另外为了避免使用环境变量设置编译器而可能出现的问题,文

档中大部分编译是使用编译器的绝对路径,用户也应先找到自己编译器的绝对路径待用。下图是本次编译使用的编译器以及编译器压缩包。

 

 

 

 

 

由上图可知该编译器的绝对路径为“/usr/local/arm/4.3.2/bin/ arm-none-linux-gnueabi-gcc”。

用户需要将提供的源码压缩包拷贝到 Ubuntu 的工作目录,分别解压 ,如下图所示。

 

 

 

 

 

 

 

2.1 移植OpenSSL

首先进入目录 openssl-1.1.0g,内容如下图所示。

 

 

 

 

 

 

 

执行下面指令,做相应配置。

./config no-asm shared --prefix=$(pwd)/__install

执行完成后如下图所示。

 

 

 

 

no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码

是不支持 arm 格式。

shared :生成动态连接库。

 

--prefix :指定 make install 后生成目录的路径,不修改此项则默认为 OPENSSLDIR 目

录(/usr/local/ssl)。

使用命令“vim Makefile”打开 Makefile,搜索 CFLAG,定位到下图中所示位置。

 

 

 

 

 

删除上图中红框中的“-m64”,完成后 CFLAG 应如下图所示。

 

 

 

 

 

 

执行以下命令,编译 OpenSSL 库,注意这里使用的是交叉编译器的绝对路径。

make CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-编译完成后如下图所示。

 

 

 

 

 

执行下面命令,将编译好的库文件拷贝到第一步指定的目录make install如下图所示在当前目录下的__install 目录下生成了头文件和库文件:

 

 

 

 

include 下文件在编译程序的时候需要指定该 include 的路径。而 lib 下在程序运行时会

用到,需要将 lib 下所有文件包括文件夹拷贝到开发板/lib 文件夹中。

 

2.2 移植libnl

libnl 是为了方便应用程序使用 netlink 接口而开发的一个库。这个库为原始 netlink 消息

传递以及不同的 netlink family 专用接口提供了一个统一的接口。进入目录“libnl-1.1.4/”,如下图所示。

 

 

 

 

 

 

执行下面的指令,配置编译架构。

./configure --prefix=$(pwd)/__install --enable-shared --enable-static

其中--prefix=$(pwd)/__install 指定了编译出来的库存放的路径,一般将其放在当前目录

下的__install 目录下,执行结果如下图所示。

 

 

 

 

 

 

执行下面的命令,编译库

make CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc

完成后如下图所示。

 

 

 

 

 

 

使用命令“make install”, 将编译好的库文件拷贝到指定目录。在当前目录下的__install

目录下生成了头文件和库文件 ,如下图所示。

 

 

 

 

 

 

 

include 目录下文件在编译程序的时候会用到,而 lib 下在程序运行时会用到。故在移植

hostapd 的时候需要指定 include 的路径,需要将 lib 目录下所有文件包括文件夹拷贝到开发

板中的/lib 文件夹中。

 

 

2.3 移植wpa_supplicant

wpa_supplicant 是作为 hostap 的一部分,它位于 hostap 目录中。使用命令“cd

hostap/wpa_supplicant/”进入 wpa_supplicant 目录,如下图所示。

 

 

 

 

 

 

使用命令“cp defconfig .config”复制一份默认的配置文件。然后使用命令“vim

Makefile”修改 Makefile,如下图所示。

 

 

 

 

 

 

将ifndef CC CC=gcc  endif  修改为

CFLAGS += -I../../libnl-1.1.4/__install/include/

CFLAGS += -I../../openssl-1.1.0g/__install/include/

LIBS += -L../../libnl-1.1.4/__install/lib/

LIBS += -L../../openssl-1.1.0g/__install/lib/

#ifndef CC

CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc

#endif

注意,CC 路径为自己环境中的交叉工具链路径。

修改完成后 Makefile如下图所示。

 

 

 

 

 

接下来使用命令“make”编译,结果如下图所示。

 

 

 

 

 

此时在当前目录下出现了“wpa_supplicant”工具,如下图所示。

 

 

 

 

将编译好的 wpa_supplicant 工具拷贝到开发板上的“/usr/sbin”目录即可。

 

3 直接拷贝

跳过编译步骤,可以直接拷贝压缩包中 lib 文件夹中的库文件到开发板的/lib 目录,以及

复制 sbin 文件夹中的文件到开发板的/usr/sbin 目录,复制 6620_launcher到开发板的

/usr/bin 目录下,复制 wpa_driver 中的所有文件到/lib/modules/mt6620/目录,以及复制

脚本 make_mt6620.sh 到开发板的任意目录,然后进行下一章节的操作。

 

4 开发板连接WiFi

在开发板执行下面的指令,更新 WiFi开机启动脚本。

 

cat << EOF > /etc/init.d/mt6620

#!/bin/sh

#support MT6620 WIFI Module

mknod /dev/stpwmt c 190 0

mknod /dev/stpgps c 191 0

mknod /dev/fm c 193 0

mknod /dev/wmtWifi c 194 0

insmod /lib/modules/mt6620/mtk_hif_sdio.ko

insmod /lib/modules/mt6620/mtk_stp_wmt.ko

insmod /lib/modules/mt6620/mtk_stp_uart.ko

insmod /lib/modules/mt6620/mtk_stp_gps.ko

#insmod /lib/modules/mt6620/hci_stp.ko

#insmod /lib/modules/mt6620/mt6620_fm_drv.ko

#insmod /lib/modules/mt6620/mtk_fm_priv.ko

insmod /lib/modules/mt6620/mtk_wmt_wifi.ko WIFI_major=194

insmod /lib/modules/mt6620/wlan_mt6620.ko

 

chmod 0666 /dev/stpwmt

chmod 0666 /dev/stpgps

chmod 0666 /dev/fm

chmod 0666 /dev/wmtWifi

chmod 0666 /dev/gps

chmod 0660 /dev/ttySAC2

/usr/bin/6620_launcher -m 1 -b 921600 -n /etc/firmware/mt6620_patch_hdr.bin -d /dev/ttySAC2 &

sleep 4

echo 1 > /dev/wmtWifi

wpa_supplicant -iwlan0 -Dnl80211 -c/etc/wpa_supplicant.conf &

sleep 3

udhcpc -i wlan0 >/var/udhcpc_log &

EOF

粘贴到开发板然后按回车,如下图所示 。

 

 

 

 

 

 

 

 

或者在开发板上执行我们提供的“make_mt6620.sh”,起到同样效果。

然后执行以下指令

wpa_passphrase XXX "YYY" > /etc/wpa_supplicant.conf

其中 XXX 代表 WiF网络名称, YYY 代表 WPA-PSK 或者 WPA2-PSK加密的密码。然后

执行命令“ ./etc/init.d/mt6620 ”即可连接到 WiFi 网络,配置时间大约 30 秒左右。

 

 

 

 

 

 

可以看到 wlan0 成功分配到 IP 地址,关闭了 eth0,执行命令“ping www.baidu.com -c 4”,可以看到可以通过 WiFi 连通互联网,如下图所示。

 

 


引用地址:迅为iTOP-6818-开发板 QtE系统下的WiFi_mt6620移植方法笔记

上一篇:迅为6818开发板Android7.1系统烧写方法
下一篇:iTOP-6818嵌入式开发板 win10 下 tf 卡分区

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved