raspberryPI, autostart skript command.

OP (Firma: Pensionär-Altes-Eisen) #4486228
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ß
Gast #4486230
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/
#4487335
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()

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren