RPI5 /dev/ttyAMA0 nicht ansprechbar?

Begonnen von RappaSan, 31 Mai 2024, 21:21:09

Vorheriges Thema - Nächstes Thema

RappaSan

Bei den älteren Pi boards (zumindest bis zum 3er) war das CUL-device von locutus' add-on board über /dev/ttyAMA0@38400 erreichbar.
Bei dem Pi5-board kommt nur noch "opened", aber kein "initialized". Alle Befehle laufen ins leere.
Alle anderen Boardkomponenten laufen mittlerweile, inkl. Display.

Wie muß das define aussehen bzw. was fehlt noch zusätzlich in der config.txt?

Otto123

ich denke es ist keine Frage vom define sondern von der Vorbereitung des Systems. Das PI5 Board hat zwei UARTs AMA0 und AMA10.
Dazu kommen Änderungen in Bookworm.
Ich meine die Vorbereitung kann nach wie vor entsprechend https://wiki.fhem.de/wiki/Raspberry_Pi#Verwendung_UART_f%C3%BCr_Zusatzmodule erfolgen.
Aber bisher hat das mMn keiner ausdiskutiert und ich habe keinen PI5 :(
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Danke Otto, das ist zumindest ein Ansatz.
Den Pi5 hab ich mir auch nur angeschafft um zu sehen, was sich dort so alles getan hat außer Geschwindigkeit und Stromverbrauch  :)
Ich werde mich die nächsten Tage damit beschäftigen und berichten.

RappaSan

Bisher gibt's leider noch keine Erfolgsmeldung. Unzählige Konstellationen ausprobiert - ohne Erfolg.
Wenn ich das Board auf einen Pi3 verpflanze, klappt alles wieder auf Anhieb.
Ich muß mir überlegen, was man noch ausprobieren kann.
Hätte nicht gedacht, daß mit dem neuen Pi5 so viel umgekrempelt worden ist  >:(

Otto123

#4
ich meine irgendwo gelesen zu haben, dass es relativ einfach mit raspi-config geht, die ttyAMA0 so wie früher aussehen zu lassen.

Eine der beidem UARTs ist ja jetzt per default auf dem extra Konnektor.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Das scheint das Problem zu sein:
2024.06.01 14:53:11 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.01 14:53:20 1: Cannot init /dev/ttyAMA0, ignoring it (CUL868)

Otto123

na das Problem ist eher, das die ttyAMA0 nicht "funktioniert". Was genau hast Du für die Vorbereitung der AMA0 getan?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Was sagt denn dmesg zu dem Teil? Da müsste man doch finden können, auf welchem port es erkannt wurde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RappaSan

Ich schau mal morgen nach, ob dmesg Licht ins dunkel bringt.
Hab gerade mit einem PI3 nachgesehen, was da so auftauchen sollte, da funktioniert bookworm mit dem locutus-board ja:
 dmesg |grep ttyAMA
[    3.019460] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 99, base_baud = 0) is a PL011 rev2

RappaSan

#9
KeinE Änderung, immer die gleiche Meldung im Logfile:
2024.06.02 09:41:43 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.02 09:41:52 1: Cannot init /dev/ttyAMA10, ignoring it (CUL868)

Ausgabe dmesg:

dmesg |grep ttyAMA
[    0.011176] 107d001000.serial: ttyAMA10 at MMIO 0x107d001000 (irq = 15, base_baud = 0) is a PL011 rev2
[    0.530792] 1f00030000.serial: ttyAMA0 at MMIO 0x1f00030000 (irq = 125, base_baud = 0) is a PL011 AXI

Mittlerweile habe ich auch alle ttyAMA{0-4,10] ausprobiert.

Auszug aus der config.txt:
dtoverlay=w1-gpio

dtoverlay=disable-bt
dtoverlay=uart0
core_freq=250


Otto123

#10
Du fischst im Trüben?
Zitat von: RappaSan am 02 Juni 2024, 10:01:04dtoverlay=disable-bt
dtoverlay=uart0
Zitatdisable-bt disables the Bluetooth device and makes the first PL011 (UART0) the primary UART. You must also disable the system service that initialises the modem, so it does not connect to the UART, using sudo systemctl disable hciuart.

miniuart-bt switches the Bluetooth function to use the mini UART, and makes the first PL011 (UART0) the primary UART. Note that this may reduce the maximum usable baud rate (see mini UART limitations below). You must also set the VPU core clock to a fixed frequency using either force_turbo=1 or core_freq=250.

