Hinweis: HmIP-RFUSB Probleme z.B. via docker / Gerät wird nicht erkannt

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
er4z0r
Beiträge: 1
Registriert: 20.03.2021, 12:19
System: Alternative CCU (auf Basis OCCU)

Hinweis: HmIP-RFUSB Probleme z.B. via docker / Gerät wird nicht erkannt

Beitrag von er4z0r » 20.03.2021, 12:45

Hallo,

ich hab ein paar Tage gebraucht um RaspberryMatic via docker auf einem amd64 System zum Laufen zu bekommen.

Nach etwas Fehlersuche hab ich festgestellt, dass detect_radio_module keine Daten vom USB-Stick bekommt.
Das Initscript kümmert sich soweit um das Laden des Kernel-Modules cp210x, und gibt die entsprechende vendor und product-id via sysfs weiter, das tty Gerät wird angelegt und alles sollte soweit passen.

detect_radio_module konnte ich auch direkt auf meinem System ausführen und habe auch dort gemerkt, dass es keine Antwort vom Stick bekommt. Auf meinem anderen PC funktionierte das allerdings (direkt, ohne docker).

Anschließend habe ich geprüft ob irgendwas das tty Gerät blockiert oder nebenher Nonsense schreibt (z.B. modemmananger) - allerdings hab ich da nix gefunden (docker war deaktiviert, kein lsof zum Gerät und auch im Syslog stand nichts, dass beim Anlegen des Gerätes irgendwas geschrieben wurde). Beide Systeme benutzen systemd und sind an sich gleich (Gentoo ~amd64 kernel 5.11.6).

Was mir aufgefallen ist, dass die Baudrate (stty -F /dev/ttyUSBx) nicht gleich war.

Ich vermute, dass detect_radio_module die Baudrate von dem Port nicht setzt und somit keine Daten abfragen konnte.

Über stty -F /dev/ttyUSBx 115200 war das Problem gelöst.

Anschließend hab ich über udev eine Regel angelegt, die sich um das tty-Gerät kümmert, Kernelmodul läd und die Baudrate setzt:

Code: Alles auswählen

# 1b1f:c020 eQ-3 Entwicklung GmbH HmIP-RFUSB

ACTION=="add", ATTRS{idVendor}=="1b1f", ATTRS{idProduct}=="c020", RUN+="/sbin/modprobe cp210x" RUN+="/bin/sh -c 'echo 1b1f c020 > /sys/bus/usb-serial/drivers/cp210x/new_id'"
ACTION=="add", DRIVERS=="cp210x", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1f", ATTRS{idProduct}=="c020", SYMLINK+="ttyHMIP", RUN+="/sbin/stty -F /dev/%k 115200"
Aus meiner Sicht wäre es ohnehin sinvoller auch bei RaspberryMatic das Handling der Geräte über udev zu machen und nicht via shell-script die Geräteinfos selber auszuwerten.

Vieleicht hilft dieser Post ja jemanden, der das selbe Problem hat.

VG

Antworten

Zurück zu „RaspberryMatic“