插入USB模块之后,
ifconfig
eth0 Link encap:Ethernet HWaddr 88:0C:E0:75:29:FF
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7636 (7.4 KiB) TX bytes:7636 (7.4 KiB)
usb0 Link encap:Ethernet HWaddr AE:0C:29:A3:9B:6D
inet addr:192.168.43.100 Bcast:192.168.43.255 Mask:255.255.255.0
inet6 addr: fe80::ac0c:29ff:fea3:9b6d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:816 (816.0 B) TX bytes:6078 (5.9 KiB)
可以看到usb0 并且有ip, 此时ping www.sina.com 不通。
插入SIM卡后,依然不行,
网上查找资料, 发现还需要拨号,
27.3.3.2. 获取、编译quectel-CM源码
可以获取quectel-CM源码自行编译或者使用野火编译好的。
#获取quectel-CM源码 git clone https://github.com/kmilo17pet/quectel-cm.git #进入源码目录 cd quectel-cm/ #编译源码 make
或者命令行拨号
27.4.1. 命令行
简单流程:
连接模块,插入sim卡
等待模块成功加载
检查sim卡是否正常工作
配置模块网卡模式
拨号上网
27.4.1.2. 等待模块成功加载
使用下列命令查看模块是否加载上
1 2 3 4 5 | ls /dev/ttyUSB* #如果为下面的情况即为成功加载 root@lubancat:~# ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 |
27.4.1.3. 检查sim卡是否正常工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat) cat /dev/ttyUSB2 & #检查sim卡的状态 echo -e "AT+CPIN?\r\n" > /dev/ttyUSB2 #如果返回值为如下即为获取sim卡成功 +CPIN: READY OK #如果返回值为如下即为获取sim卡失败 +CME ERROR: 10 +CME ERROR: 13 |
27.4.1.4. 配置模块网卡模式
注解
如果之前成功配置过网卡的模式,网卡是会把成功配置的网卡模式保存,就不需要额外再配置网卡模式了(使用网络可以跳过此步)
移远模块共有4种模式,但不是每种模块都支持4种模式,需根据实际模块确定。
0:rmnet模式:通过QMI工具发的QMI命令,获取公网IP。这种模式可以配合usb_ecm驱动或高通GobiNet驱动使用。
1:ecm模式:通过标准的CDC-ECM发起data call,是发送标准的ECM命令,获取局域网ip。这种模式配合cdc_ether驱动使用
2:mbim模式:Mobile Broadband Interface Model,正宗的移动宽带接口模型,专门用于3G/4G/5G模块的,只在win8以上的windows上使用。一般只在WINDOWS下使用。
3:rndis模式:基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡获取局域网ip。这种方式最简单,模块插上手机卡之后,模块会自动拨号上网。
命令 | 功能 |
|---|---|
AT+QCFG=”usbnet” | 查询网卡模式 |
AT+QCFG="usbnet",1 | 设置网卡为ECM模式 |
AT+QCFG="usbnet",3 | 设置网卡为RNDIS模式 |
27.4.1.4.1. 获取当前网卡模式
由于模块是使用AT指令操作的。所以可以使用minicom来进行操作,这里为了简化操作,没使用minicom,而是直接在命令行上操作
端口位置:/dev/ttyUSB2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #查询当前模式 #在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat) cat /dev/ttyUSB2 & #查询当前网卡的模式 echo -e "AT+QCFG=\"usbnet\"\r\n" > /dev/ttyUSB2 #例子: root@lubancat:~# cat /dev/ttyUSB2 & [1] 1155 root@lubancat:~# echo -e "AT+QCFG=\"usbnet\"\r\n" > /dev/ttyUSB2 root@lubancat:~# +QCFG: "usbnet",3 #解析 可以看到返回了3,这个是网卡在RNDIS模式 |
+QCFG: "usbnet",3: RNDIS模式+QCFG: "usbnet",1: ECM模式
27.4.1.4.2. 配置模块网卡模式为ECM
1 2 3 4 5 6 7 8 9 10 | #在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat) cat /dev/ttyUSB2 & #配置为ECM模式(返回:OK 代表配置成功) echo -e "AT+QCFG=\"usbnet\",1\r\n" > /dev/ttyUSB2 #重启模块(重启模块才能生效) echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2 #重启后可以查看配置是否成功生成 |
例子
27.4.1.4.3. 配置模块网卡模式为RNDIS
1 2 3 4 5 6 7 8 9 10 | #在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat) cat /dev/ttyUSB2 & #配置为ECM模式(返回:OK 代表配置成功) echo -e "AT+QCFG=\"usbnet\",3\r\n" > /dev/ttyUSB2 #重启模块(重启模块才能生效) echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2 #重启后可以查看配置是否成功生成 |
例子
详细过程和ECM模式类似,更改其中项就行了
27.4.1.5. 拨号上网
如果你完成了前面的配置,把网卡成功配置成ECM模式或者RNDIS模式,即可拨号上网
27.4.1.5.1. 拨号前准备
在拨号上网前,需要查看一下网卡是否成功生成网络节点
1 2 3 | #列出当前网络的信息 ifconfig |
如下图
如果网卡能成功获取ip,像上图的usb1一样即可往后进行拨号操作
如果网卡没能成功获取到ip,像上图的usb0一样,需要重新复位模块或着重启机器
1 2 | #复位模块命令 echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2 |
注解
复位成功后一般就能显示ip了,如果不行,请查看网卡模式的配置模式是否正确,模块是否能正常工作
27.4.1.5.2. 拨号上网
在开展这一步前,你需要注意
网卡是否成功获取ip
是否插入sim卡
命令 | 功能 |
|---|---|
AT+qnetdevctl=1,1,1 | 立即拨号 |
AT+qnetdevctl=3,1,1 | 自动拨号(开机自动拨号) |
AT+qnetdevctl=0,1,1 | 断开拨号 |
AT+QICSGP=1,”apn”,”username”,”password”,2 | 专网卡拨号 |
拨号上网操作流程
1 2 3 4 5 6 7 8 | #在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat) cat /dev/ttyUSB2 & #立即拨号(返回:OK 代表配置成功) echo -e "AT+qnetdevctl=1,1,1\r\n" > /dev/ttyUSB2 #自动获取网络 dhclient |
例子:
问题分析:
如果在拨号的时候返回了ERROR:你的卡可能是专网卡,需要更换拨号命令
1 2 | #需要根据自己的实际情况去填写 AT+QICSGP=1,"apn","username","password",2 |
如果自动获取网络后也没法连上网络,需要检查一下sim卡是否能正常使用
网卡拨号说明
转载https://blog.csdn.net/tianpu2320959696/article/details/147994502
重要:
模块的模式:配置
echo -e " AT+QCFG=\"nat\",1\r\n" > /dev/ttyUSB2
echo -e "AT+qnetdevctl=3,1,1\r\n" > /dev/ttyUSB2
启用服务:
systemctl enable systemd-networkd