YAHM verliert bei Restart die Gerätenodes für HM-MOD-RPI-PCB

Einrichtung, Nutzung und Hilfe zu YAHM

Moderator: Co-Administratoren

Antworten
roland90427
Beiträge: 19
Registriert: 01.08.2016, 19:57
Wohnort: Durmersheim
Danksagung erhalten: 3 Mal

YAHM verliert bei Restart die Gerätenodes für HM-MOD-RPI-PCB

Beitrag von roland90427 » 17.07.2017, 19:34

Hallo Forum,

ein Systemupdate mit apt-get dist-upgrade auf meinem Raspi

Code: Alles auswählen

Linux raspberrypi-1 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux
hat mich gestern den ganzen Sonntag Nachmittag gekostet, weil bei Neustart der CCU2 unter YAHM alle Funk-Geräte verschwunden waren.

In /var/log/messages war bei Neustart von YAHM immer dieser Fehler zu finden:

Code: Alles auswählen

Jul 16 17:35:38 homematic-ccu2 user.crit rfd: CCU2CommController::init(): Init failed. Cannot start coprocessor application.
Jul 16 17:35:38 homematic-ccu2 user.err rfd: () CCU2CommController::setCSMACAEnabled(): Error disabling CSMA/CA.
rfd-start mit debug:

Code: Alles auswählen

/etc/init.d # /bin/rfd -f /etc/config/rfd.conf -l 0

Jul 16 17:35:28 homematic-ccu2 user.info rfd: BidCoS-Service started
Jul 16 17:35:28 homematic-ccu2 user.info rfd: XmlRpc Server is listening on TCP port 2001
Jul 16 17:35:28 homematic-ccu2 user.debug rfd: RFFirmwareManager: Registered user-deployed device firmware version 1.3 for device id 173.
Jul 16 17:35:28 homematic-ccu2 user.debug rfd: CCU2CommController::init() - Legacy initialization.
Jul 16 17:35:33 homematic-ccu2 user.debug rfd: () CCU2CommController::startCoprocessorApp(): Trying to start coprocessor application
Jul 16 17:35:33 homematic-ccu2 user.debug rfd: CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
Jul 16 17:35:33 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand()
Jul 16 17:35:33 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand() sending: fd 00 03 00 00 03 18 0a
Jul 16 17:35:35 homematic-ccu2 user.debug rfd: CCU2CommController::startCoprocessorAppThreadFunction(): Retrying to send start command
Jul 16 17:35:35 homematic-ccu2 user.debug rfd: CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
Jul 16 17:35:35 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand()
Jul 16 17:35:35 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand() sending: fd 00 03 00 01 03 9e 09
Jul 16 17:35:37 homematic-ccu2 user.debug rfd: CCU2CommController::startCoprocessorAppThreadFunction(): Retrying to send start command
Jul 16 17:35:37 homematic-ccu2 user.debug rfd: CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
Jul 16 17:35:37 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand()
Jul 16 17:35:37 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand() sending: fd 00 03 00 02 03 94 09
Jul 16 17:35:38 homematic-ccu2 user.crit rfd: CCU2CommController::init(): Init failed. Cannot start coprocessor application.
Jul 16 17:35:38 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand()
Jul 16 17:35:38 homematic-ccu2 user.debug rfd: CCU2CommController::SendSystemCommdand() sending: fd 00 04 00 03 0a 00 bd 07
Jul 16 17:35:38 homematic-ccu2 user.err rfd: () CCU2CommController::setCSMACAEnabled(): Error disabling CSMA/CA.
Seltsamerweise gab es bei der Überprüfung des Funkmoduls HM-MOD-RPI-PCB per hmlangw kein Problem und auch die Serial-Nummer wurde aus dem Funkmodul ausgelesen:

Code: Alles auswählen

root@raspberrypi-1:/opt/YAHM/share/tools/hmgw# ./hmlangw -n show -D
serial fd 3 name /dev/ttyAMA0
reset fd 4 gpio port 18
2017/07/16 19:48:38.612 <Info> SerialNumber: NEQ0231006
root@raspberrypi-1:/opt/YAHM/share/tools/hmgw# ./hmlangw -n auto -D
Read serial number NEQ0231006 from /opt/YAHM/share/tools/hmgw/serialnumber.txt
serial fd 3 name /dev/ttyAMA0
reset fd 4 gpio port 18
bidcosThread started!
keepAliveThread started!
Received 17 bytes from serial
0000: fd 00 0c 00 00 00 43 6f 5f 43 50 55 5f 42 4c 72  ......Co_CPU_BLr
0010: 51  Q
^Csigterm_handler_server SIG 2
Mir ist dann aufgefallen daß im YAHM-Container unter /dev/ alle relevanten Gerätenodes verschwunden waren. Trotz manueller Anlage dieser Nodes und Neustart YAHM war aber immer noch der gleiche Fehler mit den verschwundenen Funk-Geräten vorhanden.
Und wiederum waren alle vorher angelegten Gerätenodes verschwunden.

Das lässt sich hier in diesem Test nachvollziehen:

Code: Alles auswählen

