JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Autostart Programm oder Datei ausführen

Wed Jun 27, 2018 6:10 pm

Hallo zusammen,

zu meinem Problem habe ich im Netz noch nichts finden können. Bin mir auch nicht sicher ob es funktioniert.
Meine programmier Kenntnisse sind gering auf dem Raspberry.

Ich habe ein Raspberry Pi 3 B+ mit Raspbian Stretch am laufen.

Folgende Situation:

Der Raspberry ist an einem Fernseher im Vereinsheim angeschlossen. Über WLAN bekommt er von unserer Anlage Daten die er auch darstellt.
Das ist nach Anleitung eingerichtet und funktioniert auch im Autostart.

Meine Überlegung ist, dass wenn ich einen USB Stick VOR dem starten einstecke und dort eine Präsentation z.B. drauf ist, dass dann diese gestartet wird und nicht das andere Programm. Die Datei würde auch immer den selben Namen haben.
Ziel ist das jeder so eine Datei erstellen kann und dann einfach einstecken muss ohne sich mit dem raspberry befassen zu müssen.
Wenn kein USB Stick da ist bzw. keine Datei mit dem richtigen Name dann soll unser Programm normal starten.

Ist so was überhaupt möglich?

Gruß

tommylee2k
Posts: 55
Joined: Mon May 08, 2017 6:23 am

Re: Autostart Programm oder Datei ausführen

Thu Jun 28, 2018 9:11 am

JochenP wrote:
Wed Jun 27, 2018 6:10 pm
Hallo zusammen,
[...]
Meine Überlegung ist, dass wenn ich einen USB Stick VOR dem starten einstecke [...]
Hallo,

Ist zwar nicht ganz das was du suchst, aber vielleicht hilft es ja trotzdem:

Du kannst per "udev" sowas wie "autostart" für devices definieren, die per automount gemounted werden, sobald sie verfügbar sind.

Meine google-suche nach "raspberry pi udev rules usb" z.B. brachte den link hier zu tage:
https://www.kampis-elektroecke.de/?page_id=4834

Vorteil: du brauchst den Rechner nicht neu zu starten, wenn du deine Präsentation starten willst. einfach USB-Stick rein und automatisch mounten und starten lassen

Hoffe, das hilft dir,
t2k

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Sat Jun 30, 2018 8:39 am

Hallo,

danke schon mal für die Antwort.
Muss ich mir mal anschauen.

Mir geht es darum das Programm, dass sich beim Starten des Pi öffnet (und im Vollbild läuft) entweder nicht gestarte oder die Präsentation oder pdf vom Stick automatisch gestartet und "über" dem Programm angezeigt wird.
Das ganze muss ohne Eingabegeräte (Maus, Tastatur) laufen.

smartifahrer
Posts: 530
Joined: Sat Feb 13, 2016 8:10 am

Re: Autostart Programm oder Datei ausführen

Sat Jun 30, 2018 11:41 am

Das ganze muss ohne Eingabegeräte (Maus, Tastatur) laufen.
Keine so gute Idee. Der Pi ist ein richtiger Computer mit einem richtigen Betriebsystem. Früher oder später beschädigst du das Betriebsystem auf der SD Karte. Deinen Computer schaltest du doch auch nicht aus in dem du den Stecker ziehst. Aus genau dem selben Grund soltest du das auch nicht beim Pi machen. Ohne Tastatur und Maus bist du aufgeschmissen wenn was nicht funktioniert. Die Situation tritt besonders gerne ein wenns drauf ankommt ;-)

Übrigens, Präsentationen mit Video aund aufwendigen Effekten sind nicht Pi tauglich. Powerpoint auch nicht. Am besten vorher immer prüfen ob die Präsentation vernünftig läuft.
Bei Präsentationen ist ein Eingabegerät manchmal schon sinnvoll. Es gibt Minitastaturen mit Trackpad die du gut im Vereinsheim unterbringen kannst. Beispiel.
https://www.sertronics-shop.de/raspberr ... -de-layout
Gut ist auch die K400 Plus von Logitech. Das ist aber eine Tastatur in normaler Größe.

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Sun Jul 01, 2018 4:22 pm

Hallo,

ich habe mir jetzt den ganzen Tag Zeit genommen am Pi weiter zu arbeiten.
Ich bin von einer Präsentation zu .jpg gegenagen. Ist glaube ich einfacher.

Ich habe eine udev Regel erstellt die beim einstecken eines USB Sticks eine aktion auslöst und bei abziehen des Sticks.
Bei einstecken habe ich nur die test.sh zum laufen gebracht welche eine test.txt erstellt hat. Beim abziehen funktioniert alles wie geplant. Es wir ein Ordnerinhalt gelöscht und der Pi fährt runter.

Code: Select all

SUBSYSTEMS=="usb", KERNEL=="sd[a-z]", ACTION=="add", RUN+="/home/pi/kopieren.sh %k, RUN+="home/pi/diashow.sh %k""
SUBSYSTEMS=="usb", KERNEL=="sd[a-z]", ACTION=="remove", RUN+="/home/pi/abschalten.sh %k"

Code: Select all

#!/bin/sh
#/home/pi/kopieren.sh
sudo find /media/pi -name "*.JPG" -exec cp "{}" /home/pi/Pictures ";"
sudo find /media/pi -name "*.jpg" -exec cp "{}" /home/pi/Pictures ";"

Code: Select all