Muss es nicht dtparam=uart0 heissen?

Hast Du danach auch serial-getty totgelegt?
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service
Geht aber auch über raspi-config (disable serial console)

Ich kann mangels Hardware nur raten ... Und die offizielle Doku empfehlen, in den ganzen Forenbeiträgen im Internet steht ziemlich viel Halbwissen...
https://www.raspberrypi.com/documentation/computers/configuration.html

Und ich meine, da war auch noch was mit veränderten Gruppen: falls bei ls -lha /dev/ttyAMA0 was anderes als dialout steht (plugdev oder tty), musst Du den User FHEM in die passende Gruppe packen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Den system-getty kram hatte ich schon durchgeführt, auch zusätzlich per raspi-config kontrolliert.
Aus der overlays/Readme hab ich dtoverlay=uart0 und es damit probiert.
Aber egal ob dtoverlay=uart0, dtparam=uart0 oder Kombination davon - das Ergebnis bleibt gleich: Cannot init /dev/ttyAMA10, ignoring it (CUL868)
Es kommt nichts verwertbares vom CUL zurück.

Board auf den PI3 gesteckt und gestartet: Alles OK.

Otto123

#12
Zitat von: RappaSan am 02 Juni 2024, 13:03:31/dev/ttyAMA10
Das war von mir nur eine Anmerkung! Ziel ist nach wie vor die AMA0 aktivieren!
Es liegt nicht am Board und nicht am define.  ;D

Load:  dtoverlay=uart0,<param>=<val> ist nicht zum aktivieren der UART sondern zur Änderung der PIN Belegung, das wollte jetzt keiner!

Kannst Du bitte einfach mal von null an diese Schritte ausführen und die Ausgaben posten?
https://wiki.fhem.de/wiki/Raspberry_Pi#Verwendung_UART_f%C3%BCr_Zusatzmodule

