REGRESSION: Samsung E3210B feature phone recognized but timeouts on connection under 1.20.6, works correctly under 1.18.12
My test system is Fedora 38 x86_64 with ModemManager-1.20.6-1.fc38.x86_64 and systemd-udev-253.5-1.fc38.x86_64 installed from standard distro repositories.
I am trying to setup an internet connection using a Samsung E3210B phone on an USB connection, plus ModemManager. When plugged in, this phone exposes a single character device, /dev/ttyACM0
. By itself, my system does NOT recognize the phone as modem capable. I tried to work around this by creating a file /usr/lib/udev/rules.d/77-mm-samsung-custom-port-types.rules
with the following content:
ACTION!="add|change|move|bind", GOTO="mm_samsung_custom_port_types_end"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", GOTO="mm_samsung_custom_port_types"
GOTO="mm_samsung_custom_port_types_end"
LABEL="mm_samsung_custom_port_types"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="663e", ENV{.MM_USBIFNUM}=="01", SUBSYSTEM=="tty", ENV{ID_MM_DEVICE_PROCESS}="1"
LABEL="mm_samsung_custom_port_types_end"
After doing this and restarting udevd and ModemManager, udevadm info shows this:
P: /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:3.1/tty/ttyACM0
M: ttyACM0
R: 0
U: tty
D: c 166:0
N: ttyACM0
L: 0
S: serial/by-id/usb-Samsung_SAMSUNG_Mobile_Device_000000-00-0000000-if01
S: serial/by-path/pci-0000:00:14.0-usb-0:9:3.1
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:3.1/tty/ttyACM0
E: SUBSYSTEM=tty
E: DEVNAME=/dev/ttyACM0
E: MAJOR=166
E: MINOR=0
E: USEC_INITIALIZED=27033377542
E: ID_BUS=usb
E: ID_MODEL=SAMSUNG_Mobile_Device
E: ID_MODEL_ENC=SAMSUNG\x20Mobile\x20Device
E: ID_MODEL_ID=663e
E: ID_SERIAL=Samsung_SAMSUNG_Mobile_Device_000000-00-0000000
E: ID_SERIAL_SHORT=000000-00-0000000
E: ID_VENDOR=Samsung
E: ID_VENDOR_ENC=Samsung
E: ID_VENDOR_ID=04e8
E: ID_REVISION=0200
E: ID_TYPE=generic
E: ID_USB_MODEL=SAMSUNG_Mobile_Device
E: ID_USB_MODEL_ENC=SAMSUNG\x20Mobile\x20Device
E: ID_USB_MODEL_ID=663e
E: ID_USB_SERIAL=Samsung_SAMSUNG_Mobile_Device_000000-00-0000000
E: ID_USB_SERIAL_SHORT=000000-00-0000000
E: ID_USB_VENDOR=Samsung
E: ID_USB_VENDOR_ENC=Samsung
E: ID_USB_VENDOR_ID=04e8
E: ID_USB_REVISION=0200
E: ID_USB_TYPE=generic
E: ID_USB_INTERFACES=:020800:020201:0a0000:
E: ID_USB_INTERFACE_NUM=01
E: ID_USB_DRIVER=cdc_acm
E: ID_USB_CLASS_FROM_DATABASE=Communications
E: ID_VENDOR_FROM_DATABASE=Samsung Electronics Co., Ltd
E: ID_MODEL_FROM_DATABASE=D900e/B2100 Phone
E: ID_PATH=pci-0000:00:14.0-usb-0:9:3.1
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_9_3_1
E: ID_MM_DEVICE_PROCESS=1
E: ID_MM_CANDIDATE=1
E: DEVLINKS=/dev/serial/by-id/usb-Samsung_SAMSUNG_Mobile_Device_000000-00-0000000-if01 /dev/serial/by-path/pci-0000:00:14.0-usb-0:9:3.1
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
However, when I try to use this phone to establish an Internet connection, the attempt times out. I have captured a file of the command /usr/sbin/ModemManager --debug --log-level=DEBUG
running as root. It appears to me as if ModemManager just stops talking to the phone. The phone does answer AT commands when issued, so the phone actually understands them. The SIM chip was tested on a different device (Huawei dongle) and was proven to work with the dongle.
Is there something that has to be fixed in the quoted udev file? Or is this an actual bug in ModemManager?