#!/bin/sh
#/home/pi/diashow.sh
feh -F -D 3 -n /home/pi/Pictures
DIe beiden Scripte funktionieren wenn ich die im Terminal starte.
Wenn ich den Stick einstecke werden weder die Bilder kopiert noch die Diashow gestartet. Habe auch jedes einzeln in der udev versucht aber auch das geht nicht.
Das ganze soll egal mit welchem USB Stick funktionieren auf dem .jpg sind.

Wo liegt mein Fehler?

Im syslog steht: Mounted /dev/sda1 at /media/pi/USB STICK
Also müsste das mit dem erkennen vom Stick ja passen.

smartifahrer
Posts: 530
Joined: Sat Feb 13, 2016 8:10 am

Re: Autostart Programm oder Datei ausführen

Sun Jul 01, 2018 7:10 pm

Falsches Verzeichnis?
Im syslog steht: Mounted /dev/sda1 at /media/pi/USB STICK
In deinem Script seht nur "/media/pi"

User avatar
mline
Posts: 1078
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Autostart Programm oder Datei ausführen

Sun Jul 01, 2018 7:50 pm

Code: Select all

 RUN+="home/pi/diashow.sh %k""
/home/....
und ganz hinten sind 2 Anführungszeichen ""
<~~>

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Mon Jul 02, 2018 10:21 am

Die 2 “ sind ein Fehler vom kopieren hier in das Forum.

Das Skript funktioniert mit dem Verzeichnis/media/pi
Durch das Suchen in dem gesamten Bereich findet er die .jpg Dateien.
Aber halt nur das einzelne Skript und nicht mit der udev Regel.

smartifahrer
Posts: 530
Joined: Sat Feb 13, 2016 8:10 am

Re: Autostart Programm oder Datei ausführen

Mon Jul 02, 2018 1:19 pm

Ich glaube wir haben überlesen das das Skript im Terminal funktioniert ;-)
Wenn du es im terminal aufrufst so wird es mit dem Benutzer "pi" gestartet.
Ich vermute mal es liegt an den Zugriffsrechten. Sprich der System Benutzer hinter udev darf es nicht starten.
Ich kann dir nur gerade nicht schreiben wie du die Zugriifsrechte richtig setzten kannst.

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Mon Jul 02, 2018 3:26 pm

Die Vermutung habe ich auch. Hab aber noch nicht die Zeit gehabt danach zu suchen.

Hab die beiden Skripte schon mal nach /urs/local/sbin geschoben zum testen. Hat auch keine Änderung gegeben.

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Mon Jul 02, 2018 5:08 pm

JochenP wrote:
Sun Jul 01, 2018 4:22 pm

Beim abziehen funktioniert alles wie geplant. Es wir ein Ordnerinhalt gelöscht und der Pi fährt runter.
Muss mich korrigieren.
Beim abziehen des Sticks macht er nicht das ganze Skript. Der Teil mit dem runterfahren geht aber das löschen des Ordnerinhaltes geht nur wenn ich das Skript manuell starte.

Das Skript sieht wie folgt aus:
#!/bin/bash
sudo find /home/pi/Pictures -name "*.JPG" -delete
sudo find /home/pi/Pictures -name "*.jpg" -delete
sudo shutdown -h

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Fri Jul 06, 2018 10:04 am

Hat keiner eine Idee wie ich das Problem lösen könnte?

ghans
Posts: 7752
Joined: Mon Dec 12, 2011 8:30 pm
Location: Germany

Re: Autostart Programm oder Datei ausführen

Fri Jul 06, 2018 10:15 am

sudo erscheint mir unnötig. Ich vermute das udevs berühmtes Feature alle Prozesse (inklusive Kinder und Enkel) die über ein udev-Skript gestartet wurden, nach einem kurzen Timeout zu einfach zu killen hier zum Tragen kommt.

Umgehen kann man das indem zwei Skripte schreibt. Das erste trägt das zweite als "geplante Aufgabe" bei "at" ein , am besten zum Zeitpunkt "now". Das erste wird von udev abgeschossen, aber dann sollte "at" schon längst übernommen haben ...

ghans
• Don't like the board ? Missing features ? Change to the prosilver theme ! You can find it in your settings.
• Don't like to search the forum BEFORE posting 'cos it's useless ? Try googling : yoursearchtermshere site:raspberrypi.org

JochenP
Posts: 8
Joined: Wed Jun 27, 2018 5:45 pm

Re: Autostart Programm oder Datei ausführen

Sat Jul 07, 2018 7:15 pm

Hallo,

danke für den Hinweis mit at. Hat aber auch nicht funktioniert
Ich habe es jetzt anders gelöst:

Unter rc.local habe ich folgendes eingetragen

Code: Select all

#Bilder löschen
/home/pi/löschen.sh

#kopieren der Bilder
(/bin/sleep 2 && /home/pi/kopieren.sh) &

#Diashow starten
(/bin/sleep 5 &&  /home/pi/diashow.sh) &
Dafür muss der Stick natürlich vor dem starten des Pi eingesteck sein. Das auch genau das was ich wollte.

Die undev Regel hat nur noch beim abziehen des Sticks eine funktion und zwar das herunterfahren des PI.
udev:

Code: Select all

SUBSYSTEMS=="usb", KERNEL=="sd[a-z]", ACTION=="remove", RUN+="/home/pi/abschalten.sh %k"

Return to “Deutsch”

Who is online

Users browsing this forum: No registered users and 3 guests