LTE 4G通讯模块(BM806U )在Ubuntu20.04 环境的调测记录
摘要:本文以几款 4G 模块(miniPCIe 接口封装)为例,介绍了其几种打通无线网络连接的方式:1)ppp 方式拨号; 2)wwan 移动宽带 ; 3)NDIS 方式拨号 . 以对阶段性调测结果作个总结和记录。
使用的通讯模块有:
宽翼BM806U ,
Huawei ME909S821,
移远 Quectel E20 ,
LONG SUNG U9300C
SIM7699CE
1. USB端口占用情况查询
将4G模块(miniPCIe 接口)通过USB转接板,插入电脑 USB口,查看能否自动检测出该模块。
lsusb 命令显示
1
2
3
4
5
6
7
8
9
10lsusb 宽翼BM806U: Bus 001 Device 008: ID 2020:2033 Mobile Connect Mobile Connect SIM7600CE: Bus 001 Device 009: ID 1e0e:9001 Qualcomm / Option SimTech, Incorporated Huawei ME909s821: Bus 001 Device 003: ID 12d1:15c1 Huawei Technologies Co., Ltd. ME906s LTE M.2 Module 移远 Quectel E20 : Bus 005 Device 002: ID 2c7c:0125
列出tty端口列表
1
2
3
4
5
6
7
8
9
10ls -al /dev/ttyU* crw-rw---- 1 root dialout 188, 0 May 17 17:09 ttyUSB0 crw-rw---- 1 root dialout 188, 1 May 17 17:10 ttyUSB1 crw-rw---- 1 root dialout 188, 2 May 17 17:10 ttyUSB2 crw-rw---- 1 root dialout 188, 3 May 17 17:09 ttyUSB3
dmesg 查看 USB 信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22dmesg | grep USB [ 223.739861] usb 1-2: new full-speed USB device number 3 using ohci-pci [ 224.872732] usb 1-2: New USB device found, idVendor=2020, idProduct=2033, bcdDevice= 2.28 [ 224.872735] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 225.745582] usbserial: USB Serial support registered for generic [ 226.295922] usbserial: USB Serial support registered for GSM modem (1-port) [ 226.327156] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0 [ 226.379089] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1 [ 226.416202] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2 [ 226.445411] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3 [ 228.587832] qmi_wwan 1-2:1.4: cdc-wdm0: USB WDM device
可以看到有 4 个 ttyUSB 端口和一个 qmi-wwan , 这估计就是对应 BM806U 4G 模块的吧 。
2. Mobile BroadBand 设置(qmi_wwan): OK
要点与结论
1) 已测试:中国移动的SIM卡(4G),和中国电信的SIM卡(4G)都能够设置成功。
2) 中国电信,选择“中国移动”,设置CMNET,也可以设置成功(因为没有中国电信的网络选项)。
3) Wwan0 不太稳定,在用中国电信的SIM卡时,过几分钟会有自动断链情况(IP地址丢失,ifconfig 只能查到 MAC地址)
4) 用新的网络设置“add new connection”,能够立即成功。如果重用之前的配置,很难成功。
Ifconfig 查询结果
(这个是中国移动的SIM卡,没有分配IP地址(也可能是断链了?),不知道为啥?x)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19ifconfig wwan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 5a:d6:16:88:e1:4f txqueuelen 1000 (Ethernet) RX packets 97 bytes 13447 (13.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 152 bytes 17480 (17.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以下是用中国电信的USIM卡,网络选择 CMCC也可以(因为没有中国电信的选项),APN自动设置为 CMNET . 居然也拨号成功了, 浏览器能够正常访问网页。缺点是几分钟后,网络断链。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21wwan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1430 inet 10.40.192.72 netmask 255.255.255.240 broadcast 10.40.192.79 ether fa:17:09:70:64:d2 txqueuelen 1000 (Ethernet) RX packets 95 bytes 21885 (21.8 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 138 bytes 16212 (16.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查询网络接口 (有wwan0端口,转接板亮灯)
1
2
3
4
5
6root@sheenfar-VirtualBox:/dev# ls /sys/class/net docker0 enp0s3 lo wwan0
3. 控制台AT命令测试(CGDCONT成功设置,拨号成功,但未分配IP)
ttyUSB1/ TTYUSB2 都可以响应 AT 命令。 但是无法建立 PDP 连接。
1
2
3
4
5
6
7
8
9
10
11echo -en "at+cregrn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/dev# OK root@sheenfar-VirtualBox:/dev# echo -en "atirn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/dev# Manufacturer: BroadMobi Model: BM806U Revision: M1.3.0_E1.0.7_A1.2.2 IMEI: 863424030017527 +GCAP: +CGSM
1
2
3
4
5
6
7
8
9
10
11
12OK echo -en "at+cregrn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/dev# OK echo -en "at+csqrn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/dev# +csq: 99,99 OK echo -en "at+cnumrn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/dev# +CNUM: ,"+8613818xxxxxx",145
1
2
3
4
5
6
7
8OK root@sheenfar-VirtualBox:~# echo -en "at+cgdcont?rn">/dev/ttyUSB1 root@sheenfar-VirtualBox:~# +CGDCONT: 1,"IP","unim2m.njm2mapn","0.0.0.0",0,0 root@sheenfar-VirtualBox:~# echo -en "atdt*99#rn">/dev/ttyUSB1 root@sheenfar-VirtualBox:~# CONNECT 150000000
上述 APN 是该二手模块买来自带的,搞不懂是什么APN. 拨号,居然也连接上了。
CGDCONT设置失败
root@sheenfar-VirtualBox:~# at+cgdcont=1,ip,cmnet,0,0,
ERROR
CGDCONT设置成功( 这个 PDP设置了好几次才算成功了!)
1
2
3
4echo -en "AT+CGDCONT?rn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/etc/ppp# AT+CGDCONT? +CGDCONT: 1,"IP","CMNET","0.0.0.0",0,0
1
2
3
4
5
6
7```handlebars OK echo -en "ATD*98#rn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/etc/ppp# ATD*98# CONNECT 150000000
但是,用 ifconfig 查看 IP ,发现没有分配 IP . 浏览器也无法上网。应该是拨号是不分配 IP 地址的。 需要 PPP 协商才可以分配 IP 地址。 PPP 协商用 AT 命令不知道怎么搞。 就此打住吧。
4.Wvdial 测试(ppp协议)
4.1先需要安装 wvdial (Apt install wvdial)
4.2 运行wvdialconf /etc/wvdial.conf,生产配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65wvdial conf /etc/wvdial.conf Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 S4 S5 S6 S7 Modem Port Scan<*1>: S8 S9 S10 S11 S12 S13 S14 S15 Modem Port Scan<*1>: S16 S17 S18 S19 S20 S21 S22 S23 Modem Port Scan<*1>: S24 S25 S26 S27 S28 S29 S30 S31 ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud ttyUSB0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up. ttyUSB1<*1>: ATQ0 V1 E1 -- OK ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: BroadMobi ttyUSB1<*1>: Speed 9600: AT -- OK ttyUSB1<*1>: Max speed is 9600; that should be safe. ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyUSB2<*1>: ATQ0 V1 E1 -- OK ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: BroadMobi ttyUSB2<*1>: Speed 9600: AT -- OK ttyUSB2<*1>: Max speed is 9600; that should be safe. ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyUSB3<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud ttyUSB3<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud ttyUSB3<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up. Found a modem on /dev/ttyUSB1. Modem configuration written to /etc/wvdial.conf. ttyUSB1<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" ttyUSB2<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
4.3 查看配置文件cat /etc/wvdial.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15```handlebars root@sheenfar-VirtualBox:/etc/ppp# cat /etc/wvdial.conf [Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem ISDN = 0 New PPPD = yes Phone = *99# Modem = /dev/ttyUSB1 Username = guest Password = guest Baud = 9600
4.4 第1次 wvdial 拨号失败
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17root@sheenfar-VirtualBox:/etc/ppp# wvdial wvdial :Modem not responding --> WvDial: Internet dialer version 1.61 --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 ATQ0 OK --> Re-Sending: ATZ ATZ OK --> Modem not responding. ATH OK
4.5 在手工修改cgcont 为 CMNET 之后,拨号成功,上网成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38root@sheenfar-VirtualBox:~# wvdial & [1] 4780 root@sheenfar-VirtualBox:~# --> WvDial: Internet dialer version 1.61 --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT*98# --> Waiting for carrier. ATDT*98# CONNECT 150000000 --> Carrier detected. Waiting for prompt. --> Connected, but carrier signal lost! Retrying... --> Sending: ATDT*98# --> Waiting for carrier. NO CARRIER ^DATADISCONNECT CONNECT 150000000 --> Carrier detected. Waiting for prompt. --> Don't know what to do! Starting pppd and hoping for the best. --> Starting pppd at Mon May 17 21:18:39 2021 --> Pid of pppd: 4787 --> Using interface ppp0 --> local IP address 10.12.139.47 --> remote IP address 10.64.64.64 --> primary DNS address 211.136.150.86 --> secondary DNS address 211.136.150.88
并且成功分配了 IP 地址。 可以上网。
Ifconfig 显示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.12.139.47 netmask 255.255.255.255 destination 10.64.64.64 ppp txqueuelen 3 (Point-to-Point Protocol) RX packets 345 bytes 232557 (232.5 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 387 bytes 48626 (48.6 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5. PPPD测试(拨号与PPP协商拆分为两步,成功)
5.1 直接用pppd 拨号失败
1
2
3
4
5
6
7
8pppd modem -d -detach /dev/ttyUSB1 9600 kdebug 4 file /etc/ppp/options crtscts noipdefault netmask 255.255.255.0 defaultroute connect /etc/ppp/chat-script usepeerdns AT OK Script /etc/ppp/chat-script finished (pid 4522), status = 0x3 Connect script failed
ppp 拨号脚本如下
1
2
3
4
5
6
7
8
9
10
11
12
13root@sheenfar-VirtualBox:/etc/ppp# cat /etc/ppp/chat-script #!/bin/sh exec chat -v TIMEOUT 5 ABORT "BUSY" ABORT "ERROR" ABORT "NO CARRIER" '' rAT OK 'AT+CGDCONT=1,"IP","CMNET"' OK 'ATDT*99#' CONNECT ''
5.2 先拨号, 再PPP协商两步走成功
先拨号
1
2
3
4echo -en "atd*98#rn">/dev/ttyUSB1 root@sheenfar-VirtualBox:/etc/ppp# CONNECT 150000000
然后再PPP协商
1
2
3
4
5pppd modem -d -detach /dev/ttyUSB1 9600 kdebug 4 file /etc/ppp/options crtscts noipdefault netmask 255.255.255.0 defaultroute usepeerdns
注意: connect /etc/ppp/chat-script(这个参数选项要删除)
查询 ifconfig 看到了 PPP0 IP地址, 成功!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.72.137.253 netmask 255.255.255.255 destination 10.64.64.64 ppp txqueuelen 3 (Point-to-Point Protocol) RX packets 50 bytes 8564 (8.5 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 62 bytes 5873 (5.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
6. NDIS 拨号+申请IP地址两步走
该种方式仅测试了Huawei ME909S821 模块。
6.1 拨号命令 at^ndisdup=1,1rn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18root@sheenfar-VirtualBox:~# cat /dev/ttyUSB0 & [1] 5224 root@sheenfar-VirtualBox:~# echo -en "at^ndisdup?rn">/dev/ttyUSB0 root@sheenfar-VirtualBox:~# OK echo -en "at^ndisdup=1,1rn">/dev/ttyUSB0 root@sheenfar-VirtualBox:~# ERROR echo -en "at^ndisdup=1,0rn">/dev/ttyUSB0 root@sheenfar-VirtualBox:~# OK ^NDISSTAT: 0,0,,"IPV4" ^NDISSTAT: 0,0,,"IPV6" echo -en "at^ndisdup=1,1rn">/dev/ttyUSB0 root@sheenfar-VirtualBox:~# OK ^NDISSTAT: 1,,,"IPV4"
备注: at^ndisdup =1,1 为建立连接,
at^ndisdup =1,0 为释放连接。
这个时候用 ifconfig 查询,发现还没有分配IP 地址。 需要用 udhcpc 命令去获取 IP 地址。
6.2 申请IP地址
udhcpc -i wwx021e101f0000
1
2
3
4
5
6root@sheenfar-VirtualBox:~# udhcpc -i wwx021e101f0000 udhcpc: started, v1.30.1 udhcpc: sending discover udhcpc: sending select for 10.24.149.79 udhcpc: lease of 10.24.149.79 obtained, lease time 518400
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25ifconfig 查看结果: wwx021e101f0000: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.48.3.10 netmask 255.255.255.252 broadcast 10.48.3.11 inet6 fe80::1e:10ff:fe1f:0 prefixlen 64 scopeid 0x20<link> ether 02:1e:10:1f:00:00 txqueuelen 1000 (Ethernet) RX packets 158 bytes 23446 (23.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 153 bytes 21200 (21.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
观察网络连接物理端口命令:
1
2
3
4
5
6root@sheenfar-VirtualBox:~# ls /sys/class/net docker0 enp0s3 lo wwx021e101f0000
6.3 奇怪的事情,NDIS之后wwan0 端口就不出现了
即使采用本文第2章的方式 GUI设置 Mobile Broadband , 通过 ls /sys/class/net 列出来的网络端口还是 wwx021e101f0000 , 原有的 wwan0 就不再出现了。 此时还可以用 “AT^NDISDUP=1,0rn” 命令来关闭连接。 但是关闭后 IP 地址依然存在, 设置GUI界面的 Mobile Broadband 状态依然是连接。
因时间原因,没有测试重启后的效果,不会再也见不到 wwan0 端口了吧 ?
最后
以上就是腼腆豌豆最近收集整理的关于宽翼通信4G模块(BM806U )在Ubuntu20.04 环境的调测记录LTE 4G通讯模块(BM806U )在Ubuntu20.04 环境的调测记录3. 控制台AT命令测试(CGDCONT成功设置,拨号成功,但未分配IP)4.Wvdial 测试(ppp协议)5. PPPD测试(拨号与PPP协商拆分为两步,成功)6. NDIS 拨号+申请IP地址两步走的全部内容,更多相关宽翼通信4G模块(BM806U内容请搜索靠谱客的其他文章。
发表评论 取消回复