Включение последовательных сетевых устройств с ModemManager

При включении ModemManager я не вижу свой последовательный SIM808 FONA в списке доступных модемов даже при том, что я могу получить его работающий с pppd.

Если я запускаю ModemManager с service stop ModemManager && ModemManager --debug Я вижу, что это сканирует прошлые последовательные устройства при поиске модемов, но для каждого устройства я вижу:

modem-manager: (tty/ttyO4): port's parent platform driver is not whitelisted

Смотря на исходный код, я вижу, что он проверяет устройство на udev флаг ID_MM_PLATFORM_DRIVER_PROBE. Если этот флаг не будет существовать, то последовательный порт не будет просканирован. Это также проверяет на ID_MM_CANDIDATE флаг, чтобы видеть, является ли это поддерживаемый порт далее, таким образом, я знаю, что это, по крайней мере, может считать это.

Таким образом, я добавил этот флаг как новое правило в новом файле /etc/udev/rules.d/78-mm-uart4-enable.rules

ACTION=="add", KERNEL=="ttyO4", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"

После перезагрузки я вижу это в udevadm info /dev/ttyO4

P: /devices/ocp.3/481a8000.serial/tty/ttyO4
N: ttyO4
E: DEVNAME=/dev/ttyO4
E: DEVPATH=/devices/ocp.3/481a8000.serial/tty/ttyO4
E: ID_MM_CANDIDATE=1
E: ID_MM_PLATFORM_DRIVER_PROBE=1
E: MAJOR=247
E: MINOR=4
E: SUBSYSTEM=tty
E: TAGS=:systemd:
E: USEC_INITIALIZED=30104

Но я все еще получаю ту же ошибку от modem-manager даже при том, что мне ясно установили флаг. Как я добавляю в белый список ttyO4 правильно?

1
задан 29 February 2016 в 23:22

1 ответ

В исходном коде, первой проверке на ID_MM_CANDIDATE сделан на порте (т.е. /dev/ttyO4). После этого ModemManager получит устройство физической платформы (сам последовательный порт), который мы видим, /devices/ocp.3/481a800.serial, и затем проверьте это на ID_MM_PLATFORM_DRIVER_PROBE флаг.

Если вместо этого udev правило изменяется на

ACTION=="add", KERNEL=="481a800.serial", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"

затем ModemManager будет правильно видеть флаг на родительском устройстве.

# udevadm info /sys/devices/ocp.3/481a8000.serial
P: /devices/ocp.3/481a8000.serial
E: DEVPATH=/devices/ocp.3/481a8000.serial
E: DRIVER=omap_uart
E: ID_MM_PLATFORM_DRIVER_PROBE=1
E: MODALIAS=of:NserialT<NULL>Cti,omap3-uart
E: OF_COMPATIBLE_0=ti,omap3-uart
E: OF_COMPATIBLE_N=1
E: OF_FULLNAME=/ocp/serial@481a8000
E: OF_NAME=serial
E: SUBSYSTEM=platform
E: USEC_INITIALIZED=990701

Устройство теперь появляется в mmcli -L и nmcli device status.

2
ответ дан 7 December 2019 в 13:48

Другие вопросы по тегам:

Похожие вопросы: