Seltener Fehler bzw. Verbesserungsvorschlag revpi-factory-reset
Posted: 21 Feb 2019, 16:03
Hallo,
ich habe bei einem RevPi festgestellt, dass in der /boot/config.txt folgendes auftauchte:
dtoverlay=revpi-core
dtoverlay=revpi-connect
Ich denke, da sollte nur eine der beiden Zeilen stehen. Ich habe nachgeforscht, wie das passieren konnte und folgenden Vorgang nachvollzogen:
- Auf einem RevPi CORE wurde ein System installiert und mit konfiguriert, dementsprechen stand in der config.txt
dtoverlay=revpi-core
- dann wurde ein Image gemacht, dass auf einen RevPi CONNECT eingespielt wurde, danach wurde /usr/sbin/revpi-factory-reset ausgeführt.
- das script /usr/sbin/revpi-factory-reset löscht via sed eine vorhandene Zeile "dtoverlay=revpi-$ovl", allerdings wird in dieser Zeile die aktuell gewünschte Modellbezeichnung eingesetzt:
"/bin/sed -r -i -e "/^dtoverlay=revpi-$ovl/d" /boot/config.txt"
Dies führt natürlich nach einem "Umzug" und einer Neuinitialisierung mittels revpi-factory-reset dazu, dass die Zeile mit der alten Modellbezeichnung nicht gefunden wird und in der config.txt verbleibt.
- Ich schlage vor das regex für sed in revpi-factory-reset zu ändern, damit alle Modellbezeichnungen matcht, die Zeile wird ja direkt danach mit dem gewünschten neuen overlay eingefügt:
if [ "$kernel" = 49 ] ; then
/bin/sed -r -i -e "/^dtoverlay=revpi-(compact|connect|core)/d" /boot/config.txt
echo "dtoverlay=revpi-$ovl" >> /boot/config.txt
....
ich habe bei einem RevPi festgestellt, dass in der /boot/config.txt folgendes auftauchte:
dtoverlay=revpi-core
dtoverlay=revpi-connect
Ich denke, da sollte nur eine der beiden Zeilen stehen. Ich habe nachgeforscht, wie das passieren konnte und folgenden Vorgang nachvollzogen:
- Auf einem RevPi CORE wurde ein System installiert und mit konfiguriert, dementsprechen stand in der config.txt
dtoverlay=revpi-core
- dann wurde ein Image gemacht, dass auf einen RevPi CONNECT eingespielt wurde, danach wurde /usr/sbin/revpi-factory-reset ausgeführt.
- das script /usr/sbin/revpi-factory-reset löscht via sed eine vorhandene Zeile "dtoverlay=revpi-$ovl", allerdings wird in dieser Zeile die aktuell gewünschte Modellbezeichnung eingesetzt:
"/bin/sed -r -i -e "/^dtoverlay=revpi-$ovl/d" /boot/config.txt"
Dies führt natürlich nach einem "Umzug" und einer Neuinitialisierung mittels revpi-factory-reset dazu, dass die Zeile mit der alten Modellbezeichnung nicht gefunden wird und in der config.txt verbleibt.
- Ich schlage vor das regex für sed in revpi-factory-reset zu ändern, damit alle Modellbezeichnungen matcht, die Zeile wird ja direkt danach mit dem gewünschten neuen overlay eingefügt:
if [ "$kernel" = 49 ] ; then
/bin/sed -r -i -e "/^dtoverlay=revpi-(compact|connect|core)/d" /boot/config.txt
echo "dtoverlay=revpi-$ovl" >> /boot/config.txt
....