und beachte bitte:
ZitatIm aktuellen RaspberryPi OS Bookworm Image ist die config.txt in den Pfad /boot/firmware gewandert.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Ich befürchte, daß ich auch das add-on board überprüfen muß. :(
Mittlerweile meldet es sich auch auf dem Pi3 nicht mehr mit dem CUL. Dann isses kein Wunder, daß der Pi5 auch nicht mitspielt.
Keine Ahnung, was da nun passiert ist.
Zum testen brauche ich aber noch Zeit, kann die Funktionen mit einem weiteren baugleichen board je nach Freizeitlage vergleichen.
Wenn's neue Erkenntnisse gibt, melde ich mich hier.

RalfRog

#14
Hallo
Als Idee um das "add-on board" von der Umsteckerei (Zerstörung?) zu entlasten - es geht ja vermutlich um das ser.-IF auf GPIO 14/15.

Wenn du evtl. einen Programmieradater (USB2ser) oder Ähnliches hast (Achtung 3,3 Volt), kannst du versuchen mit einem Terminalprogramm am PC und auf dem Raspi zu checken ob eine Verbindung zu Stande kommt und fix die verschiedenen /dev/ttyAMA* durchprobieren.
Da kannst du ohne Umsteckerei die ganzen Tests mit den verschiedenen Einstellungen versuchen - ohne FHEM rein auf OS Ebene.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Otto123

#15
geht noch einfacher: Quelle https://di-marco.net/blog/it/2020-06-06-raspberry_pi_3_4_and_0_w_serial_port_usage/
Man kann die Schnittstelle mit sich selbst testen:
1. PIN 8 und 10  zur Sicherheit mit einem Widerstand ca. 700 Ohm verbinden (Wert ziemlich egal)
2. python module serial installieren
sudo apt install python3-serial3. Script in Datei kopieren: z.B. nano serial_uart_test_TxRx.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import serial
test_string = "Test serial port ...".encode('utf-8')
port_list = ["/dev/ttyAMA10","/dev/ttyAMA0","/dev/ttyS0","/dev/ttyS1"]
for port in port_list:
  try:
    serialPort = serial.Serial(port, 9600, timeout = 2)
    print ("Serial port", port, " ready for test :")
    bytes_sent = serialPort.write(test_string)
    print ("Sended", bytes_sent, "byte")
    loopback = serialPort.read(bytes_sent)
    if loopback == test_string:
      print ("Received ",len(loopback), "bytes. Port", port,"is OK ! \n")
    else:
      print ("Received incorrect data:", loopback, "on serial part", port, "loopback \n")
    serialPort.close()
  except IOError:
    print ("Error on", port,"\n")
4. Test starten
python3 serial_uart_test_TxRx.py
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RalfRog

Zitat von: Otto123 am 02 Juni 2024, 20:08:20geht noch einfacher:
Klar  ;D  (evtl. ist das IF reserviert wenn ne Console drauf liegt oder dort Bootmeldungen kommen)

Otto hatte weiter oben schon mal die Doku zitiert - da gibt es einen Abschnitt "UART konfigurieren":
https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts

Dort heisst es:
ZitatOn the Raspberry Pi, one UART is selected to be present on GPIO 14 (transmit) and 15 (receive) - this is the primary UART. By default, this will also be the UART on which a Linux console may be present. Note that GPIO 14 is pin 8 on the GPIO header, while GPIO 15 is pin 10.

On Raspberry Pi 5, the primary UART appears on the Debug header

Wenn UART0 der Primary ist liegt er daher vermutlich nicht auf GPIO14/15 sondern als AMA10 auf dem Debug-Header. Vielleicht musst du zusätzlich noch den UART1 aktvieren, der dann auf GPIO14/15 landet.   
-> Schuss ins Blaue   "dtparam=uart1=on" in Kombination mit "dtoverlay=disable-bt"


Bzw. ein Stück weiter unten heisst es noch:
Zitat/dev/serial0 and /dev/serial1 are symbolic links which point to either /dev/ttyS0 or /dev/ttyAMA0.

On the Raspberry Pi 5, /dev/serial0 is a symbolic link that points to /dev/ttyAMA10.

Due to changes in Bookworm, /dev/serial1 does not exist by default. You can re-enable serial1 by setting the following values in config.txt:

dtparam=krnbt=off



Alles in Allem irgendwie nicht leicht zu überblicken.



FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

IPWF

Statt ttyAMA0 kann man auch mal ttyS0 oder ttyS1 probieren.
Auf manchen RPi-kompatiblen Boards klappt es damit.
FHEM auf Hardkernel ODROID-N2+ mit Ubuntu 22.04 LTS
Funkschnittstelle EnOcean

RappaSan

#18
Gute Idee, ich such den USB-Adapter mal raus. Ist irgendwo in den Tiefen des Kellers... :)
Otto's python module serial  probiere ich dann als erstes aus (weniger Sucharbeit).

RappaSan

#19
"On Raspberry Pi 5, the primary UART appears on the Debug header"
Wo soll der sein? Zwischen den beiden HDMI-Anschlüssen?

RalfRog

FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RappaSan

#21
Es sieht so aus, als wäre das addon-board unter die Räder gekommen.
Per minicom -b 38400 -o -D /dev/ttyAMA0 kommt beim V Befehl etwas zurück, aber es ist ein ziemliches durcheinander.
Andere Baudraten, Paritätswechsel oder Stopbits ändern nichts daran.
Im alten thread meinte locutus damals, das in so einem Fall der bootloader per ISP-Programmierer neu geflasht werden muß.
Also muß ich mir mit einem Arduino Nano erst mal ein solches Teil herstellen.

RalfRog

Hi
Da kommst du mit Ottos Hinweis (#15) bestimmt schneller zum Ziel (wenn nichts anderes die Schnittstelle in Beschlag nimmt).
Die Port-List probiert ja fix die relevanten /dev/tty's durch und RX/TX ist mal schnell mit nem Widerstand gebrückt.

Die Herausforderung ist vermutlich die richtigen dtparam/dtoverlay zu finden.
Beim querlesen im Forum der Raspberryseite wird  letzten Dezember beim Pi5 teilweise von Bugs in den Overlays berichtet.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RappaSan

#23
Ich hab das Board in einen funktionierenden Pi3 mit entsprechender älterer Software ausprobiert, dabei hat es sich eben herausgestellt, daß dieses add-on board keine verwertbare Kommunikation mehr bereitstellt, daher ist auch eine CUL initialisierung nicht mehr möglich.
Der minicom-check ergab nur noch Salat auf der Schnittstelle.
Das hier vorhandene 2. Board funktioniert auf gleichem Pi3 einwandfrei und liefert auch lesbare Antworten ab.
Mir ist nur rätselhaft, wie das alles passieren konnte - das Board wurde immer auf die richtigen Pins gesteckt, natührlich auch Stromlos.

RappaSan

#24
Der bootloader des ATMEGA644-chips war tatsächlich platt.
Nach erneutem flashen per Arduino Nano und mithilfe des AVRDUDESS Programms konnte ich rpiaddon.hex neu aufspielen.
Allerdings tat sich FHEM schwer mit der Einstellung  der Baudrate.
Im Log immer die Meldung:
024.06.08 09:42:55 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.08 09:43:04 1: Cannot init /dev/ttyAMA0, ignoring it (CUL868)

Ein Test mit minicom brachte auch keine lesbare Kommunikation zustande.
Erst als ich in minicom die Parameter mehrfach hin und zurück auf 38400 8N1 geschaltet habe, kam Klartext an.
minicom beendet und in FHEM nachgesehen.
Siehe da -initialized  :)

Im Log:
2024.06.08 09:58:56 0: Server started with 7 defined entities (fhem.pl:28849/2024-05-07 perl:5.036000 os:linux user:fhem pid:911)
2024.06.08 10:08:38 1: PERL WARNING: Use of uninitialized value $clock in string eq at ./FHEM/00_CUL.pm line 371.
2024.06.08 10:08:38 3: set CUL868 ITClock 250
2024.06.08 10:08:47 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.08 10:08:47 1: /dev/ttyAMA0 disconnected, waiting to reappear (CUL868)
2024.06.08 10:09:51 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.08 10:09:51 3: CUL868: Possible commands: ABbCEeFfGhIiKkLlMmNORTtUuVWXxYZz
2024.06.08 10:09:51 2: Setting CUL868 fhtid from 1034 to 1257
2024.06.08 10:09:51 1: /dev/ttyAMA0 reappeared (CUL868)

Seltsames Verhalten...

Nachtrag: Ein reboot hat alles wieder zunichte gemacht, Kommunikation ist wieder im Eimer.

Wernieman

Hört sich danach an, das die Config "hinne" ist, bzw. der GFlashSpeicher dazu. Kannst Du nochmals probieren, komplett neu zu flaschen?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

RappaSan

#26
Schon geschehen, keine Verbesserung.
Das Board auf einen Pi3 läuft dort.
Dann müßte der Pi5 eher hinne sein.
Für mich sieht:s so aus, als würde etwas die Initialisierung der Schnittstelle stören:
Setting CUL868 serial parameters to 38400,8,N,1
Cannot init /dev/ttyAMA0, ignoring it (CUL868)

Wernieman

Hast Du noch USB-Scan in FHEM drin?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Hast Du mal meinen Vorschlag aus #12 verfolgt?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

#29
@Wernieman: Du meinst initialUsbCheck? Abgeschaltet bzw. auskommentiert.
@Otto: Hab ich versucht, aber ohne positiven Effekt.

Wie schon erwähnt sieht es für mich so aus, als würde die Baudrate nicht richtig gesetzt werden können.
Hab ja wie in#24 erwähnt es einmal !! hinbekommen, daß der CUL ordentlich lesbare Antworten ablieferte - ich weiß bis heute nicht wie das gelungen ist und das Verhalten reproduziert werden kann.
Man kann in minicom auch sehen, daß da etwas geantwortet wird, aber nichts in Klartext. Daher auch die Logmeldung "Cannot init /dev/ttyAMA0, ignoring it ".

RalfRog

Zitat von: RappaSan am 10 Juni 2024, 09:18:37Hab ja wie in#24 erwähnt es einmal !! hinbekommen, daß der CUL ordentlich lesbare Antworten ablieferte - ich weiß bis heute nicht wie das gelungen ist und das Verhalten reproduziert werden kann.
Man kann in minicom auch sehen, daß da etwas geantwortet wird, aber nichts in Klartext. Daher auch die Logmeldung "Cannot init /dev/ttyAMA0, ignoring it ".

Hallo RappaSan
Heisst das, dass sowohl FHEM als auch Minicom gleichzeitig auf /dev/ttyAMA0 zugreifen?
Ich glaube nicht, dass das sinnvoll möglich ist und sich beides in die Quere kommt.

Gruß Ralf

FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RappaSan

Tut es auch. Besser erst FHEM beenden. :)
Ansonsten schien sich minicom bei dem einmalig erfolgreichen Versuch einfach davor zu klemmen.
Daher auch die Meldungen im Log:
2024.06.08 10:08:47 1: /dev/ttyAMA0 disconnected, waiting to reappear (CUL868)
2024.06.08 10:09:51 3: Setting CUL868 serial parameters to 38400,8,N,1
2024.06.08 10:09:51 3: CUL868: Possible commands: ABbCEeFfGhIiKkLlMmNORTtUuVWXxYZz
2024.06.08 10:09:51 2: Setting CUL868 fhtid from 1034 to 1257
2024.06.08 10:09:51 1: /dev/ttyAMA0 reappeared (CUL868)


Wernieman

Dann Probiere doch einfach mal, den PI ohne fhem zu booten. Dann per minicom testen .. wenn das nicht geht, ist definitiv nicht fhem schuld ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

RappaSan

Muß mal sehen, ob ich einen Widerstand für die Brückung in meiner Wühlkiste habe. :D

Otto123

Zitat von: RappaSan am 10 Juni 2024, 09:18:37@Otto: Hab ich versucht, aber ohne positiven Effekt
hast du leider nicht. Ich hatte um Ausgaben gebeten. Ohne jede Info kann doch keiner mitdenken. Ob das Board in Ordnung oder defekt ist, ist der ttyAMA0 doch völlig egal!
Wenn die Straße nicht da ist, kann man mit dem Auto nicht fahren - egal ob es intakt ist oder der Fahrer nicht weiß wie man den Motor startet.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Hab ich schon... :) 
Wenn die Ausgaben anders als in dem von dir verlinkten Beitrag wären, hätte ich diese gepostet und eventuell einen Hinweis auf das Problem.
Es ist ja auch nicht so, als würde das Board (per minicom) nicht reagieren - es kommt ein Echo zurück. Ist aber nicht lesbar und sieht aus, als wäre die Baudrate oder ein anderer serieller Parameter verdreht.
Einmal hat's ja sogar hingehauen, da konnte man die erwartbaren Antworten des CUL bekommen. Und prompt ging das Ding nach Beendigung von minicom auch per FHEM auf initialized.
Nach einem reboot war aber alles wieder hin - ohne weitere Änderungen an den Konfigurationsdateien.

Onca

Hallo Allerseits,

auch bei mir läuft es nicht wie gewünscht. Raspberry PI5 mit EnOcean board auf dem GPIO - die LED ist "on" ständiges grün. OS Bookworm aktuell.
Habe mal auf die Empfehlung von Otto123 aus #12 die Mitschrift hier:

pi@rasp5bg:~ $ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
pi@rasp5bg:~ $ apt-get clean
E: Could not open lock file /var/cache/apt/archives/lock - open (13: Permission denied)
E: Unable to lock directory /var/cache/apt/archives/
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
pi@rasp5bg:~ $ sudo apt-get clean
pi@rasp5bg:~ $ systemctl stop serial-getty@ttyAMA0.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to stop 'serial-getty@ttyAMA0.service'.
Authenticating as: ,,, (pi)
Password:
==== AUTHENTICATION COMPLETE ====
pi@rasp5bg:~ $ sudo systemctl stop serial-getty@ttyAMA0.service
pi@rasp5bg:~ $ sudo systemctl disable serial-getty@ttyAMA0.service
Unit /etc/systemd/system/serial-getty@ttyAMA0.service is masked, ignoring.
pi@rasp5bg:~ $ sudo systemctl mask serial-getty@ttyAMA0.service
pi@rasp5bg:~ $ sudo raspi-config nonint do_rgpio 0
pi@rasp5bg:~ $ config="/boot/firmware/config.txt"
# für Raspberry Pi OS vor Bookworm
# config="/boot/config.txt"
# für Ubuntu
#config="/boot/firmware/usercfg.txt"

bash -c "cat <<EOF >> $config
enable_uart=1
dtoverlay=miniuart-bt
core_freq=250
EOF"
bash: line 1: /boot/firmware/config.txt: Permission denied
pi@rasp5bg:~ $  sudo nano /boot/firmware/config.txt
pi@rasp5bg:~ $ sudo systemctl disable hciuart
pi@rasp5bg:~ $ sudo reboot

Die Prüfung ergibt eine Abweichung und zwar für  /dev/serial0 wird ttyAMA10  wird nicht ttyAMA0 gemeldet.
In Fhem die TCM_ESP3 definiert mit "ttyAMA10" bringt keine Verbesserung. Der TCM_ESP3 STATE lautet disconnected.
Die Abfrage der base ID liefert "no FD"

Hinweis: das "sudo systemctl disable hciuart" hatte ich hier gefunden https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/configuration/uart.adoc
Unter UARTS and Device tree.

Habt Ihr noch Hinweise wie das EnOcean board aktiviert werden kann.

Gruß Bernd

Otto123

#37
Hallo Bernd,
die Modifikation der config hat ja nicht funktioniert.
Zitat/boot/firmware/config.txt: Permission denied
Damit dürfte das Overlay nicht da sein und die Schnittstelle wird nicht getauscht.
Die Verwendung AMA10 ist mMn keine Alternative.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Sind die Modifikationen eventuell als user pi ausgeführt worden?
Der darf die config.txt doch bestimmt nicht verändern und diverses anderes ebenso nicht.
Ich hab mich immer als pi angemeldet, aber danach mit
sudo su
dauerhaft auf root rechte gewechselt.

Leider kann ich - im Moment zumindest nicht - mehr mitsuchen, da ich den Pi5 nur noch bis gestern zurückgeben konnte.
Jetzt versuche ich weiter Konfigurationshinweise zu finden, bevor ich zum tüfteln nochmal ein Board ordere.

Onca

Guten Morgen,


@ Otto

das mit dem  "Permission denied" hatte ich gesehen und die config.txt mittels sudo nano geändert. Z.Z. sieht diese Datei - config.txt so aus:
  GNU nano 7.2                                    /boot/firmware/config.txt *                                           
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on
dtparam=krnbt=off
# von https://www.raspberrypi.com/documentation/computers/configuration.html#secondary-uart


# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Automatically load initramfs files, if found
auto_initramfs=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

# Run as fast as firmware / board allows
arm_boost=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]
dtoverlay=uart0
dtoverlay=uart1
dtoverlay=disable-bt
#dtparam=uart0=on
enable_uart=1
core_freq=250




Das Ergebnis ist weiterhin kein connected

Internals:
  BaseID    00000000
  DEF        ESP3 /dev/ttyAMA0@57600
  DeviceName /dev/ttyAMA0@57600
  FUUID      6651c70a-f33f-5a99-4904-e2d9eeab754f8d3b
  FVERSION  00_TCM.pm:0.277860/2023-07-21
  LastID    00000000
  MODEL      ESP3
  NAME      TCM_ESP3_0
  NOTIFYDEV  global
  NR        47
  NTFY_ORDER 45-TCM_ESP3_0
  PARTIAL   
  STATE      disconnected
  TYPE      TCM
  READINGS:
    2024-06-15 13:13:07  state          disconnected
  helper:
Attributes:
  baseID    FFA12C80
  room      System
  sendInterval 0
  smartAckMailboxMax 0

Wie werde ich der Lösung näher kommen? Habt Ihr eine Idee?

Gruß

Bernd

Otto123

#40
Zitat von: Onca am 15 Juni 2024, 13:24:44dtoverlay=disable-bt
das tauscht nicht und damit  hat man nach meinem Verständnis keine AMA0:
https://www.raspberrypi.com/documentation/computers/configuration.html#primary-and-secondary-uart
und die UART10 ist am debug Connector.  :o

Edit: Wenn ich den richtig verstehe: https://www.raspberrypi.com/documentation/computers/configuration.html#raspberry-pi-5
braucht man beim PI5 die Tauscherei nicht.
Einzig diese Zeile in der config (alles andere braucht man nicht!) sollte die UART0 am GPIO Header aktivieren.
dtoverlay=uart0was die Folge dtoverlay=uart0 dtoverlay=uart1 bewirkt weiß ich nicht, wird dann die PIN Belegung überschrieben?
Zitat von: Onca am 15 Juni 2024, 13:24:44Das Ergebnis ist weiterhin kein connected
fang doch weiter "unten" an:  ;)
ls -lha /dev/ttyAMA*
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Onca

Hallo Otto,

der Test entsprechend #15 liefert dieses Ergebnis und ist damit für /dev/ttyAMA0 ok
pi@rasp5bg:~ $ python3 serial_uart_test_TxRx.py
Serial port /dev/ttyAMA10  ready for test :
Sended 20 byte
Received incorrect data: b'' on serial part /dev/ttyAMA10 loopback

Serial port /dev/ttyAMA0  ready for test :
Sended 20 byte
Received  20 bytes. Port /dev/ttyAMA0 is OK !

Serial port /dev/ttyS0  ready for test :
Sended 20 byte
Received incorrect data: b'' on serial part /dev/ttyS0 loopback

Error on /dev/ttyS1

Der Test mit ls -lha /dev/ttyAMA* liefert:

pi@rasp5bg:~ $ ls -lha /dev/ttyAMA*
crw-rw---- 1 root dialout 204, 64 Jun 16 18:52 /dev/ttyAMA0
crw-rw---- 1 root dialout 204, 74 Jun 16 18:52 /dev/ttyAMA10
pi@rasp5bg:~ $


Jetzt das Modul wieder aufgesteckt und erneut ls -lha /dev/ttyAMA* liefert wie zuvor:
pi@rasp5bg:~ $ ls -lha /dev/ttyAMA*
crw-rw---- 1 root dialout 204, 64 Jun 16 18:54 /dev/ttyAMA0
crw-rw---- 1 root dialout 204, 74 Jun 16 18:51 /dev/ttyAMA10
pi@rasp5bg:~ $

Das listing der TCM_ESP3 ist unverändert:
Internals:
   BaseID     00000000
   DEF        ESP3 /dev/ttyAMA0@57600
   DeviceName /dev/ttyAMA0@57600
   FUUID      6651c70a-f33f-5a99-4904-e2d9eeab754f8d3b
   FVERSION   00_TCM.pm:0.277860/2023-07-21
   LastID     00000000
   MODEL      ESP3
   NAME       TCM_ESP3_0
   NOTIFYDEV  global
   NR         47
   NTFY_ORDER 45-TCM_ESP3_0
   PARTIAL   
   STATE      disconnected
   TYPE       TCM
   READINGS:
     2024-06-16 18:57:32   state           disconnected
   helper:
     telegramSentTimeLast 1718557246.09208
     awaitCmdResp:
       1
Attributes:
   baseID     FFA12C80
   room       System
   sendInterval 15
   smartAckMailboxMax 1

Wir wissen jetzt das die Schnittstelle entsprechend dem Python Programm funktioniert. DAs GPIO board habe ich auf einem anderen Raspberry getestet, voll funktionsfähig, die Signale weidengesendet und empfangen.

Kann es an einem Rechteproblem liegen.? Das Fhem ist über profanier aufgesetzt a, Raspberry 5?

Vor dem Test habe ich die config.txt nach Deiner Vorgabe angepasst. Sie sieht jetzt so aus:

  GNU nano 7.2                           /boot/firmware/config.txt                                     
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on
dtparam=krnbt=off
# von https://www.raspberrypi.com/documentation/computers/configuration.html#secondary-uart


# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Automatically load initramfs files, if found
auto_initramfs=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

# Run as fast as firmware / board allows
arm_boost=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]
dtoverlay=uart0
#dtoverlay=uart1
#dtoverlay=disable-bt
#dtparam=uart0=on
enable_uart=1
core_freq=250



Gibt es noch eine Idee was die Funktion ermöglicht?

Gruß Bernd

RappaSan

