config.txt verschoben

Bei einem Upgrade im Januar 2024 passierte bei Raspberry Pi OS 5 eine kleine, aber wichtige Änderung: Es wurde die Konfigurationsdatei config.txt verschoben.

config.txt

Die Datei /boot/config.txt diente immer schon zur Konfiguration des Bootvorgangs von Raspberry Pi OS und war seit längerem ein Link auf die eigentliche Datei unter /boot/firmware/config.txt

Ich zeige dir das mal anhand eines Raspberry Pi 5 mit Raspberry Pi OS 5

Alter Stand

So sieht das ganze vor dem Upgrade aus:

Stand vor dem upgrade, /boot/config.txt ist ein Link auf /boot/firmware/config.txt
Olli Graf -raspithek.de
before-upgradeCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Stand vor dem upgrade, /boot/config.txt ist ein Link auf /boot/firmware/config.txt

Durch den symbolischen Link konntest du /boot/firmware/config.txt auch unter dem Namen /boot/config.txt ansprechen.

Upgrade

Jetzt führe ich auf dem Raspberry Pi das Upgrade durch und starte ihn danach neu.

sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove
sudo reboot

Nach dem Prozedere sieht die Situation so aus:

Situation nach dem Upgrade, der Link ist verschwunden.
Olli Graf -raspithek.de
after-upgradeCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Situation nach dem Upgrade, der Link ist verschwunden.

Der Link von /boot/cónfig.txt ist jetzt verschwunden. In der Datei steht jetzt ein Warnhinweis:

Warnhinweis in /boot/config.txt, diese Datei nicht zu editieren, config.txt wurde verschoben.
Olli Graf -raspithek.de
config-messageCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Warnhinweis in /boot/config.txt, diese Datei nicht zu editieren

Der Warnhinweis deutet darauf hin, dass auch diese Datei über kurz oder lang gelöscht werden wird. Du solltest deine Konfiguration nicht mehr dort vornehmen sondern immer /boot/firmware/config.txt benutzen.

Grund für das Update

Der Link war immer nur aus Gründen der Abwärtskompatibilität vorhanden. Allerdings wurde er nicht von allen Programmen immer richtig aufgelöst (/usr/bin/sed ist so ein Kandidat). Ich habe nur selten Probleme damit gehabt. Irgendwann musste diese Altlast entfernt werden.

Problem

Es gibt durchaus Skripte und Programme, die aus /boot/config.txt lesen und den alten Link passend aufgelöst haben. Diese funktionieren jetzt nicht mehr richtig, da die Werte, die sie suchen, in der Datei mit Warnhinweis fehlen. Du könntest übergangsweise den Link mit sudo ln -s /boot/firmware/config.txt /boot/config.txt wieder setzen. Davon rate ich allerdings ab, da dies das Problem nur in die Zukunft verschiebt. Deine eignen Skripts solltest du schnellstmöglich anpassen, dass sie das Ziel des ehemaligen Links anzusprechen.

Für eigene Scripts gebe ich dir den Ratschlag, Dateinamen immer mit realpath zu behandeln, dies liefert dir den Dateinamen hinter einem Link zurück. Wenn du das bei allen Dateizugriffen in deinen Skripts machst, bist du zukunftssicher.

Demonstration des realpath Kommandos
Olli Graf -raspithek.de
realpathCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Demonstration des realpath Kommandos

Fazit

Ich gebe zu, ich habe den Link von /boot/config.txt überhaupt nie bewusst wahrgenommen. Irgendwann müssen solche Altlasten entfernt werden. Leider geschah dies hier ohne große Vorwarnung. Auch wenn einige darüber meckern und das als Fehler ansehen, ich vermute, die config.txt bleibt verschoben.

Alles hier gesagte, gilt auch für /boot/cmdline.txt

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner