Hello @andrejs.tx ,
I am at the point where I can communicate with the modem using a serial port.
The issue is that I am unable to get the modem manager to recognize the device. The device is connected through a serial port on a usb to uart hub.
I tried creating a udev rule as follows:
# Rule for ModemManager to handle the device on ttyACM2
ACTION=="add|change", SUBSYSTEM=="tty", KERNEL=="ttyACM2", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d5", ATTRS{bInterfaceNumber}=="04", ENV{ID_MM_TTY_BLACKLIST}="0", ENV{ID_MM_CANDIDATE}="1", ENV{ID_MM_TTY_BAUDRATE}="9600", ENV{ID_MM_TTY_FLOW_CONTROL}="none"
Journalctl reports the following:
torizon@verdin-imx8mm-14756428:~$ journalctl -xe | grep ModemManager
░░ Subject: A start job for unit ModemManager.service has begun execution
░░ A start job for unit ModemManager.service has begun execution.
Sep 08 09:52:01 verdin-imx8mm-14756428 ModemManager[685]: <info> ModemManager (version 1.18.8) starting in system bus...
░░ Subject: A start job for unit ModemManager.service has finished successfully
░░ A start job for unit ModemManager.service has finished successfully.
Sep 08 09:52:02 verdin-imx8mm-14756428 NetworkManager[713]: <info> [1694166722.8210] modem-manager: ModemManager available
Sep 08 09:52:04 verdin-imx8mm-14756428 ModemManager[685]: <info> [base-manager] couldn't check support for device '/sys/devices/platform/soc@0/30800000.bus/30be0000.ethernet': not supported by any plugin
Sep 08 09:52:11 verdin-imx8mm-14756428 ModemManager[685]: <info> [base-manager] couldn't check support for device '/sys/devices/platform/soc@0/30800000.bus/30b60000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:1': not supported by any plugin
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <info> [device /sys/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1] creating modem with plugin 'generic' and '4' ports
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <warn> [plugin/generic] could not grab port ttyACM1: Cannot add port 'tty/ttyACM1', unhandled port type
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <warn> [plugin/generic] could not grab port ttyACM0: Cannot add port 'tty/ttyACM0', unhandled port type
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <warn> [plugin/generic] could not grab port ttyACM3: Cannot add port 'tty/ttyACM3', unhandled port type
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <warn> [plugin/generic] could not grab port ttyACM2: Cannot add port 'tty/ttyACM2', unhandled port type
Sep 08 09:52:23 verdin-imx8mm-14756428 ModemManager[685]: <warn> [base-manager] couldn't create modem for device '/sys/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1': Failed to find primary AT port
It says the port type is unhandled.
Testing the udev rules gives the following:
torizon@verdin-imx8mm-14756428:~$ sudo udevadm test /sys/class/tty/ttyACM2
Password:
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
Trying to open "/usr/lib/systemd/hwdb/hwdb.bin"...
Trying to open "/usr/lib/udev/hwdb.bin"...
=== trie on-disk ===
tool version: 250
file size: 9764875 bytes
header size 80 bytes
strings 2429283 bytes
nodes 7335512 bytes
Load module index
Found cgroup2 on /sys/fs/cgroup/unified, unified hierarchy for systemd controller
Found container virtualization none.
Loaded timestamp for '/etc/systemd/network'.
Loaded timestamp for '/run/systemd/network'.
Parsed configuration file /usr/lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/10-toradex-wifi-ifnames.link
Created link configuration context.
Loaded timestamp for '/etc/udev/rules.d'.
Reading rules file: /usr/lib/udev/rules.d/10-dm.rules
Reading rules file: /etc/udev/rules.d/10-imx.rules
Reading rules file: /etc/udev/rules.d/10-toradex-net-rename.rules
Reading rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
Reading rules file: /usr/lib/udev/rules.d/70-camera.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-memory.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Configuration file /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules is marked executable. Please remove executable permission bits. Proceeding anyway.
Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-linktop-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-daxctl-device.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /etc/udev/rules.d/90-toradex-gpio.rules
Reading rules file: /usr/lib/udev/rules.d/90-vconsole.rules
Reading rules file: /etc/udev/rules.d/91-toradex-i2cdev.rules
Reading rules file: /etc/udev/rules.d/92-toradex-spidev.rules
Reading rules file: /etc/udev/rules.d/93-toradex-backlight.rules
Reading rules file: /etc/udev/rules.d/94-toradex-pwm.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/99-fuse3.rules
Reading rules file: /etc/udev/rules.d/99-my-modem.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
Reading rules file: /etc/udev/rules.d/99-toradex.rules
Reading rules file: /etc/udev/rules.d/bootpart-automount.rules
Reading rules file: /etc/udev/rules.d/touchscreen.rules
ttyACM2: /usr/lib/udev/rules.d/50-udev-default.rules:26 GROUP 20
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:8 Importing properties from results of builtin command 'usb_id'
1-1.1:1.4: if_class:2 protocol:0
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:8 Importing properties from results of builtin command 'hwdb --subsystem=usb'
ttyACM2: hwdb modalias key: "usb:v1A86p55D5d0148dcEFdsc02dp01ic02isc02ip01in04"
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:15 Importing properties from results of builtin command 'path_id'
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:16 LINK 'serial/by-path/platform-ci_hdrc.1-usb-0:1.1:1.4'
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:19 Skipping builtin 'usb_id' in IMPORT key
ttyACM2: /usr/lib/udev/rules.d/60-serial.rules:23 LINK 'serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC17A5ABCD-if04'
ttyACM2: Preserve permissions of /dev/ttyACM2, uid=0, gid=20, mode=0660
ttyACM2: Handling device node '/dev/ttyACM2', devnum=c166:2
ttyACM2: sd-device: Created db file '/run/udev/data/c166:2' for '/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.4/tty/ttyACM2'
DEVPATH=/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.4/tty/ttyACM2
DEVNAME=/dev/ttyACM2
MAJOR=166
MINOR=2
ACTION=add
SUBSYSTEM=tty
TAGS=:systemd:
ID_VENDOR=WCH.CN
ID_VENDOR_ENC=WCH.CN
ID_VENDOR_ID=1a86
ID_MODEL=USB_Quad_Serial
ID_MODEL_ENC=USB\x20Quad_Serial
ID_MODEL_ID=55d5
ID_REVISION=0148
ID_SERIAL=WCH.CN_USB_Quad_Serial_BC17A5ABCD
ID_SERIAL_SHORT=BC17A5ABCD
ID_TYPE=generic
ID_BUS=usb
ID_USB_INTERFACES=:020201:0a0000:
ID_USB_INTERFACE_NUM=04
ID_USB_DRIVER=cdc_acm
ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device
ID_USB_PROTOCOL_FROM_DATABASE=Interface Association
ID_VENDOR_FROM_DATABASE=QinHeng Electronics
ID_PATH=platform-ci_hdrc.1-usb-0:1.1:1.4
ID_PATH_TAG=platform-ci_hdrc_1-usb-0_1_1_1_4
DEVLINKS=/dev/serial/by-path/platform-ci_hdrc.1-usb-0:1.1:1.4 /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC17A5ABCD-if04
ID_MM_CANDIDATE=1
UDISKS_FILESYSTEM_SHARED=1
CURRENT_TAGS=:systemd:
USEC_INITIALIZED=9723750
Unload module index
Unloaded link configuration context.
It can be seen here that the custom udev rule in 99-my-modem.rules is being loaded
Any help will be appreciated.