Ich setze sowohl Privat als auch auf der Arbeit gerne Raspberry Pi ein. Dabei ist es hin und wieder Notwendig das etwas das nicht als Service unter Systemd oder Initd vorhanden ist. Auch macht es nicht immer Sinn aus allem einen Service zu machen. Als Beispiel nenne ich da mal den Chromium Browser der im Kiosk Modus laufen soll.
Ich möchte als das nach dem Start von Raspbian mit GUI (Grafische Oberfläche) der Chromium Browser startet und eine bestimmte Webseite im Kiosk Modus anzeigt.
Bis zu einer Version von Raspbian Stretch von Ende 2018 war das über eine Autostart Datei im Userhome des Users „pi“ möglich. Dort wurden auch gerne Parameter hinterlegt um den Bildschirmschoner etc. zu deaktivieren. Anleitungen dazu findet man eigentlich reichlich.
Allerdings hat sich die Methode nun verändert.
Bisherige Methode (Wheezy, Jessie, Stretch)
Unter „/home/pi/.config/lxsession/LXDE-pi/“ gibt es eine Datei „autostart“.
nano /home/pi/.config/lxsession/LXDE-pi/autostart
In dieser Datei stehen bereits einige Befehle.
@lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @point-rpi
Hier kann man nun weitere Befehle ergänzen die dann automatisch nach der Anmeldung ausgeführt werden.
Zum Beispiel zum deaktivieren des Bildschirmschoners und den Energieeinstellungen wird folgendes ergänzt:
@xset s noblank @xset s off @xset -dpms
Oder zum Starten des Chromium Browser:
chromium-browser --noerrdialogs --incognito --disable-crash-reporter --disable-infobars --force-device-scale-factor=1.00 --kiosk "https://christian-brauweiler.de"
Neue Methode (Buster)
Unter dem aktuellen Raspbian Stretch gibt es den Pfad so nicht mehr. Dieser befindet sich nun unter „/etc/xdg/lxsession/LXDE-pi/autostart„.
Dazu gibt es nun eine weitere Möglichkeit. Dafür muss unter „/etc/xdg/autostart/“ eine Datei angelegt werden mit der Dateiendung „.desktop“, also zum Beispiel „chromium.desktop“.
sudo nano /etc/xdg/autostart/chromium.desktop
Diese Datei befüllen wir mit folgenden Inhalt:
[Desktop Entry] Type=Application Name=Chromium Comment=Chromium Webbrowser NoDisplay=false Exec=chromium-browser --noerrdialogs --incognito --disable-crash-reporter --disable-infobars --force-device-scale-factor=1.00 --kiosk "https://christian-brauweiler.de"
Type, Name, Comment sollte selbsterklärend sein. Bei NoDisplay muss ich selber passen. Bei Exec kommt der Befehl hin der so auch in der Bash funktionieren muss. In meinem Beispiel ist dies halt der Chromium Browser mit einigen Parametern.
Eine Liste der Parameter finder ihr unter: https://peter.sh/experiments/chromium-command-line-switches/
Solltet ihr dort Bash Scripte aufrufen, ist darauf zu achten das diese Ausführbar sind (chmod +x) und der Pfad korrekt ist (Groß- und Kleinschreibung beachten).
Nach einem Neustart sollte nach der Anmeldung (Automatische Anmeldung ist Standardmäßig eingeschaltet) der Befehl ausgeführt werden.
Hallo Christian,
danke für diese tolle Anleitung.
Ich nutze sie um ein auf Pygame basiertes GUI zu starten (Neue Methode).
Meine Frontend.desktop, in /etc/xdg/autostart/ sieht folgendermaßen aus:
[Desktop Entry]
Type=Application
Name=GUI
Comment=starte Frontend
NoDisplay=false
Exec=/home/pi/Frontend.sh
Das funktioniert soweit auch super.
Leider öffnet sich das GUI auf diese Weise jedoch in einem Fenster, gibt es auch eine Möglichkeit dieses in Vollbild zu öffnen ?
In meiner Frontend.sh findet sich folgender Code:
#! /bin/sh -e
xrandr -s 1920×1080
sudo python3 /home/pi/Frontend/main.py > /dev/null 2>&1 &
Durch xrandr ist es mir zumindest schon gelungen die gewünschte Auflösung vorzugeben.
Freundlichen Gruß
Dennis
Hi Dennis,
ist jetzt nichts was direkt was mit der „Autostart“ Funktion zu tun hat. Gefunden habe ich das hier: https://www.raspberrypi.org/forums/viewtopic.php?t=216526
Hallo, läuft bei mir schon Seite Monaten! Sehr gut!
Gibt es die Möglichkeit das ganze um ein paar Sekunden verzögert zu starten? Der Grund dafür ist das noch ein anderes Programm per Autostart gestartet wird und das Fenster dann über dem Chromium Fenster liegt.
https://www.linuxuprising.com/2020/11/how-to-launch-startup-applications-with.html
Hallo,
ich muss vorausschicken, dass ich absoluter Anfänger bin; na gut…Also: Soweit ich weiß, ist es möglich, mit folgendem Skript „raspistill -t 0 -k -o image%03d.jpg“ und „Enter“ die Raspi-Kamera automatisch „auszulösen“ und die Bilder abzuspeichern. Ist es möglich, dass dass dieses Skrip schon beim Start automatisch „geladen“ wird, sodass nur noch „Enter“ betätigen muss, ohne die Konsole zu „laden“? Wenn ja: Wie?
Vielen Dank!!! Heinz
Du machst ein Bash Script mit deinem Befehl und das Bash Script führst du dann mit dem Beispiel von oben aus. Hab es nicht ausprobiert, sollte aber so funktionieren.
Na ja…., wie gesagt: „ich muss vorausschicken, dass ich absoluter Anfänger bin; na gut“. Insofern kann ich mit Ihrer Antwort „Du machst ein Bash Script mit deinem Befehl und das Bash Script führst du dann mit dem Beispiel von oben aus.“ absolut nichts anfangen. Trotzdem danke….
Heinz
Ganz vorkauen kann ich es dir auch nicht. Wenn du davon absolut Null Ahnung hast, ist es auch schwierig das zu erklären. Zumal wenn es nicht auf anhieb klappt auch umständlich wird das zu debuggen und zu lösen.
Mit Bash Script meine ich folgendes:
– Öffne ein Terminal / Bash
– cd Desktop ENTER
– nano raspistill.sh ENTER
– Folgenden Code in die Datei schreiben:
#!/bin/sh
raspistill -t 0 -k -o image%03d.jpg
– Strg + X
– ENTER
– Y ENTER
Testen mit „bash raspistill.sh“. Wenn funktioniert, dann nach dem Beispiel oben „Neue Methode“ mit Chrome vorgehen und bei „Exec=“ schreibst du „Exec=bash /home/pi/Desktop/raspistill.sh“
Evtl. hilft dir das weiter.
Hi, ich habe alles wie oben beschrieben eingerichtet, allerdings wird das Display nach ein paar Minuten Schwarz (Bildschirmschoner oder ähnliches). Die Zeilen
@xset s noblank
@xset s off
@xset -dpms
habe ich eingetragen, aber trotzdem scheint es nicht richtig zu funktionieren.
Das Beispiel oben bezieht sich auf die alte Methode, die unter einem aktuellen Raspbian nicht mehr funktioniert.
Inzwischen habe ich aber auch den neuen Pfad gefunden wo man sowas eintragen kann.
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Habe vorher shutdown mit Cron getestet. Ging wunderbar. Nach Vorgehen per Anleitung funktioniert es nicht mehr. D.h. KEIN SHUTDOWN .
Was könnte das Problem bzw. die Lösung sein ?
Vielen Dank im Voraus. Mit freundlichen Grüssen Klaus-Dieter Brinkmann
Warum sollte man einen Shutdown machen nachdem das System hochgefahren ist?
Hallo, hast du auch ein Lösung für die Oh nein-Fehlermeldung?
Ich habe einen Raspi 4 2GB als Kiosksystem (Displaymonkey) und bei den Testläufen kommt ab und zu diese Fehlermeldung. Das Display wird in einem Kaffeeautomaten eingebaut, dann komme ich nicht immer hin und Per Putty geht nur ein Neustart.
Hann mann diesen Fehler abfangen und den Chromium-Browser neu starten?
Gruss Michael
Hallo,
ich bin noch auf der Suche nach einem Befehl, welcher den Bildschirmschoner unterdrückt damit der Kiosk Mode ständig angezeigt wird.
Können sie mir helfen?
Vielen Dank
Artikel bitte lesen. Ein Beispiel für den Bildschirmschoner ist oben angegeben. Das hat aber nix mit dem Chrome zu tun!
Problem gelöst, war einfacher, als gedacht…
siehe Hinweis von hier https://unix.stackexchange.com/questions/56083/how-to-write-a-shell-script-that-gets-executed-on-login
unter /etc/profile.d eine Datei anlegen mit Endung „sh“, z.B. welt.sh
mit dem einzigen Inhalt: Exec=/usr/bin/python3.7 /home/pi/Desktop/HalloWelt.py
Rechte zuweisen mit
chmod +x /home/pi/Desktop/HalloWelt.py
Raspi muss im Desktopmodus starten!
Programm startet beim Boot, es liegt im Vordergrund, Tastatursteuerung/-eingaben möglich,
habe im Python-Script ein Thread mit Tastaturabfrage (also Zeicheneingabe ohne Enter), auch das läuft bestens.
->alles schön 🙂
Hi Christian,
tolle Anleitung. Für mich als Neuen bestens 🙂
Habe ein Python-Script nach der neuen Version zum auto-starten bekommen.
Problem: das Programm läuft dann quasi im Hintergrund, nach dem Start des Pi sehe ich nur die GUI.
Mein Programm erfordert aber Tastatureingaben. Wie komme ich an das Programm ran?
Wenn ich mittels raspi-config einstelle, dass auf Consolenebene gestartet wird, bleibt der Autostart aus.
Danke für alle Hinweise. Für mich als Linux-Nichtkenner bitte Idiodensicher 🙂
Hallo,
danke für den Hinweis mit dem neuen Autostart. Leider funktionieren die Flages aber nicht. Wird der Pi ungeplant ausgeschaltet und bootet wieder öffnet sich der Browser mit einem Fenster, das wissen möchte wie die Sitzung wieder hergestellt werden soll.
Eine Idee?
Danke
Andreas
Ja, scheinbar haben sich ein paar der Schalter verändert.
z.B.:
–noerrordialogs zu –noerrdialogs
–disable-session-crashed-bubble zu –disable-crash-reporter
Hallo,
deine Anleitung (neue Methode) hat super funktioniert.
Meine Frage wäre nun, wie es möglich ist ein Auto-Refresh im Chromium einzubauen…
Ich hoffe es gibt dafür einen simplen Befehl, der in dem Script eingebaut werden kann.
Danke im Voraus!
Das geht nicht über irgendwelche Start-Parameter.
So spontan fallen mir da nur 3 Möglichkeiten ein.
a) Refresh in den Quellcode der Seite eintragen
b) gucken ob es ein Addon für Chromium gibt mit dem man einen Refresh einstellen kann.
c) einen Cronjob bauen der den Chrmium in Intervallen killt und dann neu startet.
„C“ Eignet sich aber nur wenn der Intervall sehr groß ist…also der Refresh nur ein bis zweimal am Tag stattfinden soll. Cronjob kann eh nur auf 1 Minute runter und verursacht dann unnötig Last.
Danke für die schnelle Antwort. Versuche es gerade mit einem Addon.. Leider habe ich folgendes Problem:
Sobald der Raspi bootet, startet er eine Website im Kiosk-Modus.. So wie in deiner Anleitung nunmal. Blöderweise wird dann auch ein „Rechtsklick“ blockiert. Ich muss in das Rechtsklick Menü gelangen, um die Auto Refresh Funktion anzuschalten. Woran liegt das, dass ein Rechtsklick blockiert wird?
Am Kiosk Modus. Du musst ohne den Kiosk Modus starten. Kann auch sein dass das Addon im Kios Modus nicht verfügbar ist.
Ich habe sowas bisher noch nicht gebaut, daher kann ich da im Detail dann nicht helfen.
Moin aus Hamburg! Ich habe folgendes Problem: Wenn ich bei der URL, die aufgerufen werden soll, eine Dateiendung – also bspw. http://xy.de/test.php“ – eingebe, mir dann Google aufgerufen wird. Wenn ich aber nur xy.de eingebe, wird die entsprechende Domain auch aufgerufen. Wie lässt sich das lösen dass ich auch eine Dateiendung in der URL aufrufen kann?
Liebe Grüße, Henrik
Kann ich nicht reproduzieren. Wenn ich ne info.php auf einer domain aufrufe, dann wird das ganz normal angezeigt. Ich würde einen Tipfehler vermuten.
Danke für die Erklärung. Das hat super geklappt!
Man findet sonst immer nur „veraltete“ Anweisungen.
Zur Not mit einem Tiling Window Manager wie i3 oder sway, wobei es wahrscheinlich auch noch schlankere WM dafür gibt.
Wie kann ich via Autostart zwei Verschiedene Webseiten auf zwei Monitor jeweils packen. Sozusagen den Bildschirm teilen ?
Gruß Max
Puh da muss ich passen. Ist jetzt auch nicht unbedingt ein „Autostart“ Thema sondern eher was für den XServer der die grafische Oberfläche darstellt.
Wie kann man denn nach der neuen Methode den Mauszeiger abschalten?
Hi, prinzipiell wie vorher auch mit unclutter.
Inzwischen habe ich auch noch herausgefunden das die „autostart“ Datei im alten Pfad einfach unter einen neuem Pfad zu finden ist.
Fast der gleiche Pfad wie vorher, aber statt /home/pi/.config/… in /etc/xdg/…
Da findet sich so eine „autostart“ Datei wie früher.
Wie kann ich vor Ort (ich habe ein LCD mit touch) den Vollbildmodus wieder beenden, gibt es dazu eine Tastenkombination?
Wie bei jedem System und bei jedem Browser die Taste F11
Oder ALT + F4 zum beenden