#systemd

27 posts · Last used 5d

Back to Timeline
agowa338
@agowa338@chaos.social · 5d ago
Why does the critical-path of my #NixOS startup say that the graphical.target depends on (indirectly) bluetooth device coming up which is apparently being waited for by sound.target which for whatever reason is needed by DNS (systemd-resolved.service). And what is this shit why does apparently my entire system depend on bluetooth.service? What did I misconfigure that #NixOS generated such a shitty dependency graph?!? #Nix #systemd #wtf
0
0
0
linuxnews
@linuxnews@social.anoxinon.de · Jun 11, 2026
1
0
2
kernel-error.de
@kernel-error.de@www.kernel-error.de · Jun 08, 2026

ADS-B-Feeder, Teil 2: der NTP-Bug in fr24feed ist in 1.0.57 gefixt, nur anders als gedacht

Der NTP-Bug in fr24feed, der meinen ADS-B-Feeder wochenlang offline gehalten hat, ist in 1.0.57 endlich weg. Flightradar24 hat den kaputten NTP-Client nicht repariert, sondern rausgeworfen und die Zeitsynchronisation an systemd-timesyncd übergeben. Hover or focus to reveal Sensitive
Im ersten Teil dieser kleinen ADS-B-Saga hatte ich am Ende eine Sache offen gelassen und sie sogar fett in die Was-noch-kommt-Liste geschrieben: MLAT aktivieren, sobald Flightradar24 den NTP-Bug fixt. Heute ist es soweit. Der Fix ist da, er kam mit Version 1.0.57, und er kam ganz anders als ich erwartet hätte. Statt den kaputten NTP-Client zu reparieren, hat FR24 ihn einfach rausgeworfen. Wer den ersten Teil noch nicht kennt, holt das am besten kurz nach: Eigener ADS-B Feeder: Flugzeuge tracken mit Raspberry Pi, RTL-SDR und selbstgebauter Antenne. Dort steht das komplette Setup, die selbstgebaute Antenne und eben die Geschichte mit dem NTP-Bug, der meinen Feeder über Wochen am Online-Gehen gehindert hat. Den Bug selbst erkläre ich hier nur noch in ein paar Sätzen, die lange Version steht drüben. Worum es ging, ganz kurz Seit Version 1.0.55 hatte der fr24feed-Daemon einen internen NTP-Client, der schlicht nichts tat. Kein einziges Paket auf Port 123, also keine Zeitsynchronisation, und ohne synchronisierte Zeit lässt FR24 den Feeder nicht online gehen. Man hängt in einer Endlosschleife aus Failed to synchronize fest und kommt nie über dieses Sync-Gate hinaus. Mein Workaround war die letzte funktionierende Version 1.0.54 mit apt-mark hold festzunageln und auf einen Fix zu warten. Im März hatte ich FR24 einen Bug-Report mit strace- und tcpdump-Belegen geschickt. Die Antwort von Muazzam aus dem Support: auf ihrer Seite nicht reproduzierbar, Verdacht auf eine Regression durchs Build-System und nicht durch eine Änderung am NTP-Client selbst. Ich blieb hartnäckig, lieferte am 6. Juni eine syscall-genaue A/B-Analyse nach, und am 8. Juni kam die erlösende Mail (Ticket #741092): „should be fixed in v 57 which will be released later today“. War es dann auch, noch am selben Tag lag 1.0.57-1 im Repo. Warum ich nicht einfach apt upgrade tippe fr24feed ist closed-source, proprietär, kein GitHub, keine Quellen. Ich kann ein Release also nicht am Code beurteilen, sondern nur an seinem Verhalten. Und ein blindes Upgrade auf dem laufenden Produktiv-Feeder kam nicht in Frage. Wenn 1.0.57 genauso kaputt gewesen wäre wie 1.0.56, hätte ich mir den Feeder zerschossen und müsste erst wieder zurückrollen, bevor überhaupt wieder Daten fliessen. Die saubere Variante: das Binary aus dem .deb extrahieren und als isolierte Wegwerf-Instanz gegen eine Wegwerf-Config unter strace laufen lassen. Eigener Fake-Key, ein toter Receiver-Port, der echte Feeder läuft dabei unberührt weiter. Erst wenn der Testlauf sauber durchkommt, fasse ich die Produktion an. Der Testaufbau, eine Wegwerf-Instanz unter strace Die Test-Config ist bewusst minimal gehalten. Sie muss nur weit genug kommen, dass der Feeder die Zeitsynchronisation versucht, alles danach interessiert für diesen Test nicht: fr24key=0123456789abcdef receiver=beast-tcp host=127.0.0.1:39999 # absichtlich toter Port, fuer die NTP-Phase egal bs=no raw=no mlat=no logmode=0 Dann sehen, ob der Pi die neue Version überhaupt schon sieht, und das Paket herunterladen ohne es zu installieren: apt-cache policy fr24feed # Installed: 1.0.54-0 # Candidate: 1.0.57-1 # 1.0.57-1 500 https://repo-feed.flightradar24.com flightradar24/raspberrypi-stable arm64 apt-get download fr24feed dpkg-deb -x fr24feed_1.0.57-1_arm64.deb extract57Erst die Toolchain vergleichen Bevor ich überhaupt gestartet habe, ein kurzer Blick in die .comment-Section der ELF-Binaries. Die verrät, mit welchem Compiler gebaut wurde, und genau das war FR24s Verdacht: readelf -p .comment extract57/usr/bin/fr24feed | grep -i gcc # GCC: (Debian 14.2.0-19) 14.2.0 1.0.57 (und 1.0.56) readelf -p .comment /usr/bin/fr24feed | grep -i gcc # GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 1.0.54 (funktioniert) Das ist der interessante Punkt: 1.0.57 ist mit derselben GCC-14-Toolchain gebaut wie das kaputte 1.0.56. „Neu kompiliert“ allein ist also noch kein Fix, sonst wäre 1.0.56 ja schon heil gewesen. Genau das machte den strace-Test erst spannend, denn ich konnte nicht aus der Versionsnummer ableiten, ob sich am Verhalten wirklich etwas geändert hat. Der Sprung von GCC 11 auf 14 plus der Distro-Wechsel von Ubuntu 22.04 auf Debian ist gross. GCC 14 ist deutlich strenger bei Undefined Behaviour und uninitialisierten Daten, und ein latenter Bug im NTP-Transmit-Pfad konnte unter GCC 11 unsichtbar bleiben und unter GCC 14 dann brechen. FR24s Build-System-Theorie war im Nachhinein also gar nicht so abwegig. Der A/B-Lauf Beide Versionen, die neue 1.0.57 und die installierte 1.0.54 als Kontrolle, laufen durch denselben Harness, auf derselben Maschine, am selben Tag. Ich tracke nur die Netzwerk-Syscalls, das reicht um zu sehen ob da etwas auf Port 123 geht: timeout -s INT 125 strace -f -tt -e trace=%network -yy -o v57_today.strace extract57/usr/bin/fr24feed --config-file=test.ini > v57_today.log 2>&1Das Ergebnis, und es überrascht Mein Abnahmekriterium war simpel formuliert: sendto auf Port 123 muss wieder feuern, dann ist der NTP-Client repariert. Das Ergebnis war eine kalte Dusche und gleichzeitig die ganze Pointe dieser Geschichte: 1.0.54 (Kontrolle)1.0.56 (kaputt)1.0.57-1 (neu)NTP sendto auf Port 1233x (eigener Client)0x0x, Client entferntSource-Address-Discoveryjajaja (Rest-Code)Zeitsync-Logoffset +0.001 sFailed to synchronizeconfirmed with timesyncdFailed-to-synchronize-Loopneinja, endlosneinKommt über das Sync-Gate?janeinjaToolchainGCC 11.4.0GCC 14.2.0GCC 14.2.0 Über den gesamten 125-Sekunden-Lauf von 1.0.57 hinweg gab es kein einziges Paket auf Port 123. Null. Genau wie beim kaputten 1.0.56. Nach meinem ursprünglichen Kriterium hätte ich das Release durchfallen lassen müssen. Und trotzdem war der Bug weg. Der entscheidende Hinweis steht eine Zeile vorher im Log: [time][i]Time synchronization confirmed with timesyncd [feed][i]Downloading configuration [main][i]Feed Network client started [feed][d]Fetching configuration [feed][e]Result: failure, message: Not found, check your key! Der einzige Fehler im ganzen Testlauf ist „check your key!“, und der ist erwartet, weil meine Test-Config absichtlich den Fake-Key 0123… benutzt. Das heisst: der Feeder läuft komplett durch bis zur Feed-Registrierung. Genau vor diesem Punkt hingen 1.0.55 und 1.0.56 endlos in ihrer Sync-Schleife fest. Bug also weg, nur eben nicht so, wie ich gedacht hatte. Zum Vergleich der Beweis aus dem 1.0.54-Kontrolllauf, wo der eigene NTP-Client noch feuert. Hier sieht man das sendto auf Port 123 schwarz auf weiss: sendto(5, "33...", 48, 0, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("85.10.204.50")}, 16) = 48 [time][i]Time synchronized correctly, offset +0.001 secondsPragmatischer Workaround statt echtem Fix Was FR24 gemacht hat, ist kein Reparieren des NTP-Clients, sondern ein Umgehen des Problems auf Architektur-Ebene. Der kaputte interne Client ist raus, übrig geblieben ist nur noch etwas Rest-Code für die Source-Address-Discovery. Die eigentliche Zeitsynchronisation delegiert der Feeder jetzt an systemd-timesyncd, also an den NTP-Dienst des Betriebssystems. Statt selbst Pakete auf Port 123 zu schicken, fragt er das OS einfach: ist deine Zeit synchron? Und wenn ja, geht es weiter. Ehrlich gesagt finde ich das eine vernünftige Entscheidung. Ein eigener NTP-Client in einer Feeder-Software war ohnehin Reinventing the Wheel, das Betriebssystem kann das besser und macht es sowieso schon. Dass der eigentliche Bug damit nie wirklich gefunden wurde, ist aus Ingenieurssicht ein kleiner Wermutstropfen, aber für den Anwender zählt nur, dass der Feeder läuft. Und das tut er. Das Upgrade mit Sicherheitsnetz Erst nachdem der Testlauf sauber durch war, ging es an die Produktion. Vorher noch das alte Paket und die Config wegsichern, damit ein Rollback jederzeit ein Einzeiler bleibt: cp /var/cache/apt/archives/fr24feed_1.0.54-0_arm64.deb /tmp/fr24test/rollback/ sudo cp /etc/fr24feed.ini /etc/fr24feed.ini.bak-20260608-161113 sudo apt-mark unhold fr24feed sudo apt-get install -y --only-upgrade fr24feed # 1.0.54-0 auf 1.0.57-1 # Stolperstein: das Paket STOPPT den Dienst beim Upgrade, startet ihn aber nicht neu sudo systemctl start fr24feed # Wieder pinnen, jetzt auf die verifiziert gute Version sudo apt-mark hold fr24feed Der Stolperstein mit dem nicht neu gestarteten Dienst ist eine Kleinigkeit, kostet aber Nerven wenn man es nicht weiss und sich wundert warum der Feeder nach dem Upgrade tot ist. Ein systemctl start später lief alles. Die Verifikation kam aus der monitor.json und dem Journal: "build_version":"1.0.57-1" "feed_status":"connected" "feed_num_ac_tracked":"92" [time][i]Time synchronization confirmed with timesyncd [reader][i]Timestamp source changed from UNKNOWN to SYSTEM-VALIDATED [feed][n]connected via UDP (fd 6) [feed][n]working [feed][i]sent 46,0 AC feed_status: connected und 92 getrackte Flugzeuge. Nach Wochen auf der festgenagelten 1.0.54 ist der Feeder endlich wieder auf einer aktuellen Version und kommt sauber über das Sync-Gate. Genau das wollte ich. Die Kehrseite, eine neue Abhängigkeit Wer einen eigenen Feeder betreibt, sollte das hier auf dem Schirm haben: 1.0.57 spricht selbst kein NTP mehr, also braucht es jetzt einen laufenden NTP-Dienst im Betriebssystem. Auf dem Standard-Pi24-Image ist das systemd-timesyncd, und damit funktioniert es out of the box. Kurz prüfen schadet trotzdem nicht: systemctl is-active systemd-timesyncd # active timedatectl show -p NTPSynchronized # NTPSynchronized=yes Wer timesyncd oder chrony bewusst deaktiviert hat, oder ein abgespecktes Image ganz ohne NTP-Daemon fährt, könnte mit 1.0.57 jetzt ein neues Sync-Problem bekommen. Das ist der Preis des pragmatischen Fixes: FR24 hat die Verantwortung fürs Zeit-Setzen ans OS abgegeben, und damit muss das OS sie auch wahrnehmen. Bonus-Fund: 1.0.57 bringt native GPS-Unterstützung Beim Stöbern im neuen Binary ist mir noch etwas aufgefallen, das für die MLAT-Frage aus Teil 1 hochinteressant ist: 1.0.57 bringt einen PositioningNmeaDecoder und eine ganze Reihe neuer gps--Direktiven mit. Das könnte heissen, dass sich der VK-162 endlich für das MLAT-Timing nutzen lässt, das ja bislang auf NOT-PERMITTED stand. strings /usr/bin/fr24feed | grep -oE 'gps-[a-z-]+' | sort -u # gps-altitude gps-antenna-connected gps-base-timestamp gps-ip gps-latitude # gps-longitude gps-mode gps-status gps-time ... # Welcher gps-mode-Wert ist gueltig? Durchprobiert: # gps-mode=serial -> [e]Unsupported gps-mode=serial! # gps-mode=nmea -> akzeptiert (einziger gueltiger Wert) So weit, so vielversprechend. Mit gps-mode=nmea plus mlat-without-gps=no öffnet das Binary dann aber /dev/ttyACM0 nicht selbst, sondern loggt nur stoisch: [main][i]Waiting for GPS time An der Hardware liegt es nicht, die liefert nachweislich einen sauberen Fix mit 9 Satelliten, parallel mitgelesen: $GPGGA,161727.00,5034.69002,N,00656.93035,E,1,09,0.86,384.0,M,... # Fix, 9 Sat, 384 m Meine vorsichtige Interpretation, und das ist ausdrücklich nur eine Vermutung: 1.0.57 erwartet die NMEA-Daten offenbar gepusht, also entweder über die Beast- und Decoder-Strecke oder über eine Netzwerkquelle per gps-ip, und nicht über ein direktes Serial-Open des Dongles. Die genaue Verdrahtung ist für ein brandneues Release noch undokumentiert. Auf der Produktion rate ich da bewusst nicht herum. Ich habe FR24 stattdessen direkt nach der korrekten fr24feed.ini-Verdrahtung für einen seriell angeschlossenen NMEA-GPS gefragt, also welche Schlüssel zu gps-mode gehören, Device-Pfad, Baudrate und so weiter. Sobald die Antwort da ist, gibt es vielleicht einen dritten Teil mit MLAT. Schade, aber besser undokumentiert offen lassen als die Produktion mit Raten zerlegen. Fazit, und die eigentliche Lehre Die schönste Lektion steckt nicht in der Versionsnummer, sondern in meinem Abnahmekriterium. Ich war so auf den einen Syscall fixiert, dass ich beinahe das richtige Ergebnis als Fehlschlag abgehakt hätte. sendto auf Port 123 war nie das eigentliche Ziel, das war nur die zufällige Art, wie 1.0.54 die Zeit synchronisiert hat. Das richtige Erfolgskriterium war die ganze Zeit ein anderes: kommt der Feeder über das Sync-Gate, ja oder nein. Ein bestimmter Syscall ist Mittel zum Zweck, nicht der Zweck selbst. Wer Verhalten testet statt Implementierung, läuft seltener in so eine Falle. FR24 bekommt von mir Lob für die schnelle Reaktion am Ende und einen pragmatischen Fix, der das Problem zuverlässig erledigt. Ein kleiner Kritikpunkt bleibt, dass der eigentliche Bug nie gefunden wurde, sondern nur umgangen. Aber Hand aufs Herz: ein funktionierender Feeder ist mir lieber als ein vollständig aufgeklärter, der nicht läuft. Mein Beitrag war am Ende vor allem die Reproduktion auf genau der arm64-Hardware, die FR24 im März nicht zum Fehler bringen konnte. Dass der Fix jetzt auf eben dieser Maschine hält, habe ich dem Support noch einmal zurückgemeldet, damit sie die Regression sauber abschliessen können. Manchmal ist der wertvollste Teil eines Bug-Reports, dass man hartnäckig bleibt und sauber misst. Siehe auch: Eigener ADS-B Feeder: Flugzeuge tracken mit Raspberry Pi, RTL-SDR und selbstgebauter Antenne (Teil 1, die Vorgeschichte)Raspberry Pi als serieller Konsolenserver (noch ein Pi mit neuer Aufgabe)Billiger VGA-USB-Capture-Stick seziert: MS2109-Firmware, EDID-Hack und die 1080p-Lüge (noch eine closed-source-Hardware seziert) Betreibt ihr selbst einen FR24-Feeder und seid über den NTP-Bug gestolpert, oder habt ihr die GPS-Verdrahtung in 1.0.57 schon zum Laufen gebracht? Dann lasst es mich gerne wissen, ihr dürft mich jederzeit fragen.
0
0
10
In reply to
tubsta
@tubsta@social.bsdlab.au · May 29, 2026
1
0
0
Boosted by Zach Perlman @perlman@indieweb.social
RootMoose
@RootMoose@mastodon.bsd.cafe · May 25, 2026
I guess since the whole "Flatpak creating a dependency on systemd" bullshit has surfaced this week there has been some other conversations about systemd going on throughout the Fediverse. I've seen some oblique references to Debian making an effort to make OpenRC more viable as an alternate init system. That's about all I've gathered on my hit-n-run timeline surfing the last several days. Not sure if this is an official Debian project or just someone's wish list. Anyone have the skinny? Links to actual discussions? #Linux #Debian #systemd #OpenRC #Flatpak
2
0
4
sternengucker
@sternengucker@rollenspiel.social · May 22, 2026
An die #Linux Möger :) Ich hatte neulich gelesen, dass jemand seine Updates so konfiguriert hatte, dass sie vor dem (beim) Herunterfahren ausgeführt werden. Ich hatte mal wieder KI ausprobiert und bin gescheitert (ich *hasse* diesen Tonfall von "ja, klar, das funktioniert natürlich nicht" wenn man Rückfragen stellt). Habt ihr spontane Ideen? #cron #systemd #linuxMint
3
6
6
arad
@arad@mastodon.projetretro.io · May 21, 2026
So I guess, I will need to talk a little more. Espcially since I want to try leaving #debian #systemd since I feel like it's going to shit but #devuan is not up to the part. #alpine and #arch could be fun but they have strage #postgresql packages with missing extension and I don't have time nor patience to understand why
0
0
1
perlman
@perlman@indieweb.social · May 15, 2026
Every distribution listed here ships without systemd as the default init: https://systemdfree.com #linux #systemd
1
0
2
In reply to
JdeBP
@JdeBP@mastodonapp.uk · May 07, 2026
@eigen@mattstodon.panar.ooo To someone who has seen a lot of this over the years, it was entirely predictable. Indeed, I predicted it, less than a day before the first age dæmon (first mentioned in the very thread headed by my initial prediction), and a few days before the #systemd one. https://mastodonapp.uk/@JdeBP/116256681914302170 The next progression of events will be apologists saying that this is entirely severable from systemd, and Linux-based operating systems can patch it out of their packages; and then some desktop environment making it a mandatory dependency. I haven't been keeping track. That might have already happened. @mhoye@cosocial.ca #AgeVerification
1
0
1
lobsters
@lobsters@mastodon.social · May 03, 2026
1
0
0
In reply to
YaLTeR
@YaLTeR@mastodon.online · Jan 04, 2026
Is there any good way of moving a process into a systemd StartTransientScope together with its children? In niri we put spawned processes into scopes, so oomd and other stuff can work properly. Usually you do it by putting yourself into a scope, then exec-ing the target program. But that's a 7 ms toll on startup time, so in niri we spawn the program right away, and then put it into a scope. However, if the program forks fast enough, that child doesn't go into the scope.. #niri #linux #systemd
6
2
5
In reply to
@kkarhan@jorts.horse in linux4noobs · Apr 25, 2026
@codewizard@hear-me.social @linux4noobs@programming.dev @linux4noobs@lemmy.world #systemd is the standard and it integrates well woth modern applications. #SysVinit is the preceding standard inherited from old #Unix OSes. I recommend #BennoRice's Video as an introduction…
0
1
0
arsCynic
@arsCynic@piefed.social in linux · Apr 14, 2026

systemd(ont)

Because of the ubiquity, nay, monopoly of systemd I always assumed it was miles ahead of other init systems. Nope. I’ve been using a non-systemd environment for a while and must say I’m surprised by how little breaks, i.e., next to nothing. Moreover, boot and shutdown times are faster. I’d suggest trying it out. https://nosystemd.org/
75
107
0
askubuntu
@askubuntu@ubuntu.social · Apr 08, 2026
24.04 System files are full of illegal characters #2404 #systemd #datacorruption https://askubuntu.com/q/1565552/612
0
0
0
Boosted by hypebot @hypebot@goingdark.social
brauner
@brauner@mastodon.social · Apr 01, 2026
Age verification clearly doesn't belong into #systemd. We should have never merged this. Instead this should be incrementally added to the kernel itself. I'm doing my part: https://lore.kernel.org/all/20260401-i-hope-someone-believes-this-is-real-04f24e03944e@brauner
303
49
201
In reply to
levi
@levi@mementomori.social · Mar 26, 2026
@PeterSoukup@mastodon.social @artixlinux@fosstodon.org Because this law is not so apparently abusive as the previous laws, many projects are willing to accept it, because "it's not a big deal" but this just the first cut of the thousands of cuts to come, in order to kill #privacy If I say, would you rather have me punch you in the face or spit on you shoes? the last one doesn't seem so bad compared to the first, but i would say they're equally bad, the government only shows you option A and B, they don't show you options C, D and E. privacy has always been under attack, this is just a slightly different tactic, the excuse is the same (save the children), it's a subtle tactic. speaking of #systemd https://mementomori.social/@levi/116291559554853388
1
0
0
In reply to
JdeBP
@JdeBP@mastodonapp.uk · Mar 23, 2026
@mgorny@social.treehouse.systems Actually, even that's not deep enough. There are a couple of FediVerse people who have been talking to legislators about the forthcoming #ColoradoLaw to try to get it to not lump #Unix & clones in with the smart 'phone app stores that legislators (as can be seen from the Bill summaries and the California legislative record) thought that they were targetting. The larger context is that this is version 2.0 legislation, currently pending in 4 states of the U.S.A., after the version 1.0 legislation in Utah, Texas, & Louisiana was blocked by the federal court for the Western District of Texas in January 2026 for being unconstitutional. Louisiana's Bill makes it explicit that it is repealing and replacing the prior Act. So a version that doesn't lump Unix & clones in with the Microsoft/Google/Apple App Stores that 'App Store Accountability' nominally targets might be version 3.0. https://mastodonapp.uk/@JdeBP/116268403720368221 https://www.mofo.com/resources/insights/251111-texas-targets-app-stores-with-new-accountability-law @carlrichell@fosstodon.org #AgeVerification #systemd #USLaw
0
0
0
askubuntu__dup_31630
@askubuntu__dup_31630@ubuntu.social · Mar 22, 2026
How often does Ubuntu and Debian compress packages with XZ Utils? #server #ssh #systemd #bugreporting https://askubuntu.com/q/1565077/612
0
0
0
askubuntu__dup_31630
@askubuntu__dup_31630@ubuntu.social · Mar 01, 2026
About The XZ Backdoor’s Potential Impact (sshd XZ Compression Question) #server #ssh #security #systemd #openssh https://askubuntu.com/q/1564472/612
0
0
0
northernscrub
@northernscrub@m.dollha.us · Feb 20, 2026
I have a python script running as a system service. When it crashes, as it sometimes does, it does not seem to restart. I have Restart=always and RestartSec=10 in the unit file. What else should I be doing? #python #systemd #linux
3
1
5