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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM