CC1101 an Docker durchreichen - Berechtigungsprobleme?

Schönen guten Abend,

ich versuche grad eines meiner Weihnachtsgeschenke zu laufen zu bringen. Ein CC1101 Modul von @pmayer.

Ich habe etliche Berechtigungsprobleme in Verbindung * mit Docker bereits lösen können. Nur komme ich nun nicht mehr weiter. Zur Zeit bekomme ich nur noch die Meldungen

12/27/19 21:05:02.784 Module HomeMatic BidCoS: TI CC110X "cc1101": Error (check) writing to register 0.
12/27/19 21:05:02.785 Module HomeMatic BidCoS: TI CC110X "cc1101": Connection to TI CC1101 closed unexpectedly... Trying to reconnect...
12/27/19 21:05:02.786 Module HomeMatic BidCoS: TI CC110X "cc1101": Error (check) writing to register 0.

Es sieht mir immer noch nach einem Berechtigungsproblem aus, nur kann ich aus den Meldungen keinen Hinweis entnehmen. Hat hier jemand eine Idee?

Ansonsten hängt an den GPIOs noch ein RaspBee.

Meine CC1101 Config:

[General]
moduleEnabled = true
centralAddress = 0xFDC736
rfKey = secret
currentRfKeyIndex = 1
processBroadcastWithAesEnabled = false


[TI CC1101 Module]
id = cc1101
default = true
deviceType = cc1100
device = /dev/spidev0.0
responseDelay = 100
interruptPin = 0
gpio1 = 25

Hallo @pino,

ist SPI auf dem SBC (ein Raspbierry Pi?) aktiviert? Wie startest du den Dockercontainer - ich nehme mal an, dass --privileged erforderlich ist?

Geh mal mit docker exec -it homegear /bin/bash in den Container und führe ls -l /dev | grep spi aus. Wie sind die Berechtigungen auf dem Gerät?

Viele Grüße

Sathya

Es ist ein Pi4. Die Container läuft auf pi:pi und die /etc/passwd und /etc/group habe ich vom Host durchgereicht, sodass der Container mit dem durchgereichten Homegear- User arbeitet. Dieser hat die identischen Rechte wie der ursprüngliche. Ansonsten arbeitet der Container mit --privileged. SPI ist aktiviert. Wenn ich wenigstens wüsste, auf was Homegear schreiben möchte, wäre mir sehr geholfen.

Wenn ich wenigstens wüsste, auf was Homegear schreiben möchte, wäre mir sehr geholfen.

Homegear schreibt auf /dev/spidev0.0. /etc/passwd und /etc/group musst du nicht durchreichen. Funktioniert es, wenn du den Container als root startest? Wie sind im Container die Berechtigungen auf /dev/spidev0.0?

Welche Einstellung hast du für interruptPin und gpio1 genommen?

@pmayer: InterruptPin und gpio1 habe ich oben angehangen. Ist wohl beim copy & paste unter die Räder gekommen.

@sathya: Schon klar, dass ich die nicht durchreichen muss, macht aber idR. einiges einfacher.

Homgear läuft als User Homegear und hat folgende Gruppenzugehörigkeiten. Diese Gruppen kommen vom Host.

root@homegear:/# groups homegear
homegear : homegear dialout spi i2c gpio

Die Berechtigungen für z.B. den GPIO25 sehen folgendermaßen aus:

root@homegear:/# ls -lha /sys/class/gpio/gpio25/
total 0
drwxrwx--- 3 root gpio    0 Dec 28 11:26 .
drwxr-xr-x 3 root root    0 Dec 28 11:26 ..
-rwxrwx--- 1 root gpio 4.0K Dec 28 11:26 active_low
lrwxrwxrwx 1 root gpio    0 Dec 28 11:26 device -> ../../../gpiochip0
-rwxrwx--- 1 root gpio 4.0K Dec 28 11:26 direction
-rwxrwx--- 1 root gpio 4.0K Dec 28 11:26 edge
drwxrwx--- 2 root gpio    0 Dec 28 11:26 power
lrwxrwxrwx 1 root gpio    0 Dec 28 11:26 subsystem -> ../../../../../../../class/gpio
-rwxrwx--- 1 root gpio 4.0K Dec 28 11:26 uevent
-rwxrwx--- 1 root gpio 4.0K Dec 28 11:26 value

/sys ist vom Host rw gemountet.

Die Berechtigungen für spidev0.0 sollten meiner Meinungen nach auch passen.

root@homegear:/# ls -l /dev | grep spi
crw-rw---- 1 homegear homegear 153,   0 Dec 28 11:47 spidev0.0
crw-rw---- 1 root     spi      153,   1 Dec 28 11:47 spidev0.1

Die Ausgabe von spidev_test. Habe ich im Container ausgeführt. Als User Homegear können die Werte ebenfalls ausgelesen werden.

root@homegear:~# ./spidev_test -D /dev/spidev0.0
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
1 Like

Hallo @pino,

ja, die Berechtigungen sehen korrekt aus. Könntest du in der main.conf logLevel einmal auf 6 setzen und das Log vom Homegearstart posten? Das zeigt dann, was über SPI gesendet und empfangen wird.

Viele Grüße

Sathya

@sathya

Hier die Logs:

12/28/19 12:21:09.590 Module HomeMatic BidCoS: TI CC110X "cc1101": Error (check) writing to register 0.
12/28/19 12:21:09.590 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: CC1100: Setting GPIO direction
12/28/19 12:21:09.590 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: CC1100: Setting GPIO edge
12/28/19 12:21:09.590 Module HomeMatic BidCoS: TI CC110X "cc1101": Connection to TI CC1101 closed unexpectedly... Trying to reconnect...
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Sending: 30
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Received: 00
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Sending: 005B
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Received: 0000
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Sending: 8000
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Received: 0000
12/28/19 12:21:09.592 Module HomeMatic BidCoS: TI CC110X "cc1101": Error (check) writing to register 0.
12/28/19 12:21:09.593 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: CC1100: Setting GPIO direction
12/28/19 12:21:09.593 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: CC1100: Setting GPIO edge
12/28/19 12:21:09.593 Module HomeMatic BidCoS: TI CC110X "cc1101": Connection to TI CC1101 closed unexpectedly... Trying to reconnect...
12/28/19 12:21:09.595 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Sending: 30
12/28/19 12:21:09.595 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Received: 00

Hallo @pino,

bitte poste das vollständige Log ab Start als Anhang :wink: - es ist möglich, das ich da Schnipsel finde, welche auf das Problem hindeuten. Es sieht aber so aus, als ginge da gar nichts. Auf jede SPI-Anfrage kommen nur Nullen zurück. Das ist auf jeden Fall kein Problem in Homegear selbst. Könntest du probieren, ob es klappt, wenn du Homegear direkt im Hostsystem installierst? Homegear lässt sich mit dpkg --purge restlos wieder entfernen. Alternativ geht natürlich auch ein zweites Image.

Könntest du einmal ein Foto posten, wie das Modul auf dem Pi steckt?

Viele Grüße

Sathya

Hier das vollständige Logfile:
homegear.zip (152,2 KB)

Und das gewünschte Bild:

Gute Idee, Probier das Modul mal ohne Docker aus. Kurz mal mit einer zweiten SD-Karte ein Image und dann Homegear installiert.

Falls das Modul dann auch nicht gehen sollte, Tausch ich dir das umgehend aus.

Direkt auf dem Host habe ich die gleichen Probleme. Ich versuche es jetzt noch einmal mit einem frischen Raspian. Nicht, dass mir das RaspBee Modul dazwischen funkt oder irgendwelche anderen Einstellungen, die ich in der Zwischenzeit verdrängt habe.

1 Like

Ich habe den Thread nicht komplett verfolgt (bin nur mobil unterwegs), aber eventuell hilft dir meine Erfahrung weiter:

Aber wenn es ohne Docker auch nicht geht, wird es wohl ein anderes Problem sein…

1 Like

@pmayer

Das RaspBee Modul ist runter, ein nacktes Raspbian Buster auf der Karte, SPI ist aktiviert, die Homegear Nightly installiert und db.sql und homematicbidcos.conf aus der “alten” Installation in die Neue umgezogen und die Logs sehen immernoch genauso aus.
Das Modul scheint ein hoffnungsloser Fall zu sein :sleepy:

12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X "cc1101": Debug: Sending: 30

12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 00
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Sending: 005B
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 0000
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Sending: 8000
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 0000
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Error (check) writing to register 0.
12/28/19 16:58:32.983 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: CC1100: Setting GPIO direction
12/28/19 16:58:32.984 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: CC1100: Setting GPIO edge
12/28/19 16:58:32.984 Module HomeMatic BidCoS: TI CC110X “cc1101”: Connection to TI CC1101 closed unexpectedly… Trying to reconnect…
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Sending: 30
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 00
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Sending: 005B
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 0000
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Sending: 8000
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: Received: 0000
12/28/19 16:58:32.985 Module HomeMatic BidCoS: TI CC110X “cc1101”: Error (check) writing to register 0.
12/28/19 16:58:32.986 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: CC1100: Setting GPIO direction
12/28/19 16:58:32.986 Module HomeMatic BidCoS: TI CC110X “cc1101”: Debug: CC1100: Setting GPIO edge
12/28/19 16:58:32.986 Module HomeMatic BidCoS: TI CC110X “cc1101”: Connection to TI CC1101 closed unexpectedly… Trying to reconnect…

Das Modul scheint ein hoffnungsloser Fall zu sein :sleepy:

Ich revidiere - ich scheine ein hoffnungsloser Fall zu sein :expressionless:

So blind wie ich kann man garnicht sein. Habe hier noch zwei Module mit dem grünen CC1101, die ich zum Test aufstecken wollte und was fiel mir auf? Ich habe das Modul daneben gesteckt. Nicht nach links oder rechts - nein ich habe nur eine Pin Reihe erwischt und die andere hing in der Luft. Jetzt läuft das Modul. Wenn man ganz genau schaut, dann erkennt man das sogar auf dem Bild. Wie gut, dass meine neue Brille Anfang des Jahres fertig sein soll :wink:

2 Likes