USB Tethering keeps disconnecting

I'm trying to connect via USB tethering from my LG G4. I have Ubuntu 16.04

The tethering works for just 1 or 2 minutes but after that it disconnects. If I unplug and plug again the cable it reconnects, but just for another minute or so.
If I activate wifi tethering it works fine..

Can anyone give me some advice on how to diagnose and to understand why this is happening?

Thanks in advance :)


Solution 1:

I've just experienced this exact same problem after upgrading to 16.04.1 from 14.04 (under which USB tethering worked fine for years).

Based on syslog it looks like it's caused by a conflict with ModemManager.

Aug 25 13:12:24 outback NetworkManager[2543]: <info>  [1472145144.1334] device (enp0s20u2): Activation: successful, device activated.
[...eliding log entries related to nm-dispatcher services]
Aug 25 13:12:38 outback ModemManager[2503]: <info>  Creating modem with plugin 'Generic' and '2' ports
Aug 25 13:12:38 outback ModemManager[2503]: <info>  Modem for device at '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2' successfully created
Aug 25 13:12:41 outback ModemManager[2503]: <warn>  couldn't load Manufacturer: 'Serial command timed out'
Aug 25 13:12:44 outback ModemManager[2503]: <warn>  couldn't load Model: 'Serial command timed out'
Aug 25 13:12:47 outback ModemManager[2503]: <warn>  couldn't load Revision: 'Serial command timed out'
Aug 25 13:12:50 outback ModemManager[2503]: <warn>  couldn't load Equipment Identifier: 'Serial command timed out'
Aug 25 13:12:50 outback ModemManager[2503]: <warn>  couldn't load Operator name: 'SIM failed to handle CRSM request (sw1 106 sw2 130)'
Aug 25 13:12:54 outback ModemManager[2503]: <warn>  couldn't load IMEI: 'Serial command timed out'
Aug 25 13:12:54 outback ModemManager[2503]: <info>  Modem: state changed (unknown -> disabled)
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.3879] device (enp0s20u2): state change: activated -> deactivating (reason 'connection-removed') [100 110 38]
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.3881] manager: NetworkManager state is now DISCONNECTING
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.4362] dns-mgr: Writing DNS information to /sbin/resolvconf
Aug 25 13:12:54 outback dnsmasq[4348]: setting upstream servers from DBus
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.4430] manager: (ttyACM0): new Broadband device (/org/freedesktop/NetworkManager/Devices/4)
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.4441] device (ttyACM0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.4445] device (ttyACM0): modem state 'enabling'
Aug 25 13:12:54 outback NetworkManager[2543]: <info>  [1472145174.4457] device (enp0s20u2): state change: deactivating -> disconnected (reason 'connection-removed') [110 30 38]

I disabled ModemManager via the command:

sudo systemctl disable ModemManager.service

And then rebooted. My subsequent USB tethering sessions have been stable since then.

I'm sure there's a way to configure ModemManager properly for my phone (an LG G3), but I have no current need for a serial modem, so this method works for me.

Solution 2:

For me, this command worked:

sudo systemctl stop ModemManager.service

using disable instead of stop wasn't working. Then I reopen the NetworkManager:

sudo NetworkManager

Solution 3:

systemctl stop ModemManager.service

worked straight-ahead on my ancient LG G2, Kali Linux 2019.4, no need to reboot

systemctl disable ModemManager.service

will prevent service starting on future (re)boots