zoukankan      html  css  js  c++  java
  • 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)

     匹配列表:

    宏定义添加支持:

     //----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

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

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

     最后:

    在: 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节点,说明驱动已经移植成功。

     

    比如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即可,就像平时编译模块一样。

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

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

    编译拨号工具:

    解压:

         unzip -x Quectel_Linux_ConnectManager_SR01A01V21.zip

    直接编译:

         make CROSS_COMPILE=arm-linux-gnueabihf-  

         

    得到quectel-CM

    接着就大功告成了

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

       insdmo   GobiNet.ko

       ./quectel-CM  &

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

     

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

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

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

  • 相关阅读:
    矩阵特征值与特征向量
    拉格朗日插值matlab实现
    CloudCompare 的简单的使用说明
    kreuz-frankfurt-sample-generic-2019-02-08.xodr文件解读
    xml语言
    惯性坐标系
    四分位数及matlab实现
    参考文献类型标识
    matlab产生很多个相同的数字
    linux 中常用的一些头文件
  • 原文地址:https://www.cnblogs.com/ChenChangXiong/p/10858352.html
Copyright © 2011-2022 走看看