Quectel 4G模块Opencpu中实现高通wifi功能

描述

上海润欣科技股份有限公司创研社


导语:越来越多的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相关库函数实现相关功能。

4G模块

系统框架图

接下来就是讲解如何移植QCA9377 wifi驱动。

1.2  SDK开发包介绍

SDK开发包包含如下图内容:

4G模块

4G模块

模块提供2个SDIO接口(SDC1和SDC2),都是4-bit 双向传输,其中SDC1可以作为Wi-Fi接口,而SDC2是专用的SD卡接口。

1.3程序编译及运行调试

在SDK目录下:cd ql-ol-crosstool/

设置编译环境:source  ql-ol-crosstool-env-init

4G模块

检查是否设置成功:arm-oe-linux-gnueabi-gcc -v

4G模块



修改配置

第一步:进入配置环境

$make kernel_menuconfig

4G模块

选择支持wifi支持的相关配置,最后.config 的配置如下:

4G模块

这里CONFIG_CFG80211=y  这里wifi驱动端编译不需要backports。

编译测试

以上操作完成后就是编译源码了。

$ make -j8

Linux 内核编译成功。下一步就是编译高通wifi QCA9377 wifi 驱动。

WIFI驱动编译

由于高通的MDM9X07平台 Linux内核添加了高通wifi的特性的相关代码:如图所示:这部分代码相比较如其他的常规的Linux 内核是没有的。

4G模块

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加载测试

测试驱动是否加载成功:

4G模块

4G模块

驱动版本

4G模块

有以上信息表示驱动配置成功,接下来就是测试STA功能,启动station连接热点。

4G模块

测试上网功能:

4G模块

一切正常,4G模块Opencpu下加载wifi 成功。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分