/ # mknod -m 666 /dev/ttyAMA0 c 204 64
/ # ln -s /dev/ttyAMA0 /dev/mmd_bidcos
/ # ln -s /sys/class/gpio/gpio18/value /dev/ccu2-ic200
/ # ls -l /dev
total 4
lrwxrwxrwx    1 root     root            28 Jul 16 18:12 ccu2-ic200 -> /sys/class/gpio/gpio18/value
drwxr-xr-x    2 root     root           160 Jul 16 18:05 char
c--x--x--x    1 root     tty       136,   0 Jul 16 18:05 console
lrwxrwxrwx    1 root     root            13 Jul 16 18:05 fd -> /proc/self/fd
crw-rw-rw-    1 root     root        1,   7 Jul 16 18:05 full
-rw-r--r--    1 root     root            37 Jul 16 18:05 kmsg
srw-rw-rw-    1 root     root             0 Jul 16 18:05 log
lrwxrwxrwx    1 root     root            12 Jul 16 18:12 mmd_bidcos -> /dev/ttyAMA0
crw-rw-rw-    1 root     root        1,   3 Jul 16 18:05 null
lrwxrwxrwx    1 root     root            13 Jul 16 18:05 ptmx -> /dev/pts/ptmx
drwxr-xr-x    2 root     root             0 Jul 16 18:05 pts
crw-rw-rw-    1 root     root        1,   8 Jul 16 18:05 random
drwxr-xr-x    2 root     root            40 Jul 16 18:05 shm
lrwxrwxrwx    1 root     root            15 Jul 16 18:05 stderr -> /proc/self/fd/2
lrwxrwxrwx    1 root     root            15 Jul 16 18:05 stdin -> /proc/self/fd/0
lrwxrwxrwx    1 root     root            15 Jul 16 18:05 stdout -> /proc/self/fd/1
crw-rw-rw-    1 root     tty         5,   0 Jul 16 18:05 tty
crw--w----    1 root     root      136,   0 Jul 16 18:07 tty1
crw-rw-rw-    1 root     root      204,  64 Jul 16 18:12 ttyAMA0
crw-rw-rw-    1 root     root        1,   9 Jul 16 18:05 urandom
crw-rw-rw-    1 root     root        1,   5 Jul 16 18:05 zero
/ # exit
Leaving LXC container, your are now on your host system
pi@raspberrypi-1:~ $ sudo yahm-ctl stop
Stopping yahm LXC container
pi@raspberrypi-1:~ $ sudo yahm-ctl start
Starting yahm LXC container
pi@raspberrypi-1:~ $ sudo yahm-ctl join
Joining LXC container, you are now inside yahm
/ # ls -l /dev
total 4
drwxr-xr-x    2 root     root           160 Jul 16 18:13 char
c--x--x--x    1 root     tty       136,   0 Jul 16 18:13 console
lrwxrwxrwx    1 root     root            13 Jul 16 18:13 fd -> /proc/self/fd
crw-rw-rw-    1 root     root        1,   7 Jul 16 18:13 full
-rw-r--r--    1 root     root            37 Jul 16 18:13 kmsg
srw-rw-rw-    1 root     root             0 Jul 16 18:13 log
crw-rw-rw-    1 root     root        1,   3 Jul 16 18:13 null
lrwxrwxrwx    1 root     root            13 Jul 16 18:13 ptmx -> /dev/pts/ptmx
drwxr-xr-x    2 root     root             0 Jul 16 18:13 pts
crw-rw-rw-    1 root     root        1,   8 Jul 16 18:13 random
drwxr-xr-x    2 root     root            40 Jul 16 18:13 shm
lrwxrwxrwx    1 root     root            15 Jul 16 18:13 stderr -> /proc/self/fd/2
lrwxrwxrwx    1 root     root            15 Jul 16 18:13 stdin -> /proc/self/fd/0
lrwxrwxrwx    1 root     root            15 Jul 16 18:13 stdout -> /proc/self/fd/1
crw-rw-rw-    1 root     tty         5,   0 Jul 16 18:13 tty
crw--w----    1 root     tty       136,   0 Jul 16 18:13 tty1
crw-rw-rw-    1 root     root        1,   9 Jul 16 18:13 urandom
crw-rw-rw-    1 root     root        1,   5 Jul 16 18:13 zero
/ #
Ich habe jetzt einen Workaround, welcher aber bei CCU-Versionsupgrades immer manuell im YAHM-Container in File /etc/init.d/S11mknodes anzulegen ist:

Code: Alles auswählen

/etc/init.d/S11mknodes

#!/bin/sh
#
# zwischen YAHM Stop und Start fehlende Gerätenode-Einträge in /dev/ wiederherstellen
#

case "$1" in
    start)
        mknod -m 666 /dev/ttyAMA0 c 204 64
        ln -s /dev/ttyAMA0 /dev/mmd_bidcos
        rm /dev/ccu2-ic200 2>/dev/null
        ln -s /sys/class/gpio/gpio18/value /dev/ccu2-ic200

        # Alexa VPN Tunnel zu Alexa HConnect
        mkdir -p /dev/net
        mknod /dev/net/tun c 10 200
        chmod 660 /dev/net/tun

        echo "done"
        ;;
    stop)
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
        ;;
esac
exit 0
Hat jemand eine Idee, was der Fehler ist welcher immer die Gerätenodes nach Neustart von YAHM löscht?


Viele Grüße
Roland

Antworten

Zurück zu „YAHM“