Forum: PC-Programmierung raspberryPI, autostart skript command.


von Wolfgang S. (Firma: Pensionär-Altes-Eisen) (stackpointer)


Lesenswert?

Hallo,
ich bekam einen Raspbery geschenkt, rasbian runtergeladen, mikroSD 
geflasht, läuft, via HDMI erkennt sogar mein TV-Gerät Linux, Maus 
funktioniert, also auch die USB-Schnittstelle.

Ich möchte den Raspberry mit einer skriptanweisung dazu bringen von 
EINEM USB-Stick mit EINEM MPEG4-file dieses ohne weitere Bedienung 
abzuspielen.

Praktisch, neben dem Fernsehgerät ohne Tastatur, ohne Maus, USB-Stick 
mit dem Film einstecken, einschalten, skript startet, Film läuft.

kann mir jemand Tipps geben? Danke


Gruß

von Kaj (Gast)


Lesenswert?

Ohne mich jetzt näher damit zu beschäftigen, ob es sowas schon gibt:

Python-Script screiben:
-ist ein USB-Stick gesteckt?
-wenn ja: ist darauf eine mpeg4-Datei?
-wenn ja: starte vlc-player mit besagter mpeg4-Datei.

Und das Python-Script lässt du dann über systemd automatisch beim booten 
starten.

So wäre jetzt meine erste Idee.

Du kannst dir aber auch mal Kodi (früher XBMC) anschauen. Vielleicht 
haben die sowas schon irgendwie mit drin.

Kodi: https://kodi.tv/

von Daniel A. (daniel-a)


Lesenswert?

Mit DBus und leichten anpassungen an folgendem Script sollte das machbar 
sein:

http://www.danplanet.com/blog/2007/11/11/using-dbus-to-take-action-on-a-usb-storage-device/

Weil der Blogger es versaumt hat den Code brauchbar zu Posten, hier eine 
Angepasste version: (ungetestet)
1
#!/usr/bin/python
2
3
import dbus
4
import gobject
5
import dbus.mainloop.glib
6
7
8
# wird nach dem mounten aufgerufen
9
def onmount(path,tag):
10
  print path
11
  print tag
12
13
14
def handler(*args, **kwargs):
15
  if not kwargs["member"] == "VolumeMountedSignal":
16
    return
17
18
  path = args[0][4].replace("file://", "")
19
  tag = args[0][6]
20
21
  onmount(path,tag)
22
23
24
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
25
bus = dbus.SessionBus()
26
27
bus.add_signal_receiver(
28
  handler,
29
  interface_keyword="dbus_interface",
30
  member_keyword="member"
31
)
32
33
loop = gobject.MainLoop()
34
loop.run()

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.