Manuell drehen
Das Display kann Mithilfe von diesem Befehl gedreht werden:
sudo bash -c "echo 1 > /sys/devices/virtual/graphics/fbcon/rotate"
echo 0
= 0°
echo 1
= 90°
echo 2
= 180°
echo 3
= 270°
Der Teil "sudo bash -c
" ist notwendig, da das Schreiben in die rotate
-Datei
sudo
-Rechte benötigt.
Bei Systemstart drehen
Mit dem Wissen aus dem vorherigen Abschnitt können wir nun einen
systemd
-Dienst erstellen, welcher nach jedem Neustart des Raspberry Pi
ausgeführt wird.
- Erstelle die Datei:
sudo nano /etc/systemd/system/rotate-display.service
Alternativ auch unter https://swarkin.dev/blog/files/display/rotate-display.service verfügbar.
- Füge diesen Text ein:
[Unit]
Description=Rotates the fbcon
Before=graphical.target
Requires=graphical.target
ConditionPathExists=/sys/devices/virtual/graphics/fbcon/rotate
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=bash -c "echo 1 > /sys/devices/virtual/graphics/fbcon/rotate"
ExecStop=bash -c "echo 0 > /sys/devices/virtual/graphics/fbcon/rotate"
[Install]
WantedBy=graphical.target
Erklärung der systemd
-Dienstdatei (Aufklappen)
Option | Beschreibung |
---|---|
Before | Gibt an, vor welchen Einheiten der Dienst ausgeführt werden soll. |
Requires | Definiert Abhängigkeiten des Dienstes. |
ConditionPathExists | Dieser Pfad muss existieren, damit der Dienst ausgeführt wird. |
Type=oneshot | Definiert den Dienst als "oneshot", er wird einmalig ausgeführt. |
RemainAfterExit=yes | Führt dazu, dass der Dienst als aktiv angezeigt wird, auch wenn ExecStart derzeit nicht ausgeführt wird. |
ExecStart | Befehl, der beim Start ausgeführt werden soll. |
ExecStop | Befehl, der beim Stop ausgeführt werden soll. |
WantedBy | Definiert den benötigten Runlevel. |
- Aktiviere das
graphical.target
:
sudo systemctl set-default graphical.target
Das
graphical.target
ist eine Gruppierung an Diensten, die für eine grafische Benutzeroberfläche verwendet werden. Da wir uns auf einem Raspberry Pi OS Lite-System befinden, ist es standardmäßig nicht aktiviert, und es gibt keine Dienste, die darauf gebunden sind. Dasrotate-display.service
ist daher der erste Dienst, den wir dafür erstellt und aktiviert haben.In anderen Seiten des Extras-Kapitel wird möglicherweise angenommen, dass dieses Runlevel bereits als Standard festgelegt wurde.
- Aktiviere den automatischen Neustart des Dienstes:
sudo systemctl enable rotate-display
- Teste die Funktionalität:
sudo systemctl start rotate-display
Falls Fehler auftreten, kannst du dir den Status mit diesem Befehl anzeigen:
sudo systemctl status rotate-display
- Teste schlussendlich das automatische Neustarten des Dienstes mit
sudo reboot
.