Bei meinen Lenovos und unter Debian 13 fragt man das über CLI folgendermassen ab:
# cat /proc/acpi/button/lid/LID/state state: closed
Donnerstag, 9. Juli 2026
Bei meinen Lenovos und unter Debian 13 fragt man das über CLI folgendermassen ab:
# cat /proc/acpi/button/lid/LID/state state: closed
Dienstag, 25. November 2025
Monit läuft auf all meinen Linux-Servern. Unter anderem überwache ich damit das Syslog nach /dev/sdX Einträgen, um rechtzeitig von Problemen meiner SSD-Festplatten zu erfahren.
Vor zwei Tagen schlug der Alarm an:
Nov 24 00:31:34 OPENVPNXX fstrim[1879609]: /: 6.3 GiB (6755426304 bytes) trimmed on /dev/sda1
Was ist das denn jetzt? Wieso wird meine SSD „getrimmt“, und was ist das überhaupt?
Nach einigen Recherchen im Netz war klar: Das brauche ich nicht. Nach ein paar weiteren Recherchen war weiter klar, wie man das abstellt:
# systemctl disable fstrim.timer
Fettich.
Sonntag, 9. November 2025
Für mich kein Problem, seit ich alle meine Server täglich mittels rsync auf drei georedundante Synology NAS sichere, und ich in meinen UniFi-Controllern die Option lokaler Backups aktiviert habe:
Local autobackup files are in /var/lib/unifi/autobackup. They are stored locally and not synchronized to UI.com, and not accessible in the new UI interface.
Quelle: Google AI-Antwort auf meine Suchanfrage
Auf einem Ersatzgerät eine Vanilla-Installation des UniFi-Controllers installiert, das GUI aufgerufen, und dann den etwas versteckten Link geklickt, um einen Controller mit einem bestehenden Backup wiederherzustellen. Funktionierte tadellos.
Tags: Backup, Debian, rsync, Synology, UniFi, UniFi Controller
Labels: IT
Samstag, 14. Juni 2025
Ich habe mir kürzlich über Amazon ein ZTE MF79U 4G Mobilfunkmodem gekauft. Zusätzlich dazu noch eine Digitec IoT SIM mit 0.4 MBit/s (Anbieter: digital republic), welche im Jahr mit 44 CHF zu buche schlägt.
Einsatzzweck: Out-of-band (OOB) Lösung an einem WLAN-Travelrouter einer Bekannten. Der Router verbindet sich als WLAN-Client mit einem WLAN-Netzwerk eines Drittanbieters (analog zu einem Gäste-WiFi in einem Hotel), welches quartalsweise ein neues WLAN-Passwort erhält (ja, der Anbieter ist noch nicht auf die Idee gekommen, das WLAN zu öffnen und stattdessen mit Portal-Technologie zu arbeiten, welche einzelne Clients mit Benutzernamen und Passwort authentifziert).
Ich möchte damit künftig vermeiden, dass ich vor Ort das WiFi-Kennwort anpassen gehen muss, damit sich der WLAN-Travelrouter wieder mit dem WLAN-Netzwerk der Institution verbindet.
Der Plan ist, dass künftig auf dem Travelrouter basierend auf OpenWRT über das 4G-Interface ein Reverse SSH Tunnel zu einem meiner Server geöffnet wird, über welchen ich dann aus der Ferne auf den Router und das Web-Interface zugreifen kann (meines Wissens könnte ich das Kennwort vermutlich auch auf der Kommandozeile wechseln, aber soweit bin ich noch nicht).
Gestern habe ich den USB-Stick an einem Debian-Server in Betrieb genommen. Was ich dabei gelernt habe:
Das Teil findet man sofort nach Anschluss mittels lsusb:
# lsusb ... Bus 001 Device 006: ID 19d2:1405 ZTE WCDMA Technologies MSM ZTE Mobile Boardband
Die Bedeutung der Produkt-ID 1405 ist hier dokumentiert: ZTE MF 823 (Megafon M100-3) 4G Modem
1405
A communication mode in which the device has a wikipedia:USB communications device class interface in addition to the card reader interface. Communications Device Class (CDC) should work in Linux. The cdc_ether kernel module is required. This mode will be the one usb_modeswitch will switch the device into.
Der Stick stellt auch ein Block-Device (Speicher) zur Verfügung; das ist nur unter Windows nützlich, weil sich auf dem Datenträger die Treiber für den Stick finden. Clever!
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... sr0 11:0 1 6.8M 0 rom
# blkid ... /dev/sr0: BLOCK_SIZE="2048" UUID="2022-06-21-14-31-58-00" LABEL="ZTEMODEM" TYPE="iso9660" PTTYPE="mac"
Der USB-Stick spannt ein eigenes WLAN-Netzwerk auf, sobald er Strom hat. IP-Adressbereich ist 192.168.0.1/24. Die SSID und das Kennwort findet man unter der Abdeckung des Sticks, welche einem Zugang zum physischen SIM-Slot erlaubt.
Der Stick hat eine Weboberfläche unter http://192.168.0.1/, mit welcher man alle möglichen Einstellungen vornehmen kann. Das admin-Kennwort ist ebenfalls unter der Abdeckung aufgedruckt.
Ich musste meines Wissens eine Runde in der Web-Oberfläche drehen und die (bereits aktivierte) SIM-Karte einschalten, sonst hätte sich der Stick nicht mit dem Internet verbunden.
Der Clou: Verbindet man Geräte mit dem WiFi des USB-Sticks, können alle Geräte über die Mobilfunkverbindung ins Internet. Gemäss Web-Oberfläche ist die Zahl der Clients auf 10 beschränkt, diese Zahl scheint aber anpassbar zu sein.
Unter Debian wird der Stick problemlos auch als USB-basiertes Ethernet-Interface erkannt (Treiber: cdc_ether:
# lsmod | grep -i ether cdc_ether 24576 0 usbnet 57344 1 cdc_ether usbcore 348160 8 ehci_pci,usbnet,usb_storage,uvcvideo,ehci_hcd,cdc_ether,uas,uhci_hcd
# ip a ... 5: enx344b50000000:mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 34:4b:50:00:00:00 brd ff:ff:ff:ff:ff:ff
Damit man den Laptop über dieses Interface mit dem Internet verbinden kann, muss folgendes geschehen:
# dhclient enx344b50000000 -v Internet Systems Consortium DHCP Client 4.4.1 Copyright 2004-2018 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/enx344b50000000/34:4b:50:00:00:00 Sending on LPF/enx344b50000000/34:4b:50:00:00:00 Sending on Socket/fallback DHCPDISCOVER on enx344b50000000 to 255.255.255.255 port 67 interval 7 DHCPOFFER of 192.168.0.169 from 192.168.0.1 DHCPREQUEST for 192.168.0.169 on enx344b50000000 to 255.255.255.255 port 67 DHCPACK of 192.168.0.169 from 192.168.0.1 bound to 192.168.0.169 -- renewal in 38135 seconds.
Sobald der Server eine IP in der 192.168.0.1/24-Range besitzt, sollte man über dieses Interface ins Internet rauspingen können:
# ping -I enx344b50000000 1.1.1.1 PING 1.1.1.1 (1.1.1.1) from 192.168.0.169 enx344b50000000: 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=177 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=54 time=18.2 ms ^C --- 1.1.1.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 18.203/97.527/176.851/79.324 ms
Die Frage ist nun, ob diese Schritte an einem OpenWRT-Router automatisiert werden kann.
Nachteil: Der Stick selber macht NAT, und somit kann man in Double-NAT-Situationen landen. Einige Sticks scheinen einen Bridge-Mode zu besitzen, doch diese Option habe ich bei meinem Stick nicht gefunden.
Ich habe unter Linux beim rumpröbeln einige Pakete installiert, weiss aber nicht, ob das nötig gewesen wäre:
Tags: 3G, 4G, Debian, DHCP, dhcpclient, LTE, MF79U, SIM, ZTE
Labels: IT, Linux
Donnerstag, 28. März 2024
Ich plane, hier einige Blog-Artikel zum Upgrade meiner Debian Bullseye-Server auf Bookworm und dabei aufgetretenen Problemen zu veröffentlichen.
Erstes Problem: Ein Cron Job, der jede Stunde ein bash-Script aufruft, lief nach dem Upgrade nicht mehr durch.
Die Fehlermeldung:
... /usr/bin/scp: Connection closed
Auf dem Server (dem Zielsystem) wurde folgendes geloggt:
Mar 26 01:00:15 SERVER sshd[1090765]: Connection from 10.10.10.19 port 33968 on 10.10.10.102 port 22 rdomain "" Mar 26 01:00:15 SERVER sshd[1090765]: Accepted key RSA SHA256:X found at /home/cronbackup/.ssh/authorized_keys:1 Mar 26 01:00:15 SERVER sshd[1090765]: Postponed publickey for cronbackup from 10.10.10.19 port 33968 ssh2 [preauth] Mar 26 01:00:16 SERVER sshd[1090765]: Accepted key RSA SHA256:X found at /home/cronbackup/.ssh/authorized_keys:1 Mar 26 01:00:16 SERVER sshd[1090765]: Accepted publickey for cronbackup from 10.10.10.19 port 33968 ssh2: RSA SHA256:X Mar 26 01:00:16 SERVER sshd[1090765]: pam_unix(sshd:session): session opened for user cronbackup(uid=1001) by (uid=0) Mar 26 01:00:16 SERVER systemd-logind[630]: New session 1240768 of user cronbackup. Mar 26 01:00:16 SERVER systemd: pam_unix(systemd-user:session): session opened for user cronbackup(uid=1001) by (uid=0) Mar 26 01:00:16 SERVER sshd[1090765]: pam_tty_audit(sshd:session): changed status from 0 to 1 Mar 26 01:00:16 SERVER sshd[1090765]: User child is on pid 1090789 Mar 26 01:00:16 SERVER sshd[1090789]: Starting session: subsystem 'sftp' for cronbackup from 10.10.10.19 port 33968 id 0 Mar 26 01:00:16 SERVER sshd[1090789]: Close session: user cronbackup from 10.10.10.19 port 33968 id 0 Mar 26 01:00:16 SERVER sshd[1090789]: Received disconnect from 10.10.10.19 port 33968:11: disconnected by user Mar 26 01:00:16 SERVER sshd[1090789]: Disconnected from user cronbackup 10.10.10.19 port 33968 Mar 26 01:00:16 SERVER sshd[1090765]: pam_unix(sshd:session): session closed for user cronbackup Mar 26 01:00:16 SERVER sshd[1090765]: pam_tty_audit(sshd:session): restored status to 0 Mar 26 01:00:16 SERVER systemd-logind[630]: Session 1240768 logged out. Waiting for processes to exit. Mar 26 01:00:16 SERVER systemd-logind[630]: Removed session 1240768.
Nach etwas Googlen dann die Lösung:
Note: Since OpenSSH 8.8 the scp utility uses the SFTP protocol by default. The -O option must be used to use the legacy SCP protocol.
Quelle: ssh working on all devices but scp from some devices gives „Connection closed“ error
Seit ich im bash-Script das Argument -O ergänzt habe, läuft der Cron Job wieder durch.
Tags: Bookworm, Bullseye, Cron, Debian, GNU/Linux, scp
Labels: Uncategorized
Sonntag, 17. März 2024
Vor einigen Wochen spukte eine SSD in einem meiner physischen Servern. Ich entschied mich, eine neue SSD zu kaufen, den kompletten Inhalt der alten SSD auf die neue SSD zu klonen, und dann die neue SSD als neue Festplatte in den Server einzubauen (die alte SSD wanderte ins Archiv).
Als ich gestern das Debian GNU/Linux auf diesem Server aktualisierte, bemerkte Debian, dass es auf einer neuen SSD lief, und fragte mich, wo ich den GRUB Bootloader überall installieren wollte (/dev/sda, das heisst auf der Festplatte selber, plus /dev/sda1, auf der ersten (Boot-)Partition).
GRUB war natürlich bereits installiert, sonst hätte der Server nach dem SSD-Wechsel nicht gebootet — aber vermutlich war in der GRUB-Konfiguration noch die Referenz auf die alte SSD enthalten und nicht auf die neue.
Überfordert entschied ich mich wie im Dialog angeregt, den Bootloader sowohl auf /dev/sda als auch /dev/sda1 zu installieren. Das sei die sicherste Methode.
Später dann fand ich nach einer mehrminütigen Internetsuche heraus, wie ich bei einem „baugleichen“ Server hätte nachschauen können, wo der Bootloader alles installiert ist:
# debconf-show grub-pc grub2/kfreebsd_cmdline: grub2/device_map_regenerated: * grub2/linux_cmdline_default: quiet grub-pc/timeout: 5 * grub2/linux_cmdline: grub-pc/partition_description: grub2/kfreebsd_cmdline_default: quiet * grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-SanDisk_SDSSDA120G_XXXXXXXXXXXX grub-pc/install_devices_failed_upgrade: true grub2/force_efi_extra_removable: false grub-pc/disk_description: * grub-pc/install_devices: /dev/disk/by-id/ata-SanDisk_SDSSDA120G_XXXXXXXXXXXX grub-pc/kopt_extracted: false grub-pc/chainload_from_menu.lst: true grub-pc/postrm_purge_boot_grub: false grub2/update_nvram: true grub-pc/install_devices_failed: false grub-pc/install_devices_empty: false grub-pc/mixed_legacy_and_grub2: true grub-pc/hidden_timeout: false
Sprich: Nur auf /dev/sda.
Auf dem Server mit der ausgewechselten SSD schaut es nun halt leider so aus:
# debconf-show grub-pc * grub-pc/install_devices: /dev/disk/by-id/ata-KINGSTON_SA400S37480G_XXXXXXXXXXXXXXXX, /dev/disk/by-id/ata-KINGSTON_SA400S37480G_XXXXXXXXXXXXXXXX-part1 grub-pc/install_devices_empty: false grub2/force_efi_extra_removable: false grub-pc/install_devices_failed: false grub-pc/install_devices_failed_upgrade: true * grub2/linux_cmdline: grub-pc/postrm_purge_boot_grub: false grub-pc/mixed_legacy_and_grub2: true * grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-KINGSTON_SA400S37480G_XXXXXXXXXXXXXXXX, /dev/disk/by-id/ata-KINGSTON_SA400S37480G_XXXXXXXXXXXXXXXX-part1 grub-pc/timeout: 5 grub2/kfreebsd_cmdline: grub-pc/chainload_from_menu.lst: true grub2/update_nvram: true grub-pc/disk_description: grub-pc/hidden_timeout: false grub-pc/kopt_extracted: false * grub2/linux_cmdline_default: consoleblank=60 grub2/kfreebsd_cmdline_default: quiet grub-pc/partition_description:
Sprich: Man sieht, dass der Bootloader sowohl auf die Festplatte, als auch die erste Partition („part1“) installiert wird.
Tags: /dev/sda, /dev/sda1, austausch, Debian, Festplatte, GNU, grub, grub-pc, grub2, klonen, Linux, Partition, SSD
Labels: IT, Linux
Mittwoch, 2. August 2023
ACHTUNG: Wie ich erst nach der Installation von unifi-video und dem Verfassen des Blog-Beitrags realisiert habe, wurde UniFi Video eingestellt (End-of-Life EOL) (Quelle). Das Nachfolgeprodukt is UniFi Protect, welches ausschliesslich auf UniFi-Hardware läuft. Dann wird es dann wohl doch einfach eine Wyze Cam …
Momentan evaluiere ich für einen Bekannten UniFi Protect Videokameras.
Im Einführungs-Video What do I need to run Unifi Protect? (in diese Web-Seite eingebettet) zu UniFi Protect (der Produktlinie von Ubiquiti UniFi Videokameras) wird einem gesagt, dass man einen UniFi Cloud Key (UCK-G2-Plus), eine UniFi Dream Machine Pro (UDM-Pro) oder eine Ubiquiti Network Video Recorder-Appliance (UNVR) kaufen muss, um das LAN mit Network Video Recording-Fähigkeiten auszurüsten.
Ich habe aber meinen UniFi-Controller als Software-Paket auf einem Lenovo-Laptop mit Debian Bullseye laufen.
Tatsächlich ist auch ein Debian Package namens unifi-video verfügbar. Dieses lässt sich auch unter Bullseye installieren.
Entweder mit einem Bash-Script von Glenn Rietveld. Das Herunterladen von Bash-Scripts aus dem Internet und ausführen als root sagt mir aber nicht wirklich zu. Berufskrankheit.
Es geht aber auch anders, für Debianistas ganz „normal“: Mit apt-get install unifi-video. Wie man das macht, ist aber im Internet schlecht dokumentiert. Mit etwas pröbeln habe ich es soeben geschafft:
Zuerst fügt man den GPG-Key des Repositories hinzu:
# curl -fsSL http://www.ubnt.com/downloads/unifi-video/apt-3.x/unifi-video.gpg.key | apt-key add -
Anschliessend fügt man folgende Zeile in /etc/apt/sources hinzu:
... deb http://www.ubnt.com/downloads/unifi-video/apt-3.x stretch ubiquiti ...
WICHTIG: Obwohl ich bullseye am Laufen habe, kennt das Repository nur stretch. Dennoch funktioniert danach ein …
# apt-get update # apt-get install unifi-video
… problemlos.
Danach läuft das Teil auch schon:
# ps ax | grep unifi-video 3629722 ? Ss 0:00 unifi-video -cwd /usr/lib/unifi-video -user unifi-video -home /usr/lib/jvm/java-1.8.0-openjdk-amd64 -cp /usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar -pidfile /var/run/unifi-video/unifi-video.pid -procname unifi-video -Dav.tempdir=/var/cache/unifi-video -Djava.security.egd=file:/dev/./urandom -Xmx941M -Xss512K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024M -Djava.library.path=/usr/lib/unifi-video/lib -Djava.awt.headless=true -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore -Dfile.encoding=UTF-8 com.ubnt.airvision.Main start 3629724 ? Sl 0:32 unifi-video -cwd /usr/lib/unifi-video -user unifi-video -home /usr/lib/jvm/java-1.8.0-openjdk-amd64 -cp /usr/share/java/commons-daemon.jar:/usr/lib/unifi-video/lib/airvision.jar -pidfile /var/run/unifi-video/unifi-video.pid -procname unifi-video -Dav.tempdir=/var/cache/unifi-video -Djava.security.egd=file:/dev/./urandom -Xmx941M -Xss512K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024M -Djava.library.path=/usr/lib/unifi-video/lib -Djava.awt.headless=true -Djavax.net.ssl.trustStore=/usr/lib/unifi-video/data/ufv-truststore -Dfile.encoding=UTF-8 com.ubnt.airvision.Main start 3632137 ? Sl 0:05 bin/mongod --config /usr/lib/unifi-video/conf/mongodv3.0+.conf 3633173 ? Sl 0:00 bin/evostreamms /usr/lib/unifi-video/conf/evostream/config.lua
Das Web-Interface öffnet man über 1.2.3.4:7443 (https nicht vergessen, mit http klappt es nicht).
Versucht man stattdessen, anstelle von stretch das Paket für den Release bullseye herunterzuladen, erhält man folgende Fehlermeldung:
... Ign:8 https://dl.ui.com/unifi-video/apt-3.x bullseye InRelease Err:9 https://dl.ui.com/unifi-video/apt-3.x bullseye Release 404 Not Found [IP: 13.224.100.217 443] Reading package lists... Done E: The repository 'http://www.ubnt.com/downloads/unifi-video/apt-3.x bullseye Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
Konsultierte Web-Seiten:
Tags: apt, Bullseye, Debian, EOL, NVR, Stretch, Ubiquiti, UniFi Protect, unifi-video
Labels: Uncategorized
Montag, 3. Juli 2023
Nach einer Stunde debugging, USB-Stick ausstöpseln, einstöpseln und dutzende Male Firmware flashen entdecke ich endlich After a sudo apt update && sudo apt full-upgrade and a reboot deconz no longer connects to the conbee 2:
Das heute Vormittag eingespielte Debian-Update löscht /dev/serial/by-id/*. Dies verhindert offenbar, dass deCONZ Phoscon den USB-Stick findet. Das Problem erkennt man auch daran, dass folgender Befehl nichts findet:
# GCFFlasher_internal -l GCFFlasher V3_17 (c) dresden elektronik ingenieurtechnik gmbh Path | Vendor | Product | Serial | Type -----------------+--------+---------+------------+-------
Auf einem Raspberry Pi mit existierendem /dev/serial/by-id/* schaut das hingegen noch so aus:
# GCFFlasher_internal -l GCFFlasher V3_17 (c) dresden elektronik ingenieurtechnik gmbh Path | Vendor | Product | Serial | Type -----------------+--------+---------+------------+------- /dev/ttyAMA0 | 0x0000 | 0x0000 | | RaspBee /dev/ttyACM0 | 0x1CF1 | 0x0030 | DE1234567 | ConBee II
Die Lösung: In deconz.service einfach noch das USB-Device mitgeben: ExecStart=/usr/bin/deCONZ ... --dev=/dev/ttyACM0. ttyACM0 ersetzt man mit dem tatsächlichen Device (findet man mittels dmesg gleich nachdem man es eingestöpselt hat).
Danach den Service stoppen, neu starten — und dann sollte die ZigBee-Welt wieder in Ordnung sein (der Ausfall des USB-Sticks während zwölf Stunden machte es nötig, dass ich bei vielen Sensoren kurz den Knopf manuell drücken musste, um sicherzustellen, dass die Verbindung und Datenanlieferung noch funktioniert …)
Wichtig: dmesg muss den USB-Stick erkennen …
... [55209365.334638] usb 2-3: new full-speed USB device number 15 using xhci_hcd [55209365.488837] usb 2-3: New USB device found, idVendor=1cf1, idProduct=0030, bcdDevice= 1.00 [55209365.493029] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [55209365.497062] usb 2-3: Product: ConBee II [55209365.501528] usb 2-3: Manufacturer: dresden elektronik ingenieurtechnik GmbH [55209365.505835] usb 2-3: SerialNumber: DE1234567 [55209365.512617] cdc_acm 2-3:1.0: ttyACM3: USB ACM device ...
… und mit lsusb muss er auch aufgeführt sein — sonst könnte ein anderes Problem vorliegen:
... Bus 002 Device 013: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II] ...
In der Zwischenzeit hatte ich alles ausprobiert, insbesondere dutzende Male das Firmware geflashed. Hierzu habe ich die ZIP-Datei des neuesten (Beta) Release 4.0.4 von gcfflasher heruntergeladen und auf zwei Linux-PCs sowie macOS entpackt.
Um den Flasher zu kompilieren, installiert man unter Debian zuerst die benötigten Pakete (unter macOS geht’s gleich weiter zur Kompilation):
# apt-get install pkg-config build-essential libgpiod-dev
Danach kompiliert man das Binary:
./build_posix.sh
Anschliessend lädt man die neueste Firmware vom offiziellen Server in das Flasher-Verzeichnis herunter, und gibt dann unter Linux ein:
# ./GCFFlasher -d /dev/ttyACM3 -t 60 -f ./deCONZ_ConBeeII_0x26780700.bin.GCF
Unter macOS lautete der Befehl:
# ./GCFFlasher -d /dev/cu.usbmodemDE1234567 -t 60 -f ~/tmp/deCONZ_ConBeeII_0x26780700.bin.GCF
Auch hier wieder beachten, das effektive Device (unter Linux war es bei mir auf einem Laptop /dev/ttyACM0, auf dem anderen /dev/ttyACM3; unter macOS war es /dev/cu.usbmodemDE24421441) mitzugeben. Dass der Flasher richtig funktioniert, seht ihr, wenn folgende Ausgabe erscheint:
read file success: ./deCONZ_ConBeeII_0x26780700.bin.GCF (163244 bytes) flash firmware command reset done query bootloader id V1 bootloader detected (60) 100 %ding ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ done, wait validation... firmware successful written
Manchmal auch
read file success: ./deCONZ_ConBeeII_0x26780700.bin.GCF (163244 bytes) flash firmware command reset done query bootloader id V1 bootloader detected (60) bootloader syned: unlock! READY 100 %ding ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ done, wait validation... firmware successful written
Den Diskussionsforen entnehme ich zudem, dass es vorkommen kann, dass das System den USB-Stick „vergisst“. In dem Fall startet man den Firmware-Update-Befehl bevor man den USB-Stick überhaupt eingestöpselt hat. Während sich die Meldungen à la retry connect bootloader /dev/cu.usbmodemDE1234567 auf dem Bildschirm stapeln, stöpselt man den USB-Stick ein, und dann sollte das Firmware-Update umgehend beginnen.
Tags: ConBee II, Debian, deCONZ, Firmware, flashen, Phoscon
Labels: IT
Sonntag, 26. März 2023
Ich verwende monit extensiv, um viele Aspekte meines Linux-Server Fuhrparks zu überwachen.
Ein detektivischer „Sicherheitscheck“, den ich mit monit abdecke, sind Alarme zu frisch geöffneten root Sessions (der Informationssicherheits-Mensch in mir erhofft sich damit, irgendeines Tages so einen Angreifer zu entdecken):
check file su_root with path /var/log/auth.log if match "session opened for user root by" then alert
Ich kriege jedes Mal ein Email, wenn jemand eine root-Session eröffnet. Denn in auth.log findet sich dann jeweils folgender Eintrag:
Mar 26 13:33:16 localhost sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Seit einiger Zeit sind diese Emails für einige meiner Debian-Server verstummt (konkret: die x86er, während die Raspberry Pis fröhlich vor sich hermelden).
Heute machte ich mich daran, das Problem zu erforschen und zu lösen.
Erkenntnis: Die Syntax hat sich leicht geändert:
Mar 26 13:33:05 SERVER su: pam_unix(su-l:session): session opened for user root(uid=0) by mario(uid=0)
Deshalb habe ich die monit-Konfiguration angepasst:
check file su_root with path /var/log/auth.log if match "session opened for user root" then alert
Jetzt kommen die Alarme wieder …
Montag, 2. Januar 2023
Die Feiertage sind für mich auch immer der Zeitpunkt, um mal wieder so richtig aufzuräumen. Dieses Jahr — ein Jahr nach dem Umzug — war der Keller dran. Unter anderem ging es Bundesordnern mit Unterlagen seit Mitte 1990er bis 2011 an den Kragen.
Mit meinem Fujitsu ScanSnap iX 1500 wurden alle Blätter gescannt, danach lief mit ABBYY FineReader PDF for Mac die OCR-Texterkennung darüber, und schlussendlich habe ich die PDFs auf dem lokalen Laufwerk abgelegt.
Ein Ordner enthielt auch CDs und DVDs für Web-Projekte der späten 1990er und frühen 2000er. Zum Glück hatte ich mir — in weiser Voraussicht — vor einiger Zeit ein Apple SuperDrive (A1379) gekauft, welches mit USB an beliebige Computer angeschlossen werden kann.
Bevor ich also die CDs und DVDs entsorgte, wollte ich die Daten damit ebenfalls auf den lokalen Computer sichern.
Erkenntnis: Von ungefähr einem Dutzend CDs und DVDs waren alle (!) noch lesbar. Bei zwei Datenträgern motzte macOS aber, dass diese ein „nicht unterstützes Format“ aufweisen (Nachtrag: Vermutlich weil unter Mac OS 9 gebrannt).
Ich entschied mich, noch nicht aufzugeben, und das Laufwerk an einen Linux-Laptop anzuschliessen. Das war aber gar nicht so einfach: Das Laufwerk machte zwar kurz ein Geräusch, nachdem es an USB angeschlossen wurde, doch die CD wurde nicht eingezogen.
Am USB-Bus wurde das Gerät angezeigt:
# lsusb ... Bus 002 Device 011: ID 05ac:1500 Apple, Inc. SuperDrive [A1379] ...
Nach etwas Recherche dann die Lösung:
Quelle: Apple’s SuperDrive tweak for use with Linux, Use Apple’s USB SuperDrive with Linux,
Tags: Apple, CD, CD-ROM, Debian, DVD, DVD-ROM, Linux, mount, SuperDrive, umount, USB
Labels: Apple, IT