上海润欣科技股份有限公司创研社
导语:越来越多的IOT应用场景中需要使用4G模块,而在有些特定的场合需要把4G上网能力转化wifi功能,比如说无人机中视频传输,以及打印机行业中都有类似的应用案例,以便更好的提供给更多的客户端去使用。为了更节省成本,我们把4G模块中Opencpu 利用起来,结合硬件的SDIO接口去实现wifi上网功能。
本文将基于EC20 EC20CEFAG Opencpu Linux 3.18.20版本硬件搭载高通QCA9377来实现WIFI上网功能。
OPENCPU简介
OPENCPU是一个基于高通MDM9x07为用户提供的二次开发平台,节省成本,目的是帮助客户更快的开发部署应用程序,并提供更加丰富的外设接口,同时可简化应用程序的开发工作。
1.1系统框架
OPENCPU平台系统架构如下,分为Linux Distribution 和 Development Environment两部分,其中LINUX Distribution为平台底层相关,而Development Environment主要是用于平台上层应用开发所用,用户程序可以通过调用高通所提供的中间适配层或直接调用C Runtime Library相关库函数实现相关功能。
系统框架图
接下来就是讲解如何移植QCA9377 wifi驱动。
1.2 SDK开发包介绍
SDK开发包包含如下图内容:
模块提供2个SDIO接口(SDC1和SDC2),都是4-bit 双向传输,其中SDC1可以作为Wi-Fi接口,而SDC2是专用的SD卡接口。
1.3程序编译及运行调试
在SDK目录下:cd ql-ol-crosstool/
设置编译环境:source ql-ol-crosstool-env-init
检查是否设置成功:arm-oe-linux-gnueabi-gcc -v
修改配置
第一步:进入配置环境
$make kernel_menuconfig
选择支持wifi支持的相关配置,最后.config 的配置如下:
这里CONFIG_CFG80211=y 这里wifi驱动端编译不需要backports。
编译测试
以上操作完成后就是编译源码了。
$ make -j8
Linux 内核编译成功。下一步就是编译高通wifi QCA9377 wifi 驱动。
WIFI驱动编译
由于高通的MDM9X07平台 Linux内核添加了高通wifi的特性的相关代码:如图所示:这部分代码相比较如其他的常规的Linux 内核是没有的。
QCA9377编译:
进入wifi驱动目录:修改
进入qcacld-2.0 修改Makefile
KERNEL_SRC ?=
/home/dhwang/work/Linux_kernel/Quectel_KERNEL/quectel_ol_kernel/
以及
MOD_PATH ?=
/home/dhwang/work/Linux_kernel/Quectel_KERNEL/wlan/qcacld-2.0/
后进行make 编译成功后,在image 目录下生成wlan.ko
同时在把对应的固件放置在如下位置:在系统中/lib/firmware目录下存放如下:
bdwlan30.bin //模块对应校准文件
qwlan30.bin
otp30.bin
wifi 配置文件:对应目录为:
/lib/firmware/wlan目录
cfg.dat
qcom_cfg.ini
WIFI加载测试
测试驱动是否加载成功:
驱动版本
有以上信息表示驱动配置成功,接下来就是测试STA功能,启动station连接热点。
测试上网功能:
一切正常,4G模块Opencpu下加载wifi 成功。
全部0条评论
快来发表一下你的评论吧 !