在树莓派3B+中移植和使用移远EC200T模块

一、驱动移植

  1. 从移远官网下载EC200T驱动 “Quectel_EC200T_Linux_USB_Driver_V1.0.zip”

  2. 下载的压缩包中包含了多个内核版本的驱动,我选择的是v4.19.51版本,因为这个版本最接近我所使用的内核版本。

  3. 在树莓派中安装内核头文件:

    sudo apt install raspberrypi-kernel-headers
    

    注意:内核头文件版本尽量与内核版本一致,如果找不到完全一致的版本就找最接近的,并在当前内核模块目录中创建符号连接,指向头文件安装的位置。

  4. 进入驱动程序目录“v4.19.51”,编译并安装内核模块。

    cd v4.19.51
    sudo make install
    
  5. 把EC200T模块插入树莓派的USB口,然后使模块开机。使用“lsusb”命令查看模块是否识别,识别后会出现下面三个设备文件,以及ECM接口虚拟出的一个以太网卡“usb0”。

    设备文件 功能
    /dev/ttyUSB0 ttyUSB0 used for DM.
    /dev/ttyUSB1 ttyUSB1 used for AT command communication.
    /dev/ttyUSB2 ttyUSB2 used for PPP connections or AT
    command communication.

    这个驱动就是EC200T模块的USB转串口驱动,ECM接口能够自动识别不需要额外的驱动。理论上,如果仅使用ECM接口时可以免驱动。

二、使用ECM接口上网

首先需要对EC200T模块做一些设置,也就是在AT命令端口执行一些命令。

  1. 使用minicom打开ttyUSB1

    minicom -D /dev/ttyUSB1
    

    理论上也可以使用EC200T模块的UART接口,这样就能免除编译和安装驱动了。

  2. 使用AT+QICSGP命令设置APN、用户名和密码。

  3. 如果使用2G/3G网络,需要执行AT+QIACT=1命令激活PDP。

  4. 使用AT+QNETDEVCTL=1,1,1命令设置数据呼叫(自动拨号)。

  5. 之后DHCP会从以太网usb0,自动获取IP地址、DNS和默认网关。

完整的命令:

pi@raspberrypi:~ $ minicom -D /dev/ttyUSB1

at
OK
at+cpin?
+CPIN: READY

OK
at+csq
+CSQ: 22,99

OK
at+qicsgp=1,1,"cmnet"
OK
at+cops?
+COPS: 0,0,"CHINA MOBILE",7

OK
at+qnetdevctl=1,1,1
OK

#quit minicom (Ctrl+A -> Z -> X)

总结:
我个人觉得ECM端口就像是一个路由器,树莓派通过虚拟的以太网口usb0与其相连接,并且能够使用DHCP自动获取IP地址、DNS和默认网关。之后就像连上了一个普通的路由器一样能够正常上网了。

你可能感兴趣的:(在树莓派3B+中移植和使用移远EC200T模块)