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