Das deckt sich ziemlich gut mit meinen Erfahrungen.
Es kommt ein Echo zurück, aber leider nichts verwertbares.
Wie schon beschrieben hab ich EIN!!! einziges Mal eine korrekte Kommunikation hinbekommen (warum's da funktioniert hat - keine Ahnung), nach einem Neustart ohne jegliche weitere Änderung war alles wieder hin.

Otto123

@Onca die Ausgaben sehen eigentlich gut aus, die Kommunikation mit sich selbst funktioniert ja offenbar.
intialUsbCheck hast Du deaktiviert - vor dem FHEM Neustart?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Onca

Otto den initilUsbCheck habe ich zugefügt und deaktiviert. Das Ergebnis bleibt unverändert.

Im .log des portainer ist mir allerdings aufgefallen:

2024.06.17 14:05:06.197 1: Including fhem.cfg
2024.06.17 14:05:06.349 3: WEB: port 8083 opened
2024.06.17 14:05:06.376 2: eventTypes: loaded 335 lines from ./log/eventTypes.txt
2024.06.17 14:05:06.556 3: AptToDate (fhemServerApt) - defined
2024.06.17 14:05:06.880 3: telnetPort: port 7072 opened


2024.06.17 14:05:06.890 3: Opening TCM_ESP3_0 device /dev/ttyAMA0
2024.06.17 14:05:06.904 1: TCM_ESP3_0: Can't open /dev/ttyAMA0: No such file or directory


2024.06.17 14:05:07.287 2: EnOcean Cryptographic functions are not available.
2024.06.17 14:05:07.287 2: EnOcean XML functions available.
2024.06.17 14:05:07.289 1: Including ./log/fhem.save
2024.06.17 14:05:07.297 3: From the FHEM_GLOBALATTR environment: attr global logfile ./log/fhem-%Y-%m-%d.log
2024.06.17 14:05:07.297 3: From the FHEM_GLOBALATTR environment: attr global pidfilename ./log/fhem.pid
2024.06.17 14:05:07.298 3: From the FHEM_GLOBALATTR environment: attr global updateInBackground 1
2024.06.17 14:05:07.298 3: From the FHEM_GLOBALATTR environment: attr global nofork 0

Can't open ttyAMA0 no such file or directory

obwohl es den Eintrag im Verzeichnis /dev gibt:

crw-rw----   1 root dialout 204,  64 Jun 17 14:04 ttyAMA0
crw-rw----   1 root dialout 204,  74 Jun 17 14:04 ttyAMA10

Da ist noch einen Anpassung offen. Welche?

Gruß Bernd

Otto123

#45
Zitat von: Onca am 17 Juni 2024, 14:23:10Im .log des portainer ist mir allerdings aufgefallen:
Du arbeitest mit Docker und hast vergessen das Device zu mappen (und es zu erwähnen)?  ::)
z.B. in der docker-compose.yml
    devices:
      - /dev/ttyAMA0
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Onca

Sorry Otto,

ich war mir sicher das geschrieben zu haben mit docker und portainer. War aber in einem anderen post.
Inzwischen habe ich ehem ohne docker neu installiert auf dem Raspberry 5 und siehe da, es läuft. Im portainer ist für fhem/fhem latest nur das OS bullseye erwähnt und nicht bookworm, deshalb mache ich erstmal ohne docker weiter.

Danke für die Unterstützung

Bernd

RappaSan

Ich bin etwas verwirrt/ratlos: :o
Worauf läuft denn nun dein FHEM?
Auf einem Docker container?
Auf einem portainer(was immer das auch ist)?
Oder wie hier angefangen auf einem Pi5?
Es geht ja hier um ein mögliches Problem, die serielle Schnittstelle auf einem Pi5 wie bei den Vorgänger-Boards zu aktivieren.

Otto123

#48
Zitat von: RappaSan am 17 Juni 2024, 19:40:33Auf einem portainer(was immer das auch ist)?
das ist ein Tool ( meist auch docker Container) zur Verwaltung der Docker Container.
Auf seinem PI5 nach meinem letzten Tipp (#40) läuft die Schnittstelle offenbar.
Für den fhem Container hatte er offenbar einfach vergessen die ttyAMA0 zu mappen, deswegen lief die Schnittstelle mit python , aber das Device im fhem-Docker nicht. (#41)
Zitat von: RappaSan am 17 Juni 2024, 19:40:33Es geht ja hier um ein mögliches Problem, die serielle Schnittstelle auf einem Pi5 wie bei den Vorgänger-Boards zu aktivieren.
Für mich sieht es jetzt so aus, als ob man beim PI5 lediglich
dtoverlay=uart0in der config "/boot/firmware/config.txt" ergänzen muss  ;D

Jetzt fehlt nur noch die Wiederholung :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

RappaSan

Quod erat demonstrandum.
Das wäre ja prima, wenn's nur diese Ergänzung braucht.
Ich werde mir bei Gelegenheit noch mal einen Pi5 bestellen und dann probiere ich das aus.

Wernieman

Du hast es also im Portainer laufen, nicht nativ auf dem Rechner? Hattest Du minicom auch im Portainer oder nativ laufen? Was sagt denn das kern.log?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

RappaSan

Meinst du mich? :o
Wie kommst du darauf? Ich wußte ja noch nicht mal, was ein portainer ist.
Ich hatte einen Pi5 nativ laufen mit Rpi bookworm, neueste Version (alle updates).