From 8f6ae29163936c144242fc940c25d0a995a311ec Mon Sep 17 00:00:00 2001 From: Nicolas Stalder Date: Tue, 12 Mar 2019 00:28:29 +0100 Subject: [PATCH 1/4] Fix ModemManager udev rule for some distros --- udev/Makefile | 8 ++++++++ udev/ModemManager-override.conf | 3 +++ 2 files changed, 11 insertions(+) create mode 100644 udev/ModemManager-override.conf diff --git a/udev/Makefile b/udev/Makefile index 7bf6961..acd6991 100644 --- a/udev/Makefile +++ b/udev/Makefile @@ -26,3 +26,11 @@ install-legacy: # install-symlinks: # sudo cp $(PWD)/71-solokeys-symlinks.rules ${RULES_PATH}/71-solokeys-symlinks.rules + +# The ID_MM_DEVICE_IGNORE tag in our udev rules are ignored +# if ModemManager is running with "strict" filter policy. +# Debian Buster for instance does this. +# One solution is to run ModemManager with "paranoid" filter policy. +paranoid-modemmanager: dropin-paranoid-modemmanager activate +dropin-paranoid-modemmanager: + test -f /usr/sbin/ModemManager && sudo cp ModemManager-override.conf /etc/systemd/system/ModemManager.service.d/override.conf diff --git a/udev/ModemManager-override.conf b/udev/ModemManager-override.conf new file mode 100644 index 0000000..7621100 --- /dev/null +++ b/udev/ModemManager-override.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=/usr/sbin/ModemManager --filter-policy=paranoid From 84d1629aa35d9d5857f6b43f03fd6c63ac2df37c Mon Sep 17 00:00:00 2001 From: Nicolas Stalder Date: Wed, 13 Mar 2019 02:25:49 +0100 Subject: [PATCH 2/4] Allow toggling between strict and paranoid ModemManager filter-policy --- udev/Makefile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/udev/Makefile b/udev/Makefile index acd6991..a1b38e2 100644 --- a/udev/Makefile +++ b/udev/Makefile @@ -10,6 +10,8 @@ setup: install activate legacy-setup: install-legacy activate + +# Symlinks can be setup, we don't officially supply any # symlinks: install-symlinks activate RULES_PATH=/etc/udev/rules.d @@ -31,6 +33,14 @@ install-legacy: # if ModemManager is running with "strict" filter policy. # Debian Buster for instance does this. # One solution is to run ModemManager with "paranoid" filter policy. -paranoid-modemmanager: dropin-paranoid-modemmanager activate +paranoid-modemmanager: dropin-paranoid-modemmanager restart-modemmanager dropin-paranoid-modemmanager: test -f /usr/sbin/ModemManager && sudo cp ModemManager-override.conf /etc/systemd/system/ModemManager.service.d/override.conf + +strict-modemmanager: dropin-strict-modemmanager restart-modemmanager +dropin-strict-modemmanager: + sudo rm -f /etc/systemd/system/ModemManager.service.d/override.conf + +restart-modemmanager: + sudo systemctl daemon-reload + sudo systemctl restart ModemManager.service From c851807376ecb80adbc34dc3993d1aa102bb6757 Mon Sep 17 00:00:00 2001 From: Nicolas Stalder Date: Fri, 22 Mar 2019 00:46:01 +0100 Subject: [PATCH 3/4] Do not advertise AT modem capabilities --- targets/stm32l432/lib/usbd/usbd_composite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/stm32l432/lib/usbd/usbd_composite.c b/targets/stm32l432/lib/usbd/usbd_composite.c index 7a3d6f1..a1a868c 100644 --- a/targets/stm32l432/lib/usbd/usbd_composite.c +++ b/targets/stm32l432/lib/usbd/usbd_composite.c @@ -110,7 +110,7 @@ __ALIGN_BEGIN uint8_t COMPOSITE_CDC_HID_DESCRIPTOR[COMPOSITE_CDC_HID_DESCRIPTOR_ 0x03, /* bNumEndpoints: 3 endpoints used */ 0x02, /* bInterfaceClass: Communication Interface Class */ 0x02, /* bInterfaceSubClass: Abstract Control Model */ - 0x01, /* bInterfaceProtocol: Common AT commands */ + 0x00, /* bInterfaceProtocol: Common AT commands */ 0x00, /* iInterface: */ /*Header Functional Descriptor*/ From 349ea5343aa3707994d1871b03506c87492264a3 Mon Sep 17 00:00:00 2001 From: Nicolas Stalder Date: Fri, 22 Mar 2019 20:01:31 +0100 Subject: [PATCH 4/4] Remove paranoid MM stuff, not signaling AT modem is enough + better --- udev/Makefile | 16 ---------------- udev/ModemManager-override.conf | 3 --- 2 files changed, 19 deletions(-) delete mode 100644 udev/ModemManager-override.conf diff --git a/udev/Makefile b/udev/Makefile index a1b38e2..e716c1b 100644 --- a/udev/Makefile +++ b/udev/Makefile @@ -28,19 +28,3 @@ install-legacy: # install-symlinks: # sudo cp $(PWD)/71-solokeys-symlinks.rules ${RULES_PATH}/71-solokeys-symlinks.rules - -# The ID_MM_DEVICE_IGNORE tag in our udev rules are ignored -# if ModemManager is running with "strict" filter policy. -# Debian Buster for instance does this. -# One solution is to run ModemManager with "paranoid" filter policy. -paranoid-modemmanager: dropin-paranoid-modemmanager restart-modemmanager -dropin-paranoid-modemmanager: - test -f /usr/sbin/ModemManager && sudo cp ModemManager-override.conf /etc/systemd/system/ModemManager.service.d/override.conf - -strict-modemmanager: dropin-strict-modemmanager restart-modemmanager -dropin-strict-modemmanager: - sudo rm -f /etc/systemd/system/ModemManager.service.d/override.conf - -restart-modemmanager: - sudo systemctl daemon-reload - sudo systemctl restart ModemManager.service diff --git a/udev/ModemManager-override.conf b/udev/ModemManager-override.conf deleted file mode 100644 index 7621100..0000000 --- a/udev/ModemManager-override.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStart= -ExecStart=/usr/sbin/ModemManager --filter-policy=paranoid