Hallo,
ich wollte heute meinen Raspberry neu installieren, da die SD-Karte ihren Dienst quittiert hat.
Nun habe ich die Schnittstelle auf den Raspberry 3 aufgesteckt und das aktuelle Image von Onkelandy auf eine neue SD-Karte kopiert.
Dann bin ich nach folgender Anleitung vorgegangen.
Jedoch bekomme ich beim Schritt "Die Infos von der Schnittstelle holen mit:
keine Ausgabe.
Wenn ich stattdessen "sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*" eingebe bekomme ich die Ausgabe:
Dabei sollte der Kernel doch eine *.uart - Schnittstelle sein.
Was mache ich falsch?
Gruß und danke Manuel
ich wollte heute meinen Raspberry neu installieren, da die SD-Karte ihren Dienst quittiert hat.
Nun habe ich die Schnittstelle auf den Raspberry 3 aufgesteckt und das aktuelle Image von Onkelandy auf eine neue SD-Karte kopiert.
Dann bin ich nach folgender Anleitung vorgegangen.
Code:
sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get dist-upgrade sudo rpi-update sudo raspi-config ##### Die serielle Console entfernen: Advanced Options -> Serial -> No. sudo reboot sudo nano /boot/cmdline.txt #####"console=tty1" sudo nano /boot/config.txt ### "enable_uart=1" & "dtoverlay=pi3-disable-bt" ändern und einfügen sudo systemctl disable hciuart ### Modem deaktivieren sudo reboot sudo ls -al /dev/ttyA* ### Die Ausgabe muss ungefähr so aussehen: crw-rw---- 1 root dialout 204, 64 Sep 12 12:38 /dev/ttyAMA0 ###Danach: sudo usermod -aG dialout smarthome sudo usermod -aG dialout admin sudo usermod -aG dialout pi sudo usermod -aG dialout knxd ###Jetzt können die user smarthome, pi,admin und knxd auch auf die Schnittstelle zugreifen. ####Ein paar Infos über die Schnittstelle holen sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*uart ####Die Ausgabe muss ungefähr so aussehen: KERNELS=="3f201000.uart" sudo udevadm info -a /dev/ttyAMA0 | grep \{id\} ####Die Ausgabe muss ungefähr so aussehen: ATTRS{id}=="00241011" ####Die beiden Informationen notieren oder das putty Fenster nicht schließen ####Jetzt das udev File für das knx interface bearbeiten: Code: sudo nano /etc/udev/rules.d/70-knxd.rules hier gibt es eine Zeile pro knx-interface Die Zeile muss auf das folgende abgeändert werden Code: ACTION=="add", SUBSYSTEM=="tty", ATTRS{id}=="00241011", KERNELS=="3f201000.uart", SYMLINK+="ttyKNX1", OWNER="knxd" Es ist wichtig, daß die KERNELS== and the ATTRS{id}== Einträge genau denen aus Eurer Abfrage von oben entsprechen. Nach dem Reboot müsstet ihr eine Schnittstelle /dev/ttyAMA0 haben, deren Besitzer knxd ist, sie hat einen Link /dev/ttyKNX1, der für knxd genutzt werden kann --layer2:tpuarts:/dev/ttyKNX1 Code: ls -ahl /dev/ttyKNX1 Code: lrwxrwxrwx 1 root root 7 Mär 19 21:36 /dev/ttyKNX1 -> ttyAMA0 Code: ls -ahl /dev/ttyAMA0 Code: crw-rw---- 1 knxd dialout 204, 64 Apr 3 21:22 /dev/ttyAMA0 Bei mir sehen die Parameter in der /etc/knxd.conf wie folgt aus: Code: KNXD_OPTS="-DTRS -t 0xffc -f 9 -b tpuarts:/dev/ttyKNX1" Bei dir ersetzt du tpuarts durch ft12. Mach zur Sicherheit noch mal einen Reboot und dann guck mal, ob die beiden Dienste laufen: Code: sudo systemctl status knxd.service -l sudo systemctl status knxd.socket -l
Code:
sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*uart
Wenn ich stattdessen "sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*" eingebe bekomme ich die Ausgabe:
Code:
KERNELS=="3f201000.serial" KERNELS=="soc" KERNELS=="platform"
Was mache ich falsch?
Gruß und danke Manuel
Kommentar