GNU Linux bash - the ultimate (LTE) modem debugging one-liner

currently wrestling with a LTE modem, that used to work under Ubuntu, but refuses to work under Debian 11.

<span style="color: #00ffff;">while true; do echo "=== show modem status:"; mmcli -m 1|grep -e model -e primary -e state -e signal; echo -e "\n=== show routing table:"; route -n; echo -e "\n=== show arp table:"; arp -an; echo -e "\n=== ping a host 3x times:"; ip -c a; ping -c3 1.1.1.1; sleep 1; clear; done</span>


# info about the system
<span style="color: #00ffff;">lsb_release -d</span>
Description:    Debian GNU/Linux 11 (bullseye)

<span style="color: #00ffff;">uname -a</span>
Linux tuxedo 5.10.0-16-amd64 #1 SMP Debian 5.10.127-1 (2022-06-30) x86_64 GNU/Linux

<span style="color: #00ffff;">lsusb</span>
Bus 003 Device 005: ID 12d1:15bb Huawei Technologies Co., Ltd. ME936 LTE/HSDPA+ 4G modem

# sample output

=== show modem status:
           |                model: ME936
           |         primary port: ttyUSB0
           |                state: connected
           |          power state: on
           |       signal quality: 22% (recent)

=== show routing table:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         37.80.230.59    0.0.0.0         UG    700    0        0 wwx022c80139263
37.0.0.0        0.0.0.0         255.0.0.0       U     700    0        0 wwx022c80139263
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wwx022c80139263

=== show arp table:
? (37.80.230.59) at  on wwx022c80139263

=== ping a host 3x times:
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: wwx022c80139263: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:2c:80:13:92:63 brd ff:ff:ff:ff:ff:ff
    inet 37.80.230.58/8 brd 37.255.255.255 scope global noprefixroute wwx022c80139263
       valid_lft forever preferred_lft forever
3: wlp52s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 36:20:ec:72:3f:66 brd ff:ff:ff:ff:ff:ff permaddr 70:9c:d1:62:10:9c
5: enxa0cec851d79b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether a0:ce:c8:51:d7:9b brd ff:ff:ff:ff:ff:ff
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
From 37.80.230.58 icmp_seq=1 Destination Host Unreachable
From 37.80.230.58 icmp_seq=2 Destination Host Unreachable
From 37.80.230.58 icmp_seq=3 Destination Host Unreachable

--- 1.1.1.1 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2046ms

#linux #gnu #gnulinux #opensource #administration #sysops #lte #modem #debugging #debug #bash

Originally posted at: https://dwaves.de/2022/07/12/gnu-linux-bash-the-ultimate-lte-modem-debugging-one-liner/

1