我是靠谱客的博主 冷酷大侠,最近开发中收集的这篇文章主要介绍ec20模块linux驱动,linux下EC20 4G模块驱动移植,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前有移植过ME909s MU609,主要工作就是把4G模块当做USB设备,挂载在linux上,驱动移植主要是能够让板子识别到模块,并产生SUB多个虚拟的节点,用于操作模块,拨号上网

关于内核的配置,请参考:https://www.cnblogs.com/ChenChangXiong/p/10852177.html

内核配置:

Device Drivers --->

[*] USB support --->

USB Serial Converter support --->

USB driver for GSM and CDMA modems         //选上

Device Drivers --->

[*] Network device support --->

// 将这里面所有的ppp 的支持多选上

Device Drivers  --->

Network device support  --->

USB Network Adapters  --->

Multi-purpose USB NetworkingFramework

  CDC Ethernet support (smart devices such ascable modems) (NEW)

-*-   CDC NCM support

   Huawei NCM embedded AT channel support

   Simple USB Network Links (CDC Ethernetsubset) (NEW)

匹配列表:

宏定义添加支持:

宏定义添加支持:

270ce7fa0c9eaab8ac71d3eb0e246a10.png

//----add for EC20----add by chencx 20190513

#define QUECTEL_VENDOR_ID 0x2C7C

#define QUECTEL_PRODUCT_EC20 0x0125

usbdevice列表添加:

在kernel目录下:

vim drivers/usb/serial/option.c

4a0ad9bd301f6497d0172ac881bae5a7.png

在:static const struct usb_device_id option_ids[] 中添加

{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC20)}, /* QUECTEL EC20 */

最后:

122891bce285147ae308a223ccbc0c8a.png

在:static int option_probe 匹配函数中添加

if (dev_desc->idVendor ==cpu_to_le16(0x2c7c) &&

dev_desc->idProduct ==cpu_to_le16(0x0125) &&

iface_desc->bInterfaceNumber ==0x04)

return -ENODEV;

接下来:make -j20

等待内核编译完成。

插入模块会生成usb0~usb3的usb节点,说明驱动已经移植成功。

dcdf9eb66b2c2715cecdbcebdbf1d42f.png

比如ME909s  MU609模块。直接是用pppd拨号就可以上网,但是EC20我试了很久不行,非常郁闷,无奈之下,只用移远官方提供的usb驱动作为.ko加载进去,然后使用APN工具。

然而,关于Quectel_Linux_ConnectManager_SR01A01V21.zip 和 Quectel_Linux_GobiNet_SR01A02V13.zi的下载,也是比较费劲才找到,在此附上链接:

Quectel_Linux_GobiNet_SR01A02V13.zip下载:http://bbs.21ic.com/forum.php?mod=attachment&aid=MTA1NjgwNHxkYmMwMDdjNHwxNTU3NzE4NDk2fDB8MTcwMDMxNg%3D%3D

Quectel_Linux_ConnectManager_SR01A01V21.zip 下载: http://dev.t-firefly.com/thread-52743-1-1.html

注意以下开发板的交叉编译器就行

编译得到GobiNet.ko

解压     Quectel_Linux_ConnectManager_SR01A01V21.zip,并交叉编译,只需要修改makefile适应自己的开发板即可

我是把解压后文件放到drivers/net/usb/ 中 新建一个文件夹来保存,在里面编译,

其实放在哪都行,当做模块加载,只需要编译makefile的时候指定kernel即可,就像平时编译模块一样。

1cc11f333707f750776feb06b3d8b422.png

修改makefile  直接作为模块加载进入

9c4dbdc5089b4c125b6c71703edc8039.png

编译后生成 GobiNet.ko  复制到开发板  insmod

3ab37690943e1f2166abab7d6b722d6d.png

编译拨号工具:

解压:

unzip -x Quectel_Linux_ConnectManager_SR01A01V21.zip

直接编译:

make CROSS_COMPILE=arm-linux-gnueabihf-

0b4999de66e29da9cf29642443564d98.png

得到quectel-CM

接着就大功告成了

在开发板中,首先加载GobiNet.ko  然后后在运行quectel-CM

insdmo   GobiNet.ko

./quectel-CM  &

运行./quectel-CM  & 后会提示找到eth2 有的是eth1  接着可以ifconfig看一下ip  有了ip就可以直接pingl了。

d36437c3f25cc96f60ccb97c4e1cccb9.png

注意是先加载模块 在执行 quectel-CM    就可以ifconfig查看到产生了ip,然后ping 8.8.8.8  我这里直接来65500包

算是比较完整的移植EC20的过程,记录一下

参考文献: https://blog.csdn.net/yuzhou_zang/article/details/78286875

最后

以上就是冷酷大侠为你收集整理的ec20模块linux驱动,linux下EC20 4G模块驱动移植的全部内容,希望文章能够帮你解决ec20模块linux驱动,linux下EC20 4G模块驱动移植所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部