X55 Modem Quick Troubleshooting Reference
Addendum to this post: https://www.joelwnelson.com/2026/04/fixing-the-snapdragon-x55-modem-on-linux/
ThinkPad X13 Gen 2 / Foxconn T99W175 / Linux Mint
Step 1: Check PCIe Power State
cat /sys/bus/pci/devices/0000:08:00.0/power/controlShould return on. If it returns auto, the power fix has reverted.
Fix:
sudo systemctl status modem-stay-awake.service
sudo systemctl start modem-stay-awake.serviceStep 2: Check What 5G Is Doing
sudo mmcli -m 0 --signal-setup=5 && sleep 6 && mmcli -m 0 --signal-getIf 5G RSRP is around -156 and SNR is -23, the 5G component is noise and is dragging LTE down.
Also check access tech:
mmcli -m 0 | grep "access tech"Step 3: Check APN (Instructions Provided For AT&T US)
mmcli -m 0 | grep "initial bearer apn"
mmcli -b 1 | grep apn
nmcli connection show "AT&T ATT Broadband 1" | grep gsm.apnAll three should show nrbroadband. If any show broadband, an known issue with bearer churn problem will return.
Fix:
sudo mmcli -m 0 --3gpp-set-initial-eps-bearer-settings="apn=nrbroadband,ip-type=ipv4v6"
sudo nmcli connection modify "AT&T ATT Broadband 1" gsm.apn nrbroadband
sudo nmcli connection modify "AT&T ATT Broadband 1" gsm.mtu 1420
sudo nmcli connection down "AT&T ATT Broadband 1"
sudo nmcli connection up "AT&T ATT Broadband 1"Step 4: Check Bearer Health
mmcli -b 1Look for connected: yes and a real IP address. Then check if data is actually moving:
cat /sys/class/net/wwan0/statistics/rx_bytes
sleep 5
cat /sys/class/net/wwan0/statistics/rx_bytesIf rx_bytes doesn’t increment, the MBIM data channel is frozen.
Step 5: Check ModemManager Journal
sudo journalctl -u ModemManager --since "30 minutes ago" | grep -i "warn|fail|bearer|error"Bearer connection failures cycling rapidly = APN mismatch or bearer churn.
MBIM NotOpened errors = data channel collapsed, likely needs reconnect or reboot.
Step 6: Check Routing
ip route showMake sure default route is via wwan0. If WiFi is also connected, wwan0 should have a lower metric number to win routing, or test cellular explicitly with -I wwan0.
Step 7: Check FCC Unlock
sudo /usr/share/ModemManager/fcc-unlock.available.d/105b
/org/freedesktop/ModemManager1/Modem/0 wwan0mbim0Should return Successfully run Foxconn FCC authentication v2. If it errors, check the symlink:
ls -la /etc/ModemManager/fcc-unlock.d/105b:e0abStep 8: Check Modes
mmcli -m 0 | grep -A3 "Modes"Current should show allowed: 4g, 5g. If it shows only 4g or only 3g, the mode setting is incorrect.
Nuclear Option: Full Reconnect (Instructions For AT&T)
If steps above don’t resolve it, force a full reconnect without rebooting:
sudo nmcli connection down "AT&T ATT Broadband 1"
sleep 5
echo on | sudo tee /sys/bus/pci/devices/0000:08:00.0/power/control
echo -1 | sudo tee /sys/bus/pci/devices/0000:08:00.0/power/autosuspend_delay_ms
sleep 3
sudo nmcli connection up "AT&T ATT Broadband 1"
sleep 10
ping -c 5 -I wwan0 8.8.8.8Quick Signal Check
sudo qmicli --device=/dev/wwan0mbim0 --device-open-mbim --nas-get-signal-infoRun with ModemManager stopped if it returns permission errors. RSRQ worse than -15 dB or SNR below 3 dB means poor cell conditions regardless of software config.
Known Limitations
- Mode lock does not survive reboot without a systemd service
- Band changes via mmcli do not survive reboot
- Modem often does not recover from suspend without the resume systemd service
- Driver unbind/rebind will cause modem to disappear — always reboot instead