NEWS
Zigbee/Conbee2 funktioniert nach Update nicht mehr (udev)
-
@Thomas-Braun Bei mir tritt leider das selbe Problem auf.
Ich habe am Wochenende auf meinem PI ein apt update-upgrade durchgeführt und nach einem reboot bekommt der Zigbee-Adapter keine Verbindung mehr zum Conbee II-Stick.
Beim einem Neustart vom Zigbee-Adapter bekomme ich folgende Logeinträge.
zigbee.0 2023-05-02 21:10:07.494 error Error herdsman start zigbee.0 2023-05-02 21:10:07.493 error Failed to start Zigbee zigbee.0 2023-05-02 21:10:07.492 error Starting zigbee-herdsman problem : "Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2255878-if00'" zigbee.0 2023-05-02 21:10:07.244 info Installed Version: iobroker.zigbee@1.8.10 zigbee.0 2023-05-02 21:10:07.196 debug Starting zigbee-herdsman... zigbee.0 2023-05-02 21:10:07.195 info Starting Zigbee npm ... zigbee.0 2023-05-02 21:10:07.193 info Try to reconnect. 1 attempts left zigbee.0 2023-05-02 21:09:57.211 debug Backup /opt/iobroker/iobroker-data/zigbee_0/backup_2023_05_02-21_09_56.tar.gz success zigbee.0 2023-05-02 21:09:57.194 info Installed Version: iobroker.zigbee@1.8.10 zigbee.0 2023-05-02 21:09:57.189 error Error herdsman start zigbee.0 2023-05-02 21:09:57.188 error Failed to start Zigbee zigbee.0 2023-05-02 21:09:57.187 error Starting zigbee-herdsman problem : "Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2255878-if00'" zigbee.0 2023-05-02 21:09:56.316 debug Starting zigbee-herdsman... zigbee.0 2023-05-02 21:09:56.313 info Starting Zigbee npm ... zigbee.0 2023-05-02 21:09:56.310 info delete old Backup files. keep only last 10 zigbee.0 2023-05-02 21:09:56.206 debug Using zigbee-herdsman with settings: {"network":{"panID":6574,"extendedPanID":[175,221,221,221,221,221,221,221],"channelList":[11],"networkKey":[1,3,5,7,9,7,159,175,0,194,4,6,8,10,12,154]},"databasePath":"/opt/iobroker/iobroker-data/zigbee_0/shepherd.db","backupPath":"/opt/iobroker/iobroker-data/zigbee_0/nvbackup.json","serialPort":{"baudRate":115200,"rtscts":false,"path":"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2255878-if00","adapter":"deconz"},"adapter":{"forceStartWithInconsistentAdapterConfiguration":false}} zigbee.0 2023-05-02 21:09:56.153 info starting. Version 1.8.10 in /opt/iobroker/node_modules/iobroker.zigbee, node: v18.16.0, js-controller: 4.0.24 zigbee.0 2023-05-02 21:09:55.534 debug Plugin sentry Initialize Plugin (enabled=true) zigbee.0 2023-05-02 21:09:47.429 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason zigbee.0 2023-05-02 21:09:47.428 debug Plugin sentry destroyed zigbee.0 2023-05-02 21:09:47.427 info terminating zigbee.0 2023-05-02 21:09:47.389 info Zigbee: disabling joining new devices. zigbee.0 2023-05-02 21:09:47.361 debug DeviceAvailability:Publish LQ for 0x54ef4410003e3f2e = 0 zigbee.0 2023-05-02 21:09:47.341 debug DeviceAvailability:Publish available for 0x54ef4410003e3f2e = false zigbee.0 2023-05-02 21:09:47.296 debug DeviceAvailability:Publish LQ for 0x54ef4410003e431c = 0 zigbee.0 2023-05-02 21:09:47.285 debug DeviceAvailability:Publish available for 0x54ef4410003e431c = false zigbee.0 2023-05-02 21:09:47.276 info cleaned everything up... zigbee.0 2023-05-02 21:09:47.273 info Got terminate signal TERMINATE_YOURSELF
Zu meinem System:
======================= SUMMARY ======================= v.2023-04-16 Operatingsystem: Debian GNU/Linux 11 (bullseye) Kernel: 6.1.21-v8+ Installation: Native Timezone: Europe/Berlin (CEST, +0200) User-ID: 1000 X-Server: false Boot Target: graphical.target Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.16.0 /usr/bin/node v18.16.0 /usr/bin/npm 9.5.1 /usr/bin/npx 9.5.1 Recommended versions are nodejs 18.x.y and npm 9.x.y Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 3.8G 2.0G 119M 2.0M 1.7G 1.8G Swap: 99M 29M 70M Total: 3.9G 2.0G 190M Active iob-Instances: 25 Active repo(s): stable ioBroker Core: js-controller 4.0.24 admin 6.3.5 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin + system.adapter.web.0 : web : iobroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 16038 States: 14916 Size of iob-Database: 15M /opt/iobroker/iobroker-data/objects.jsonl 26M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
apt policy usb.ids und udev habe ich auch ausgeführt:
MaB@iobroker:~ $ apt policy usb.ids usb.ids: Installiert: (keine) Installationskandidat: 2023.01.16-0+deb11u1 Versionstabelle: 2023.01.16-0+deb11u1 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages 500 http://deb.debian.org/debian bullseye/main armhf Packages MaB@iobroker:~ $ apt policy udev udev: Installiert: 247.3-7+deb11u2 Installationskandidat: 247.3-7+deb11u2 Versionstabelle: *** 247.3-7+deb11u2 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages 100 /var/lib/dpkg/status MaB@iobroker:~ $ ls -la /dev/serial/by-id ls: Zugriff auf '/dev/serial/by-id' nicht möglich: Datei oder Verzeichnis nicht gefunden MaB@iobroker:~ $
Auch habe ich mir den Bugreport den @Marc-Berg gepostet hat angesehen. Nur fehlen mir dazu die notwendigen Linux-Kenntnisse um eine mögliche Lösung zu finden. Das einzige was ich gefunden habe ist, dass bei mir die in einem Link erwähnte Datei "60-serial.rules" leer ist.
Ich wäre dankbar wenn ihr mir weiterhelfen könnt.
Gruß Michael
-
@mandreasb Das zeigt wieder einmal wie wichtig Imagesicherungen sind. Wenn Du die Möglichkeit hast, ein Image zurückzusichern, dann würde ich wie ich halt, udev vom update ausnehmen. Ansonsten habe ich keine Lösung zum Downgrade gefunden.
-
Ich bin unterwegs und komme nicht an eine gescheite Konsole, das ich irgendwas nachstellen könnte.
So als workaround:
1.) Geh auf den direkten Gerätelink des Sticks. Wird vermutlich
/dev/ttyUSB0 oder /dev/ttyAMA0
sein.2.) Oder besorg dir die Vorversion vom Debian-Server, das müsste irgendwie herauszufinden sein, ich kann es aber jetzt nicht recherchieren.
3.) Warte ab, für gewöhnlich sind solche Regressions schnell gefixt und es kommt ein Patch über die üblichen Kanäle rein.
-
@mandreasb sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
Ich wäre dankbar wenn ihr mir weiterhelfen könnt.
du müsstest wahrscheinlich nur deine USB Zuordnung auf einen Port ändern.
-
1.) Geh auf den direkten Gerätelink des Sticks. Wird vermutlich
/dev/ttyUSB0 oder /dev/ttyAMA0
sein.zu 1 - vergiss es - hat bei mir nicht funktioniert der ganze usb war tot - auch wenn er gesagt hat, dass er an /dev/ttyACM0 zugeordnet wurde. Also habe ich gar nicht das serial by ID verwendet. - Hat alles nicht funktioniert. Seht ihr doch in der Historie des Threads
2.) Oder besorg dir die Vorversion vom Debian-Server, das müsste irgendwie herauszufinden sein, ich kann es aber jetzt nicht recherchieren.
Na das wäre wahrscheinlich die Lösung. Ich weiß nicht wie das geht - deswegen Image und dann udev auf hold gesetzt
3.) Warte ab, für gewöhnlich sind solche Regressions schnell gefixt und es kommt ein Patch über die üblichen Kanäle rein.
Na das überzeugt mich ja nicht, tage im Dunkeln zu sitzen.
-
@mickym sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
Seht ihr doch in der Historie des Threads
Bin am Handy.
-
@thomas-braun sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
Bin am Handy.
@mickym
und ich hatte irgendwo als Fazit eine Aussage von dir, dass es am serial läge -
In den Backports gibt es eine höhere Version.
https://packages.debian.org/bullseye-backports/udev
Vielleicht die mal versuchen.
Entsprechendes Repo muss angelegt werden. -
@homoran Ja das war dass ich es versucht habe zu listen: https://forum.iobroker.net/post/985493
in der Konfigurationsdatei des zigbee2mqtt war der Stick aber über /dev/ttyACM0 zugeordnet: https://forum.iobroker.net/post/985496
Und obwohl der Stick an ttyACM0 zugeordnet wurde: https://forum.iobroker.net/post/985487
war das Teil nicht mehr verfügbar und konnte nicht angesprochen werden.
Das war die Zusammenfassung des Threads.
Vielleicht sollte man den Titel ändern in
Keine Linux Updates, wenn Zigbee-Coordinator am USB Portdas ist vielleicht auffälliger. Zumindest wenn man keine Image Sicherung hat.
-
https://snapshot.debian.org/binary/udev/
suchts euch die passende Version raus...
-
@thomas-braun sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
https://snapshot.debian.org/binary/udev/
suchts euch die passende Version raus...
Das hab ich schon entdeckt - nur wüßte ich nicht wie man das installiert:
Dann kommt man zu dieser Seite:
https://snapshot.debian.org/package/systemd/247.3-7%2Bdeb11u1/#udev_247.3-7:2b:deb11u1Selbst wenn man das irgendwie downloaded kann man das nicht einfach ersetzen.
Sprich die 2 Bibliotheken gehören wohl dazu:
Die folgenden Pakete sind zurückgehalten worden: libudev-dev libudev1 udev
-
Die libs müssen dann auch in passender Version installiert werden.
-
@thomas-braun Ich hab mal das zugehörige Archiv (auf dem Top der Seite extrahiert)
changelog libnss-systemd.install shlibs.local.in systemd.maintscript udev.install control libnss-systemd.lintian-overrides source systemd.NEWS udev.links copyright libnss-systemd.postinst systemd.bug-control systemd.postinst udev.lintian-overrides extra libnss-systemd.postrm systemd.bug-script systemd.postrm udev.maintscript gbp.conf libpam-systemd.install systemd-container.install systemd.preinst udev.NEWS git-cherry-pick libpam-systemd.postinst systemd-container.lintian-overrides systemd.prerm udev.postinst libnss-myhostname.install libpam-systemd.prerm systemd-container.maintscript systemd-sysv.install udev.postrm libnss-myhostname.lintian-overrides libsystemd0.install systemd-container.postinst systemd-sysv.postinst udev.preinst libnss-myhostname.postinst libsystemd0.symbols systemd-container.postrm systemd-tests.install udev.prerm libnss-myhostname.postrm libsystemd-dev.install systemd-coredump.install systemd-tests.lintian-overrides udev.README.Debian libnss-mymachines.install libudev1.install systemd-coredump.postinst systemd-timesyncd.install udev.triggers libnss-mymachines.lintian-overrides libudev1.symbols systemd-coredump.prerm systemd-timesyncd.postinst udev-udeb.dirs libnss-mymachines.postinst libudev1-udeb.install systemd.dirs systemd-timesyncd.postrm udev-udeb.install libnss-mymachines.postrm libudev-dev.install systemd.install systemd.triggers upstream libnss-resolve.install patches systemd-journal-remote.install tests watch libnss-resolve.lintian-overrides README.Debian systemd-journal-remote.postinst udev.bug-control libnss-resolve.postinst README.source systemd.links udev.bug-script libnss-resolve.postrm rules systemd.lintian-overrides udev.init
jedoch keine Ahnung wie man daraus nun die Teile installiert.
-
Danke an alle für die Unterstützung. Ich kann erst heute Nachmittag das Ganze durchgehen.
-
@mickym sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
jedoch keine Ahnung wie man daraus nun die Teile installiert.
Zum Glück nutze ich Ubuntu Server, und bin damit nicht von diesem Problem betroffen, habe das Downgrade aber mal auf meinem Debian Testsystem durchgespielt:
wget https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/libudev1_247.3-7%2Bdeb11u1_"$(dpkg --print-architecture)".deb wget https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/libudev-dev_247.3-7%2Bdeb11u1_"$(dpkg --print-architecture)".deb wget https://snapshot.debian.org/archive/debian/20220829T032859Z/pool/main/s/systemd/udev_247.3-7%2Bdeb11u1_"$(dpkg --print-architecture)".deb sudo dpkg -i libudev1_247.3-7+deb11u1_"$(dpkg --print-architecture)".deb sudo dpkg -i libudev-dev_247.3-7+deb11u1_"$(dpkg --print-architecture)".deb sudo dpkg -i udev_247.3-7+deb11u1_"$(dpkg --print-architecture)".deb sudo apt install udev=247.3-7+deb11u1
hat es getan.
Das Ergebnis sieht dann so aus:
docker@debian11:~$ apt-cache policy udev udev: Installed: 247.3-7+deb11u1 Candidate: 247.3-7+deb11u2 Version table: 247.3-7+deb11u2 500 500 http://debian.inf.tu-dresden.de/debian bullseye/main amd64 Packages *** 247.3-7+deb11u1 100 100 /var/lib/dpkg/status
Um zu verhindern, dass beim nächsten Update die fehlerhafte Version wieder installiert wird, die Pakete auf "Hold" setzen:
sudo apt-mark hold udev sudo apt-mark hold libudev1 sudo apt-mark hold libudev-dev
Und wenn ein bereinigtes Update zur Verfügung steht, das Ganze rückgängig machen:
sudo apt-mark unhold udev sudo apt-mark unhold libudev1 sudo apt-mark unhold libudev-dev
-
@marc-berg : Das klappt bei mir nicht, weil dann noch unerfüllte Abhängigkeiten offen sind:
pi@raspberrypi-iobroker:~ $ sudo apt install udev=247.3-7+deb11u1 Paketlisten werden gelesen… Fertig Abhängigkeitsbaum wird aufgebaut… Fertig Statusinformationen werden eingelesen… Fertig udev ist schon die neueste Version (247.3-7+deb11u1). Probieren Sie »apt --fix-broken install«, um dies zu korrigieren. Die folgenden Pakete haben unerfüllte Abhängigkeiten: libudev-dev : Hängt ab von: libudev1 (= 247.3-7+deb11u2) aber 247.3-7+deb11u1 soll installiert werden E: Unerfüllte Abhängigkeiten. Versuchen Sie »apt --fix-broken install« ohne Angabe eines Pakets (oder geben Sie eine Lösung an).
libudev-dev sollte aber doch auch schon auf dem alten Stand sein?! Komisch...
Nach einem
sudo apt --fix-broken install
bin ich aber jedenfalls wieder auf dem Stand von vorher.
Da mein Zigbee aber (zumindest anscheinend) über den Pfad "/dev/ttyACM0" funktioniert, werde ich erstmal abwarten und weiter schauen. Sollte ja wahrscheinlich auch bald ein Update kommen, was dieses Problem wieder behebt.
-
@cluni sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
@marc-berg : Das klappt bei mir nicht, weil dann noch unerfüllte Abhängigkeiten offen sind:
Ich habe das Paket oben mal ergänzt. Magst du nochmals testen? Mangels Raspi kann ich das nicht selbst.
-
@marc-berg Vielen Dank für die schnelle Antwort! Jetzt scheint es zu passen:
pi@raspberrypi-iobroker:~ $ sudo apt policy udev udev: Installiert: 247.3-7+deb11u1 Installationskandidat: 247.3-7+deb11u2 Versionstabelle: 247.3-7+deb11u2 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages *** 247.3-7+deb11u1 100 100 /var/lib/dpkg/status
Nach dem reboot klappt es auch wieder mit:
pi@raspberrypi-iobroker:~ $ ls -la /dev/serial/by-id insgesamt 0 drwxr-xr-x 2 root root 80 3. Mai 10:26 . drwxr-xr-x 4 root root 80 3. Mai 10:26 .. lrwxrwxrwx 1 root root 13 3. Mai 10:26 usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2681007-if00 -> ../../ttyACM0 lrwxrwxrwx 1 root root 13 3. Mai 10:26 usb-FTDI_FT232R_USB_UART_AJ03LWMR-if00-port0 -> ../../ttyUSB0
Aber:
pi@raspberrypi-iobroker:~ $ sudo apt update OK:1 http://security.debian.org/debian-security bullseye-security InRelease OK:2 http://deb.debian.org/debian bullseye InRelease OK:3 http://deb.debian.org/debian bullseye-updates InRelease OK:4 http://archive.raspberrypi.org/debian bullseye InRelease OK:5 https://deb.nodesource.com/node_16.x bullseye InRelease OK:6 https://repos.influxdata.com/debian bullseye InRelease OK:7 https://www.pivccu.de/piVCCU stable InRelease Paketlisten werden gelesen… Fertig Abhängigkeitsbaum wird aufgebaut… Fertig Statusinformationen werden eingelesen… Fertig Aktualisierung für 3 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen. pi@raspberrypi-iobroker:~ $ sudo apt list --upgradable Auflistung… Fertig libudev-dev/stable 247.3-7+deb11u2 arm64 [aktualisierbar von: 247.3-7+deb11u1] libudev1/stable 247.3-7+deb11u2 arm64 [aktualisierbar von: 247.3-7+deb11u1] udev/stable 247.3-7+deb11u2 arm64 [aktualisierbar von: 247.3-7+deb11u1]
"sudo apt-mark hold udev" habe ich eben gemacht. Das muss doch bestimmt auch noch für die anderen Pakete gemacht werden, oder?! Und ist das normal, dass das Paket trotz hold noch angezeigt wird?
-
@cluni sagte in Warnung vor Linux update: udev/stable 247.3-7+deb11u2:
"sudo apt-mark hold udev" habe ich eben gemacht. Das muss doch bestimmt auch noch für die anderen Pakete gemacht werden, oder?! Und ist das normal, dass das Paket trotz hold noch angezeigt wird?
Ja, da verhält sich mein System etwas anders. Habe die Hold/Unholds oben ergänzt. Danke für's Testen!
-
Habe gestern den Abend zugebracht, die Lichter im Haus wieder zum leuchten zu bringen
Ich habe eine Lösung ohne Downgrade des Paketes gesucht:
Nach Update auf debian 11.7 und anschließendem reboot (wegen kernel-update) geht deconz nicht mehr, auf der Konfigurationsseite
http://192.168.x.y:81/pwa/settings-gateway2.html
wird weder Hersteller, noch Produkt oder Firmware-Version angezeigt. Der deconz-Server bekommt also keine Verbindung zum ConBeeII-Stick.
Ursache
- Update von udev/stable 247.3-7+deb11u1 auf udev/stable 247.3-7+deb11u2
- danach wird der von deconz benötigte symbolische Link nicht mehr angelegt.
ls -l /dev/serial/by-id/ insgesamt 0 drwxr-xr-x 2 root root 60 2. Mai 21:01 . drwxr-xr-x 4 root root 80 2. Mai 21:01 .. lrwxrwxrwx 1 root root 13 2. Mai 21:01 usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2252411-if00 -> ../../ttyACM0
Lösung
Die Datei
/usr/lib/udev/rules.d/60-serial.rules
mit folgendem Inhalt anlegen:
# do not edit this file, it will be overwritten on update ACTION=="remove", GOTO="serial_end" SUBSYSTEM!="tty", GOTO="serial_end" SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb" SUBSYSTEMS=="pci", ENV{ID_BUS}=="", ENV{ID_BUS}="pci", \ ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}", \ IMPORT{builtin}="hwdb --subsystem=pci" # /dev/serial/by-path/, /dev/serial/by-id/ for USB devices KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end" SUBSYSTEMS=="usb-serial", ENV{.ID_PORT}="$attr{port_number}" IMPORT{builtin}="path_id" ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="", SYMLINK+="serial/by-path/$env{ID_PATH}" ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-path/$env{ID_PATH}-port$env{.ID_PORT}" ENV{ID_BUS}=="", GOTO="serial_end" ENV{ID_SERIAL}=="", GOTO="serial_end" ENV{ID_USB_INTERFACE_NUM}=="", GOTO="serial_end" ENV{.ID_PORT}=="", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}" ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}-port$env{.ID_PORT}" LABEL="serial_end"
Danach noch
udevadm control --reload && udevadm trigger -v
Bei mir funktioniert der trigger-Befehl nicht richtig, also einmal den ConBeeII abziehen, 10 Sekunden warten und wieder anstecken.
Danach noch
systemctl restart deconz.service
und auf der Phoscon-Konfigurationsseite (s.o.) werden wieder alle Informationen angezeigt, d.h. der deconz-Server hat wieder eine Verbindung zum ConBeeII-Stick.
Die Lösung überlebt den reboot, aber wahrscheinlich nicht das nächste Update
Vielleicht hilft es jemand...