jens-maus / RaspberryMatic

:house: A feature-rich but lightweight, buildroot-based Linux operating system alternative for your CloudFree CCU3/ELV-Charly 'homematicIP CCU' IoT smarthome central. Running as a pure virtual appliance (ProxmoxVE, Home Assistant, LXC, Docker/OCI, Kubernetes/K8s, etc.) on a dedicated embedded device (RaspberryPi, etc.) or generic x86/ARM hardware.
https://raspberrymatic.de
Apache License 2.0
1.53k stars 187 forks source link

LED des RPI-RF-MOD (auf GPIO) mit RaspberryMatic-LXC auf Pi5B (RaspberryPi-OS) bleib komplett aus #2763

Closed Baxxy13 closed 3 months ago

Baxxy13 commented 4 months ago

Describe the issue you are experiencing

Ich habe RaspberryMatic als LXC mittels install-lxc.sh auf einem Pi5B-8GB mit RaspberryPi-OS (Linux Pi5-8GB-PiOS 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux) aufgesetzt. Die Installation lief problemlos durch und auch der LXC läuft unauffällig. Was nicht geht ist die LED des RPI-RF-MOD, die bleibt in allen Situationen einfach aus.

Describe the behavior you expected

Die LED des RPI-RF-MOD sollte, wie bei RM-Installationen auf anderen Systemen, funktional sein.

Steps to reproduce the issue

  1. RM als LXC auf einem Pi5B (RaspberryPi-OS) mittels install-lxc.sh aufsetzen, RPI-RF-MOD auf GPIO
  2. LXC starten und auf die LED des RPI-RF-MOD achten, die bleibt dunkel
  3. ...

What is the version this bug report is based on?

3.75.7.20240602 - Nightly

Which base platform are you running?

lxc_arm64 (Linux Container Infrastructure, ARM64/aarch64)

Which HomeMatic/homematicIP radio module are you using?

RPI-RF-MOD

Anything in the logs that might be useful for us?

-

Additional information

Ich habe den RM-LXC mal mittels sudo lxc-destroy raspberrymatic entfernt und stattdessen piVCCU3 installiert. Damit ist die LED des RPI-RF-MOD funktional.

Baxxy13 commented 3 months ago

So, neuer Test mit Armbian auf dem Pi5B brachte das selbe Ergebnis. Mit piVCCU3 geht die LED des RPI-RF-MOD, mit dem RM-LXC nicht. root@rpi5b-armbian-test:/home/baxxy# uname -a Linux rpi5b-armbian-test 6.6.32-current-bcm2712 #1 SMP PREEMPT Mon Jun 10 19:27:04 UTC 2024 aarch64 GNU/Linux

Baxxy13 commented 3 months ago

Mir fehlt hier die Expertise um weiterzukommen. Entweder ist es ein "Rechteproblem" des LXC oder im LXC selbst stimmt was nicht.

Ich habe mir auch die LXC-Config von piVCCU3 angeschaut. https://github.com/alexreinert/piVCCU/blob/master/pivccu/host3/lxc.config

Alex nutzt aber augenscheinlich ein anderes cgroup - Konzept, so das ich hier auch nicht weiterkomme.

jens-maus commented 3 months ago

Mir fehlt hier die Expertise um weiterzukommen. Entweder ist es ein "Rechteproblem" des LXC oder im LXC selbst stimmt was nicht.

Ehrlich gesagt bin ich mir gerade nicht so sicher ob ich das mit der LED des RPI-RF-MOD in einem LXC Container unter RaspberryPiOS oder Armbian jemals getestet hatte bzw. vielleicht hab ich es auch erst einmal als nicht wichtig empfunden das die LED geht und mich auf das reine funktionieren des RPI-RF-MOD selbst beschränkt.

Ich habe mir auch die LXC-Config von piVCCU3 angeschaut. https://github.com/alexreinert/piVCCU/blob/master/pivccu/host3/lxc.config

Alex nutzt aber augenscheinlich ein anderes cgroup - Konzept, so das ich hier auch nicht weiterkomme.

Daran sollte es nicht liegen, denn wie du in der container config von RaspberryMatic sehen kannst (siehe https://github.com/jens-maus/RaspberryMatic/blob/master/scripts/install-lxc.sh#L678) sollte der container umfassende Rechte auf das Hostsystem haben. Und wenn er das RPI-RF-MOD prinzipiell zum funken nutzen kann dann sollte auch der Zugriff auf die LED prinzipiell gehen. Müsste ich mir aber noch einmal genauer anschauen...

jens-maus commented 3 months ago

@Baxxy13 Was steht denn nach einem hochgefahrenen System in der /var/hm_mode? Vor allem bzgl. der RTC interessiert mich da was da bei dir ankommt? Weil die Erkennung ob LED oder nicht LED da ist ist ja teilweise abhängig von der gefundenen rx8130 RTC clock.

Baxxy13 commented 3 months ago

Sieht jetzt für mich erstmal unauffällig aus:

root@rm-lxc-193:~# cat /var/hm_mode
HM_HMIP_ADDRESS='0xB81F62'
HM_HMIP_ADDRESS_ACTIVE='0xB81F62'
HM_HMIP_DEV='RPI-RF-MOD'
HM_HMIP_DEVNODE='/dev/raw-uart'
HM_HMIP_DEVTYPE='GPIO@1f00030000.serial'
HM_HMIP_SERIAL='98A9A57E0C'
HM_HMIP_SGTIN='3014F711A0001F98A9A57E0C'
HM_HMIP_VERSION='4.4.22'
HM_HMRF_ADDRESS='0xFF7E0C'
HM_HMRF_ADDRESS_ACTIVE='0xFF7E0C'
HM_HMRF_DEV='RPI-RF-MOD'
HM_HMRF_DEVNODE='/dev/raw-uart'
HM_HMRF_DEVTYPE='GPIO@1f00030000.serial'
HM_HMRF_SERIAL='98A9A57E0C'
HM_HMRF_VERSION='4.4.22'
HM_HOST='lxc'
HM_LED_GREEN=''
HM_LED_GREEN_MODE1='none'
HM_LED_GREEN_MODE2='heartbeat'
HM_LED_RED=''
HM_LED_RED_MODE1='timer'
HM_LED_RED_MODE2='none'
HM_LED_YELLOW=''
HM_LED_YELLOW_MODE1='none'
HM_LED_YELLOW_MODE2='none'
HM_MODE='NORMAL'
HM_RTC='rx8130'
jens-maus commented 3 months ago

Das scheint wohl was mit dem Kernel und der GPIO zuordnung sich in neueren Kernelversionen geändert zu haben. Hab die neuen GPIO pin nummern noch nicht rausgefunden die passen könnten, aber wenn man die rausfindet und hier einträgt sollte alles wieder gehen:

https://github.com/jens-maus/RaspberryMatic/blob/master/buildroot-external/overlay/base/etc/init.d/S02InitRTC#L54

Probier mal ein älteren kernel. vielleicht ist da das problem nicht, dann passt meine bisherige Analyse.

Baxxy13 commented 3 months ago

Jetzt setzt du die Latte aber wieder extrem hoch an. Ich habe erstmal keinen Plan wie ich das anstelle.

Und auch hier wieder der Verweis auf piVCCU, welches die LED problemlos ansteuert. Mein System ist so konfiguriert das ich, ohne irgendwelche Änderungen, entweder piVCCU oder den RM-LXC starten kann. Das heißt für mich erstmal kein Kernel-Problem da ich am Host-OS ja nichts ändere sondern nur LXC "A" (RM) oder LXC "B" (piVCCU) starte.

jens-maus commented 3 months ago

Dann fahr mal piVCCU hoch und geb mal bitte das hier ein beim hochgefahrenen System:

cat /sys/module/rpi_rf_mod_led/parameters/blue_gpio_pin
cat /sys/module/rpi_rf_mod_led/parameters/green_gpio_pin
cat /sys/module/rpi_rf_mod_led/parameters/red_gpio_pin

dann bekomm ich die PIN ids vielleicht darüber raus...

Vorher aber bitte mal einen frische reboot machen und das RaspberryMatic LXC noch nicht gestartet haben, sondern piVCCU quasi "frisch" starten.

Baxxy13 commented 3 months ago
# cat /sys/module/rpi_rf_mod_led/parameters/blue_gpio_pin
592#
# cat /sys/module/rpi_rf_mod_led/parameters/green_gpio_pin
591#
# cat /sys/module/rpi_rf_mod_led/parameters/red_gpio_pin
587#
Baxxy13 commented 3 months ago

So, die PIN ID's mal in S02InitRTC eingetragen und zack... "es leuchtet" bei gestartetem RM-LXC. 😀

jens-maus commented 3 months ago

Ok, kann ich ändern. kapier ich aber trotzdem nicht warum die sich auf diese Werte geändert haben?!?! Nicht das mit dem nächsten kernel update diese nummern dann wieder komplett anders sind... strange.

Baxxy13 commented 3 months ago

Hmm, das kann möglicherweise passieren. Ist halt ungünstig weil die PIN's in S02InitRTC hardcoded drin sind.

Alex geht da "dynamischer" ran... https://github.com/alexreinert/piVCCU/blob/4f70e317c23e2d86721f3b7f1d0c2d987ced59b7/pivccu/host3/start_container.sh#L28-L45

jens-maus commented 3 months ago

Ja, hatte ich auch gesehen.. muss ich mir dann als nächstes mal anschauen ob wir das auch bei RM so machen können..

jens-maus commented 2 months ago

@Baxxy13 Hab nun die LED gpio pin info sache umgestellt diese pins wie bei Alex' routinen aus dem raw-uart rauszulesen. Schau mal bitte mit dem nächsten nightly snapshot (oder via applikation meiner änderungen) ob die LED eines RPI-RF-MOD unter LXC install immer noch korrekt unter einem Pi5 bzw. Pi3 usw. weiterhin korrekt funktioniert...

Baxxy13 commented 2 months ago

Auf meinem Testsystem (Pi5B mit LXC) funktioniert die LED weiterhin, sieht also gut aus. Andere LXC-Testsysteme (Pi3/Pi4) habe ich aktuell nicht verfügbar und auch nicht so richtig Zeit eins aufzusetzen um zu testen. Hab's mir aber auf die "ToDo"-Liste geschrieben.