Quectel ec200a-eu LTE modem does not route traffic

I am intalling the LTE module in a BananaPi R3. What i did:

  1. Installed kmod-usb-net-cdc-ether
  2. Be sure that the mode is ECM
picocom /dev/ttyUSB2
picocom v3.1

port is        : /dev/ttyUSB2
flowcontrol    : none
baudrate is    : 9600
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        :
omap is        :
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready
AT+QCFG="usbnet",1
OK
AT+CFUN=1,1
OK
  1. Created wan interface:
network.lte_wan=interface
network.lte_wan.proto='dhcp'
network.lte_wan.device='usb0'
network.lte_wan.metric='1'

firewall.@zone[1].network='wan wan6 lte_wan'

  1. Check ifconfig:
usb0      Link encap:Ethernet  HWaddr 02:0C:29:A3:9B:6D
          inet addr:192.168.43.100  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::c:29ff:fea3:9b6d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:988 (988.0 B)  TX bytes:3826 (3.7 KiB)
  1. Check routes:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         1-181-19-190.fi 0.0.0.0         UG    0      0        0 wan
default         192.168.43.1    0.0.0.0         UG    1      0        0 usb0
190.19.181.0    *               255.255.255.0   U     0      0        0 wan
192.168.3.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.43.0    *               255.255.255.0   U     1      0        0 usb0
192.168.100.0   *               255.255.255.0   U     0      0        0 br-lan
  1. Ping FAILS:
root@OpenWrt-Controller:~# ping -I usb0 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 0 packets received, 100% packet loss

dmesg:

[61725.296068] usb 1-2: new high-speed USB device number 22 using xhci-mtk
[61725.763976] usb 1-2: USB disconnect, device number 22
[61733.297953] usb 1-2: new high-speed USB device number 23 using xhci-mtk
[61733.480538] cdc_ether 1-2:1.0 usb0: register 'cdc_ether' at usb-11200000.usb-2, CDC Ethernet Device, 02:0c:29:a3:9b:6d
[61733.492414] option 1-2:1.2: GSM modem (1-port) converter detected
[61733.498805] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[61733.506061] option 1-2:1.3: GSM modem (1-port) converter detected
[61733.512481] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[61733.520781] option 1-2:1.4: GSM modem (1-port) converter detected
[61733.527134] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2

Also I tested that the module works on Windows in RNDIS mode (I can browse internet)

Any suggestion to solve this?

Thanks in advance.

Pablo

Please use search.

Hi, thanks.

I have found that post before asking this, but in facts the only I have tried from there is:

AT+QNETDEVCTL=3,1

Because I understood that the only instrucion which applies to ECM there is it. I did not find any diffence in the final behaviour. There is any other check I could try?

Make sure you configured your APN with at+qicsgp=1,1,"your APN"
Then check after the modem restart:

AT+COPS?
AT+CEREG?
AT+CGDCONT?
AT+CGPADDR

Did the trick, with:

at+qicsgp=1,1,"datos.personal.com"

Then:

root@OpenWrt-Controller:~# ping -I usb0 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=97.858 ms
64 bytes from 8.8.8.8: seq=1 ttl=113 time=24.777 ms
64 bytes from 8.8.8.8: seq=2 ttl=113 time=18.580 ms
64 bytes from 8.8.8.8: seq=3 ttl=113 time=19.530 ms
64 bytes from 8.8.8.8: seq=4 ttl=113 time=20.321 ms

But let me show all the previous observations:

AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,0,0
+CGDCONT: 8,"IPV4V6","IMS","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,1,1
+CGDCONT: 9,"IP","datos.personal.com","0.0.0.0",0,0,0,0,0,0

OK
AT+COPS?
+COPS: 0

OK
AT+CEREG?
+CEREG: 0,3

OK
AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,0,0
+CGDCONT: 8,"IPV4V6","IMS","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,1,1
+CGDCONT: 9,"IP","datos.personal.com","0.0.0.0",0,0,0,0,0,0

OK
AT+CGPADDR
+CGPADDR: 1,"0.0.0.0","0:0:0:0:0:0:0:0"
+CGPADDR: 8,"0.0.0.0","0:0:0:0:0:0:0:0"

OK

Let me explain the story and my doubts about the APN part. In the beginning, the only return was:

AT+CGDCONT?
+CGDCONT: 8,"IPV4V6","IMS","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,1,1

I don't know what goes about with that, but I am almost pretty sure that ir refers to the IMS Core and the APN associated to it. But idk how this entry was created. It sounds weird since mi operator's APN which seems to be related to it is only with IPv4.


And is weirder that the card on Windows works well while AT+CGDCONT? returns the same.

While:

+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,0,0

Was the result of me configuring the APN first with:

AT+CGDCONT=1,"IPV4V6","datos.personal.com"

And finally with:

AT+CGDCONT=1,"IPV4V6","internet"

And different dummy parameters in order to delete the entry (without success) because it didn't work.

Then, the last one:

+CGDCONT: 9,"IP","datos.personal.com","0.0.0.0",0,0,0,0,0,0

Seems to be created automatically.

Finally, and now when the ping works, I get:

AT+CGDCONT?
+CGDCONT: 1,"IP","datos.personal.com","0.0.0.0",0,0,0,0,0,0
+CGDCONT: 8,"IPV4V6","IMS","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,1,1
+CGDCONT: 9,"IP","datos.personal.com","0.0.0.0",0,0,0,0,0,0

Should I erase the last two? If yes, how can I do it?

I need to change "IP" to "IPV4V6" to have the possibility to create a dhcpv6 interface? If yes, how?

Thank you very much

Probably the easiest way is to use context 9 instead of 1 :
AT+QNETDEVCTL=3,9

and delete context 1 with AT+CGDCONT=1

Do you have any proof that your provider supports IPv6? Any special instructions?

AT+CGDCONT=1
+CME ERROR: 50

The erasing not seem to work.

A mobile with the same SIM gets at least an IPv6 GUA address, idk if it could get a prefix.

In most cases you cannot get a prefix in addition to /64 GUA address, but that is fine.
In order to get it with OpenWrt we need to understand what are the settings on the mobile you're referring to. If the APN is the same and the only difference is PDP Type - IP vs IPV6 vs IPV4V6 then we can try the same on the modem.

you probably need to take the modem offline first with at+cfun=4

I think this is the relevant part

Well, since they want to use context #9 you can try the following:

at+cfun=4
AT+CGDCONT=9,"IPV4V6","datos.personal.com"
at+cfun=1,1

modem will restart, give it a minute and re-check with

AT+CGDCONT?
AT+CGPADDR
1 Like

Results

Type [C-a] [C-h] to see available commands
Terminal ready
AT+CGDCONT?
+CGDCONT: 8,"IPV4V6","IMS","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,1,1
+CGDCONT: 9,"IPV4V6","datos.personal.com","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,0,0

OK
AT+CGPADDR
+CGPADDR: 1,"100.65.60.152"
+CGPADDR: 8,"10.181.181.254","0:0:0:0:0:0:0:0"
+CGPADDR: 9,"100.112.65.238","2800:250A:1:9EE4:180A:6664:B469:BA9F"

OK

And works.

Marked now last post as solution because I think is the most straightforward but anyway all on this thread I think has great value.

Thank you very much.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.