Inbetriebnahme eBus Schaltung Rpi Platine V2.2 / RasPi 3B / bullseye / ttyebus

Begonnen von TomLee, 03 Juni 2024, 15:20:15

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

bisher nutze ich einen Raspi B mit dem Adapter, das klappt jetzt schon mehr als 5 Jahre einwandfrei.
Auf einen Raspi 3B mag ich jetzt umstellen.

Ich scheitere beim umleiten von UART und MINI Uart und weiß da jetzt nicht weiter:

Zitat von: Reinhart am 19 Februar 2018, 19:38:23
(nur) beim Raspi3 zunächst den UART und MINI Uart umleiten:
Code Auswählen Erweitern
sudo apt-get update sudo apt-get -y upgrade
sudo apt-get install raspberrypi-kernel-headers
cd ~ git clone https://github.com/ebus/ttyebus.git
cd ~/ttyebus make
sudo make install
lsmod modinfo ttyebus

pi@ebusunifi:~ $ git clone https://github.com/ebus/ttyebus.git
Klone nach 'ttyebus' ...
remote: Enumerating objects: 93, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 93 (delta 1), reused 2 (delta 0), pack-reused 84
Empfange Objekte: 100% (93/93), 41.36 KiB | 2.76 MiB/s, fertig.
Löse Unterschiede auf: 100% (31/31), fertig.
pi@ebusunifi:~ $ cd ttyebus
pi@ebusunifi:~/ttyebus $ make
make -C /lib/modules/6.1.21-v8+/build M=/home/pi/ttyebus modules
make[1]: Verzeichnis ,,/usr/src/linux-headers-6.1.21-v8+" wird betreten
  CC [M]  /home/pi/ttyebus/ttyebusm.o
/home/pi/ttyebus/ttyebusm.c: In function 'ttyebus_raspi_model':
/home/pi/ttyebus/ttyebusm.c:805:5: error: unknown type name 'mm_segment_t'
  805 |     mm_segment_t old_fs = get_fs();
      |     ^~~~~~~~~~~~
/home/pi/ttyebus/ttyebusm.c:805:27: error: implicit declaration of function 'get_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
  805 |     mm_segment_t old_fs = get_fs();
      |                           ^~~~~~
      |                           sget_fc
/home/pi/ttyebus/ttyebusm.c:806:5: error: implicit declaration of function 'set_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
  806 |     set_fs(KERNEL_DS);
      |     ^~~~~~
      |     sget_fc
/home/pi/ttyebus/ttyebusm.c:806:12: error: 'KERNEL_DS' undeclared (first use in this function); did you mean 'KERNFS_NS'?
  806 |     set_fs(KERNEL_DS);
      |            ^~~~~~~~~
      |            KERNFS_NS
/home/pi/ttyebus/ttyebusm.c:806:12: note: each undeclared identifier is reported only once for each function it appears in
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:250: /home/pi/ttyebus/ttyebusm.o] Fehler 1
make[1]: *** [Makefile:2012: /home/pi/ttyebus] Fehler 2
make[1]: Verzeichnis ,,/usr/src/linux-headers-6.1.21-v8+" wird verlassen
make: *** [Makefile:24: all] Fehler 2

Kann mit den Meldungen irgendwer was mit anfangen und mir da bitte weiterhelfen ?

Gruß

Thomas

rudolfkoenig

Ich vermute die Ursache ist auf dem Homepage (https://github.com/eBUS/ttyebus) beschrieben:

ZitatDue to changes in the interrupt handling of Raspbian, the ttyebus does no longer work with (BUSTER) Versions greater than 4.19.97. Buster V4.19.97 (February 2020) ist the last version supported. This also means: do not upgrade your running system to a newer version than this one.

TomLee

Danke für den Hinweis auf die Ursache.



Jetzt bin ich auf immer verdammt die bisherige Installation am leben zu halten ?
Die Platine ging doch auch per USB irgendwie einzubinden ? Muss ich mich wieder einlesen zu.

TomLee

Weil ich mich damit beschäftigen musste, halte ich hier mal fest, wie ich die für mich weniger gut verständliche Ebusd-Doku verstanden habe und wie ich mein System (Raspberry Pi Model B Plus) neu aufgesetzt habe.

2020-02-13-raspbian-buster-lite.img herunterladen und Image auf SD-Karte schreiben.
https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2020-02-14/

#System aktualisieren
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean

#Kernel & Header fixieren (Kernel <= 4.19.97)
sudo apt-mark hold raspberrypi-kernel raspberrypi-kernel-headers raspberrypi-bootloader libraspberrypi0 libraspberrypi-dev libraspberrypi-bin
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel-headers_1.20200212-1_armhf.deb
sudo dpkg -i raspberrypi-kernel-headers_1.20200212-1_armhf.deb
sudo apt-get install -f -y

#Serial Port deaktivieren
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

#ttyebus installieren ttyebus benötigt Kernel <= 4.19.97
sudo apt install git build-essential
git clone https://github.com/ebus/ttyebus.git
cd ttyebus
make
sudo make install

#ebusd installieren
sudo apt-get install ebusd libmosquitto1
EBUSDPACKAGE=ebusd-25.1_armv6l-buser_mqtt1.deb
wget https://github.com/john30/ebusd/releases/download/25.1/$EBUSDPACKAGE
sudo dpkg -i --force-overwrite $EBUSDPACKAGE


#ebusd konfigurieren
sudo nano /etc/default/ebusd
Beispielkonfiguration:
EBUSD_OPTS="-d /dev/ttyebus -p 8888 -l /var/log/ebusd.log --scanconfig --httpport=8081 --accesslevel=* --configpath=http://cfg.ebusd.eu --mqttport=1883 --mqttjson --mqtthost=192.168.188.26 --mqtttopic=ebusd/%circuit/%name --mqttuser=<user> --mqttpass=<pwd>"

#ebusd starten
sudo systemctl enable ebusd
sudo systemctl restart ebusd
systemctl status ebusd

An der Payload-Struktur hat sich zur Version 3.1 nur eine kleine Änderung ergeben: Das "Feld" "name" wurde ersetzt.

ebusd/bai/Status01 {
  (10) "temp": {"value": 59.0},
  (10) "temp_1": {"value": null},
  (10) "temp_2": {"value": 10.375},
  (10) "temp_3": {"value": 0.0},
  (10) "temp_4": {"value": 46.0},
  (10) "pumpstate": {"value": "off"}
}

Wie ich das in Zukunft mit den Konfigurationsdateien handhaben soll, wenn die Unterstützung über cfg.ebusd.eu bis Ende des Jahres eingestellt wird, ist mir noch ein Rätsel.