No Connection to the Internet over 4G/LTE

I received a 4G/LTE hat with a Quectel EG25-G today, and despite numerous attempts and confirming that the Hat is receiving a 4G connection good enough to send myself texts via AT commands in the Minicom Terminal I have yet to generate a valid connection to the internet.

I’ve done a fair bit of digging into why this might be the case today, but I have yet to run into anything that provides a clear solution to the issue. Does anyone else have any idea as to what exactly might be the issue, and if so what I would be advised to do in order to resolve it?

I’m using the latest version of the Pi 4B, Ubuntu Server 20.04, and 5.4.0-1022-raspi.

ip addr list returns:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:d1:23:fd brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.12/24 brd 192.168.10.255 scope global dynamic eth0
       valid_lft 33365sec preferred_lft 33365sec
    inet6 fe80::dea6:32ff:fed1:23fd/64 scope link
       valid_lft forever preferred_lft forever
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether dc:a6:32:d1:23:fe brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:b9:02:84:95 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
8: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 0e:2c:ba:69:7a:ca brd ff:ff:ff:ff:ff:ff

Nb. I have checked to see if setting the state of usb0 up changed anything, and it did not.

lsusb -t returns:

ubuntu@ubuntu:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 6, If 0, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 6, If 1, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 6, If 2, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 6, If 3, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 3: Dev 6, If 4, Class=Communications, Driver=cdc_ether, 480M
        |__ Port 3: Dev 6, If 5, Class=CDC Data, Driver=cdc_ether, 480M

dmesg | grep tty returns:

ubuntu@ubuntu:~$ dmesg | grep tty
[    0.000000] Kernel command line:  coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 bcm2708_fb.fbwidth=0 bcm2708_fb.fbheight=0 bcm2708_fb.fbswap=1 smsc95xx.macaddr=DC:A6:32:D1:23:FD vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc quiet splash
[    0.000234] printk: console [tty1] enabled
[    1.660321] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 14, base_baud = 0) is a PL011 rev2
[    1.666540] printk: console [ttyS0] disabled
[    1.666570] fe215040.serial: ttyS0 at MMIO 0x0 (irq = 16, base_baud = 62500000) is a 16550
[    1.680223] printk: console [ttyS0] enabled
[    7.603307] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    8.807309] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[    8.807771] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[    8.808145] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[    8.808503] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB3
[  405.270206] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[  405.271618] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[  405.273883] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[  405.275475] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[  418.615322] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[  418.616148] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[  418.617072] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[  418.617807] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB3
[ 8400.606285] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 8400.608232] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 8400.613760] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 8400.615760] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 8624.051242] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[ 8624.051580] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[ 8624.051916] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[ 8624.052252] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[ 8809.731865] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 8809.733306] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 8809.735323] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 8809.737154] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 8822.777436] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[ 8822.778282] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[ 8822.778827] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[ 8822.779353] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3

and AT+CGCONTRDP returned:

AT+CGCONTRDP
+CGCONTRDP: 1,5,wap.vodafone.co.uk,10.98.42.30,192.168.253.1,

When run in the minicom 2.71 window.

Hi @i.doherty,
Your kernel will need the “qmi_wwan” driver installed. This driver can be either built­in or a loadable module. It can look e.g. like this:

...
|__ Port 1: Dev 7, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
...

It seems that the Linux in-kernel qmi_wwan driver not installed and attached for the cellular modules QMI interface over USB:

Please verify that the module is set to expose the correct USB endpoints configuration toward the host system and that you have followed the provided guides from the cellular module vendors, regarding how to implement the module in Linux.

After installing the driver, you can establish an internet connection by following one of the tutorials below:

Would you have any advice as to where I’d be able to find the driver I need and the location in which it needs to be installed for Ubuntu 20.04? I’ve found several conflicting sources regarding this, and it is making it difficult to pick out the correct method for doing so.

Click to download the driver guide provided by the module vendor.

Issue was resolved by shifting to Raspian Buster as the OS. Looks like it might be something in Ubuntu that has changed in the last while, and I might dig into it whenever I have the time and won’t be pushing for a short deadline on creating the test system.

Thanks for the help anyways :smile:.