Möchte Kommandos beim Startbildschirm unterdrücken

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    in unserem Amateurtheater sollen vor Veranstaltungsbeginn, in der Pause und am Ende Informationen und selbst gestaltete Filme über Beamer gezeigt werden.
    Dazu bietet sich der Raspberry Pi an.

    Auf verschiedenen SD-Karten habe ich das Image von
    http://www.timschwartz.org/raspberry-pi-video-looper/
    installiert.

    Das Problem, das ich habe und nirgendwo eine Lösung fand:

    Wenn ich den Raspberry einschalte, laufen beim Booten jede Menge Kommandos und Informationen über die Leinwand, bevor der Film startet.

    Meine Frage:
    Gibt es eine Möglichkeit, dies zu unterdrücken?

    Für einen Tip bzw. Hinweis wäre ich sehr dankbar.

    Gruss

    Wuerfel

  • Möchte Kommandos beim Startbildschirm unterdrücken? Schau mal ob du hier fündig wirst!

  • Naja ich glaube nicht das man das vollständig unterdrücken kann - erstmal muss eben das System booten also der Kernel geladen, die Hardware initialisiert werden usw

    Ich würde eher sagen dass das einfachste wäre den RPI permanent an zu lassen und nur unterschiedliche USB-Stick einzustecken - dann passt man sich die udev rules an und veranlasst beim neu einstecken eines USB-Sticks automatisch das auf dem USB-Stick befindliche avi (oder was auch immer) in einer Endlosschleife abzuspielen... Wenn du einen anderen Film abspielen willst ziehst du den USB-Stick raus, steckst einen anderen rein und der RPI spielt diesen ab - fertig

    Da der RPI auch nicht wirklich viel Strom verbraucht (ca. 8eu Stromkosten im Jahr bei 24/7/365 Betrieb) ist das permamente laufen lassen eigentlich kein Problem


    Also:

    Spoiler anzeigen


    - Flash dir Raspbian auf die SD und richte das ein

    - mplayer installieren:

    Code
    apt-get update
    apt-get install mplayer -y

    - Erstell folgendes Script:

    Code
    nano /bin/usbmount.sh


    mit dem Inhalt:


    Script ausführbar machen:

    Code
    chmod +x /bin/usbmount.sh

    - Das "MountTo" Verzeichnis erstellen:

    Code
    mkdir /mnt/usbstick

    - Erstell dir eine Rule für udev:

    Code
    nano /etc/udev/rules.d/99-usb.rules


    und füg dort folgendes ein:

    Code
    ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*", RUN+="/bin/bash /bin/usbmount.sh mount /dev/%k"
    ACTION=="remove", SUBSYSTEMS=="usb", KERNEL=="sd*", RUN+="/bin/bash /bin/usbmount.sh umount /dev/%k"

    Anschliesend udev neu starten:

    Code
    /etc/init.d/udev restart

    ..Damit wird jeder USB-Stick automatisch in das "MountTo" Verzeichnis gemounted und jedes Videofile in dem Verzeichnis mit mplayer und Endlosschleife (-loop 0) abgespielt. Wird der USB-Stick entfernt wird mplayer beendet sowie der USB-Stick auch wieder demounted

    Man könnte auch einen standard Movie auf die SD des RaspberryPI's ablegen was dann abgespielt wird wenn der USB-Stick rausgezogen wird, um den Wechsel zu überbrücken - dazu müsste dann die "elif" im usbmount.sh Script entsprechend angepasst werden und hinter dem killall noch eine mplayer Zeile einfügen - oder so ;)

  • ruedigerp

    das habe ich jetzt so gemacht und es sind weitaus weniger Kommandos zu sehen wie zuvor, aber sie sind immer noch vorhanden (so ca. 1,5 Bildschirmseiten.

    Ich werde mich jetzt an die Anweisungen von meigrafd machen. Mit dem USB-Stick gefällt mir außerordentlich gut, weil es einfacher ist die Sticks zu wechseln als die SD-Karten und immer Pi ein- und auszuschalten. (Die Stromkosten sind nicht das Problem).

    Bei so einer Theateraufführung hat man genügend zu zu mit Ton und Licht. Und wenn dann noch der Beamer dazukommt...

    Also ich mache mich jetzt ans Werk und melde mich.

    Bis dann und schon mal vielen Dank für die schnellen Antworten.

    Gruss
    Wuerfel

  • meigrafd

    Ich habe das jetzt alles so gemacht, wie oben beschrieben, aber der Raspberry nimmt nicht automatisch den USB-Stick an.
    Auf dem Bildschirm steht nur die Eingabezeile
    pi@raspberry ~ $
    und erwartet eine Eingabe.
    (Auch zuvor musste ich mich mit pi und Passwort einloggen. Das wollte ich nicht, weil ich in der Technik kaum, d.h. eigentlich keinen Platz für eine Tastatur habe)
    Habe verschiedene USB-Sticks in den Raspberry geschoben, aber er ignoriert sie.

    Gruss
    Wuerfel

  • Hm, wenn du dich angemeldet hast müsste der USB-Stick eingentlich erkannt werden

    Steck den Stick mal rein und prüf sowie poste:

    Code
    dmesg | grep -i usb


    und post eauch die Ausgabe von

    Code
    mount


    und prüf dann auch ob etwas in /mnt/usbtsick ist oder der Ordner leer is


    /EDIT:

    Habe oben vergessen zu erwähnen dass udev auch neu gestartet werden muss damit die neue rules Datei eingelesen wird:

    Code
    /etc/init.d/udev restart


    Man kann Linux auch so konfigurieren das ein Benutzer automatisch an der Konsole angemeldet wird:

    Code
    nano /etc/inittab

    Suchen nach:

    Code
    1:2345:respawn:/sbin/getty 115200 tty1

    ändern in:

    Code
    #1:2345:respawn:/sbin/getty 115200 tty1

    Dadrunter neue Zeile einfügen:

    Code
    1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1


    Gegebenenfals muss das usbmount.sh Script dann auch noch angepasst werden indem die Zeile wo mplayer steht dann so aussähe:

    Code
    su -l pi -c "mplayer -loop 0 $MountTo/* &"


    was bewirkt dass der Befehl als Benutzer " pi " ausgeführt wird


    /EDIT:

    Aktualisiertes Script in Post#2

  • meigrafd

    der Ordner /mnt/usbstick ist vollkommen leer und die Ergebnisse der beiden Eingaben sehen wie folgt aus:

    mount:

    /dev/root on / type ext4 (rw,noatime,data=ordered)
    devtmpfs on /dev type devtmpfs (rw,relatime,size=216132k,nr_inodes=54033,mode=755)
    tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=44880k,mode=755)
    tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=89740k)
    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
    /dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)


    dmesg | grep -i usb:

    [ 0.940653] usbcore: registered new interface driver usbfs
    [ 0.946241] usbcore: registered new interface driver hub
    [ 0.951837] usbcore: registered new device driver usb
    [ 1.348505] usbcore: registered new interface driver smsc95xx
    [ 1.825129] dwc_otg bcm2708_usb: DWC OTG Controller
    [ 1.831803] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
    [ 1.840886] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000
    [ 1.858900] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 1.867566] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 1.876657] usb usb1: Product: DWC OTG Controller
    [ 1.883225] usb usb1: Manufacturer: Linux 3.6.11+ dwc_otg_hcd
    [ 1.890789] usb usb1: SerialNumber: bcm2708_usb
    [ 1.897878] hub 1-0:1.0: USB hub found
    [ 1.909735] Initializing USB Mass Storage driver...
    [ 1.916638] usbcore: registered new interface driver usb-storage
    [ 1.924451] USB Mass Storage support registered.
    [ 1.930932] usbcore: registered new interface driver libusual
    [ 2.076812] usbcore: registered new interface driver usbhid
    [ 2.084286] usbhid: USB HID core driver
    [ 2.372386] usb 1-1: new high-speed USB device number 2 using dwc_otg
    [ 2.582586] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
    [ 2.591246] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 2.601064] hub 1-1:1.0: USB hub found
    [ 2.892522] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
    [ 3.012947] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
    [ 3.021788] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 3.097016] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:2b:ee:a7

  • Mach mal bitte das was ich in Post#6 editiert hab:

    Habe oben vergessen zu erwähnen dass udev auch neu gestartet werden muss damit die neue rules Datei eingelesen wird:

    Code
    /etc/init.d/udev restart

    Zieh den Stick raus und steck ihn dann neu rein..

    Dann sollte es eigentlich gehen :-/

    Allerdings hab ich das nur mit einem USB-Stick getestet der mit FAT32 formatiert wurde..

  • meigrafd

    die kleine Kiste weigert sich einfach, dass zu tun, was wir wollen.
    Ich habe das jetzt alles so gemacht wie oben beschrieben.

    In der inittab sieht es bei mir allerdings jetzt wie folgt aus (bei mir ist im Original ein '-noclear 38400 tty1'):

    #1:2345:respawn:/sbin/getty --noclear 38400 tty1
    1:2345:respawn:/bin/login -f pi tty1 </devtty1 >/dev/tty1 2>&1

    Der Raspberry will nun keine Eingabe, zeigt wieder viele Kommandos und am Schluss kommt die Fehlermeldung:
    Error Opening '/dev/input/event*':no such file or directory
    dann folgt 10 Mal die meldung:
    /bin/sh: 1: cannot open /devtty1: no such file
    und am Ende noch:
    INIT: Id "1" respawing too fast: disabled for 5 minutes

    dann steht das so.

    Noch 'ne Frage zu der usbmount.sh:
    Den Text kann ich doch so eingeben mit dem Einzug oder müssen Tabulatoren gesetzt werden?


  • #1:2345:respawn:/sbin/getty --noclear 38400 tty1
    1:2345:respawn:/bin/login -f pi tty1 </devtty1 >/dev/tty1 2>&1

    dann folgt 10 Mal die meldung:
    /bin/sh: 1: cannot open /devtty1: no such file

    Du hast ein " / " vergessen, es müsste /dev/tty1 lauten

    Du kannst Copy&Paste der Zeilen machen, in Windows markieren und kopieren, in PuTTY drückst du zum einfügen die rechte Maustaste oder die Tastenkombination SHIFT+EINFG

    Noch 'ne Frage zu der usbmount.sh:
    Den Text kann ich doch so eingeben mit dem Einzug oder müssen Tabulatoren gesetzt werden?

    Ja, aber das ist in bash egal, es muss nicht "ordentlich" aussehen :)


    Hab noch einen Fehler in der udev rule gemacht und in Post#2 korregiert:

    ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd?1", RUN+="/bin/bash /bin/usbmount.sh mount /dev/%k"
    ACTION=="remove", SUBSYSTEMS=="usb", KERNEL=="sd?1", RUN+="/bin/bash /bin/usbmount.sh umount /dev/%k"


    Das Script hab ich ebenfals um ein " & " in der mplayer Zeile erweitert..

    Zumindest auf den ersten Blick scheint es zu funktionieren:

    Spoiler anzeigen
  • "Du hast ein " / " vergessen, es müsste /dev/tty1 lauten"

    Nein, es ist ein Wort ohne Slash dazwischen.
    Den Monitor mit den Infos habe ich 'mal photographiert:

    Die obigen Änderungen habe ich gemacht, aber leider ohne Erfolg.

  • Nochmal:

    Du hast ein Slash vergessen, es müsste /dev/tty1 lauten - es gibt keine Datei /devtty1 , wie auch die Fehlermeldung verrät

    Du hast:

    Code
    1:2345:respawn:/bin/login -f pi tty1 </devtty1 >/dev/tty1 2>&1


    eingetragen aber es muss:

    Code
    1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1

    lauten

  • Sorry, habe ich falsch verstanden. Dachte es betrifft die Bildschirmausgabe und nicht die Befehlszeile.
    Habe ich geändert aber ohne Erfolg.

    Schalte ich den Raspberry ein (ohne USB-Stick), laufen die ganzen Info-Zeilen über den Bildschirm und am Schluss steht da die Eingabezeile pi@raspberry~$
    Wenn ich jetzt einen USB-Stick einschiebe, laufen wieder alle Info-Zeilen über den Monitor und am Ende steht da wieder die Eingabezeile.

    Wechsle ich jetzt den Stick (sind übrigens alle FAT32-formatiert), dann passiert nichts.

    Danke 'mal bis hierher für die Hilfe und Unterstützung, aber ich muss mich jetzt ausloggen und noch ein paar Stündchen schlafen.


  • Schalte ich den Raspberry ein (ohne USB-Stick), laufen die ganzen Info-Zeilen über den Bildschirm und am Schluss steht da die Eingabezeile pi@raspberry~$

    Wenn man ein Linux System einschaltet/startet, dann bootet es - es wird also der Kernel und ggf Treiber sowie Programme geladen..
    Da haben wir bereits am Anfang dieses Threads festgestellt das man das nicht vollständig weg kriegt und deshalb meinte ich auch dass man deshalb den RaspberryPI für dein Vorhaben anlassen sollte..

    Also merken: RaspberryPI einschalten -> "haufenweise Info Zeilen" == Booten

    Danach kommt der Promt der Konsole (wo man Befehle eingeben kann), ohne Nachfrage nach einem Passwort - also funktioniert nun endlich die automatische Anmeldung, da der fehlerhafte Eintrag in /etc/inittab behoben wurde...


    Wenn ich jetzt einen USB-Stick einschiebe, laufen wieder alle Info-Zeilen über den Monitor und am Ende steht da wieder die Eingabezeile.

    wenn der mplayer gestartet wird, werden "Info Zeilen" angezeigt aus denen du zu diesem Zeitpunkt zunächst erstmal feststellen kannst OB das Vorhaben funtioniert oder ob Fehler auftreten... Die "Info-Zeilen" beim Starten von mplayer kann man später wenn alles funktioniert auch noch abschalten..

    Also: Ausgabe beobachten und auf Fehlermeldungen achten - da das Video anscheint nicht abgespielt wurde gibts offensichtlich noch ein Problem was behoben werden muss...


    Wechsle ich jetzt den Stick (sind übrigens alle FAT32-formatiert), dann passiert nichts.

    Auf dem Stick muss selbstverständlich eine Videodatei sein sonst kann da auch nichts passieren - aber erneut gilt: Prüfen ob das mounten funktioniert hat, /mnt/usbstick auf Inhalt prüfen und dann kann man ggf auch noch System-log wie zB /var/log/syslog kontrollieren wieso/weshalb/warum etwas nicht funktionieren will...

  • Da bin ich wieder.

    Auf den Sticks sind nur jeweils eine Videodatei im MP4-Format. Ich nehme an, dass mplayer dieses Format abspielen kann.

    Ich habe vorhin den pi gebootet nur mit der SD-Karte bis die Eingabezeile kam.
    Dann habe ich den Stick in den Pi gesteckt, am Monitor hat sich nichts geändert (keine zusätzlichen Zeilen, nichts).

    Dann habe ich nachgesehen, ob und was sich im Ordner /mnt/usbstick befindet. Dieser ist aber komplett leer.

    Und in der Syslog stehen eine Vielazahl von Infos, aber keine Fehlermeldung oder ähnliches.


  • Auf den Sticks sind nur jeweils eine Videodatei im MP4-Format. Ich nehme an, dass mplayer dieses Format abspielen kann.

    Ich habe vorhin den pi gebootet nur mit der SD-Karte bis die Eingabezeile kam.
    Dann habe ich den Stick in den Pi gesteckt, am Monitor hat sich nichts geändert (keine zusätzlichen Zeilen, nichts).

    Dann habe ich nachgesehen, ob und was sich im Ordner /mnt/usbstick befindet. Dieser ist aber komplett leer.

    Und in der Syslog stehen eine Vielazahl von Infos, aber keine Fehlermeldung oder ähnliches.

    Leider hast du vergessen zu erwähnen ob der Stick bei dem Befehl mount mit auftaucht :(

    Wenn nicht, gibts nun erneut Probleme mit udev obwohl es zuvor bereits funktioniert hatte :-/

    Hast du die udev rules Datei entsprechend angepasst wie ich es in Post#2 beschrieben und ergänzt habe?


    Falls ja dann prüf bitte über dmesg ob der USB-Stick erkannt wurde..

  • In der rules steht Folgendes (glaube, da habe ich nichts übersehen):
    99-usb.rules:

    ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd?1", RUN+="/bin/bash /bin/usbmount.sh mount /dev/%k"
    ACTION=="remove", SUBSYSTEMS=="usb", KERNEL=="sd?1", RUN+="/bin/bash /bin/usbmount.sh umount /dev/%k"

    Und in der syslog steht Folgendes, wenn ich den Stick in die Pi eingesteckt habe:

    Stick eingesteckt:

    Sep 4 12:53:45 raspberrypi kernel: [ 123.205927] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
    Sep 4 12:53:45 raspberrypi kernel: [ 123.310605] usb 1-1.2: New USB device found, idVendor=0ea0, idProduct=2168
    Sep 4 12:53:45 raspberrypi kernel: [ 123.310637] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Sep 4 12:53:45 raspberrypi kernel: [ 123.310655] usb 1-1.2: Product: Flash Disk
    Sep 4 12:53:45 raspberrypi kernel: [ 123.310668] usb 1-1.2: Manufacturer: USB
    Sep 4 12:53:45 raspberrypi kernel: [ 123.310683] usb 1-1.2: SerialNumber: 1EF4063CC4B88FC5
    Sep 4 12:53:45 raspberrypi kernel: [ 123.323421] scsi0 : usb-storage 1-1.2:1.0
    Sep 4 12:53:46 raspberrypi kernel: [ 124.317611] scsi 0:0:0:0: Direct-Access Generic USB Flash Disk 2.00 PQ: 0 ANSI: 2
    Sep 4 12:53:47 raspberrypi kernel: [ 125.446241] ready
    Sep 4 12:53:47 raspberrypi kernel: [ 125.447021] sd 0:0:0:0: [sda] 511488 512-byte logical blocks: (261 MB/249 MiB)
    Sep 4 12:53:47 raspberrypi kernel: [ 125.448037] sd 0:0:0:0: [sda] Write Protect is off
    Sep 4 12:53:47 raspberrypi kernel: [ 125.448069] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
    Sep 4 12:53:47 raspberrypi kernel: [ 125.449123] sd 0:0:0:0: [sda] No Caching mode page present
    Sep 4 12:53:47 raspberrypi kernel: [ 125.449149] sd 0:0:0:0: [sda] Assuming drive cache: write through
    Sep 4 12:53:47 raspberrypi kernel: [ 125.457429] sd 0:0:0:0: [sda] No Caching mode page present
    Sep 4 12:53:47 raspberrypi kernel: [ 125.457460] sd 0:0:0:0: [sda] Assuming drive cache: write through
    Sep 4 12:53:47 raspberrypi kernel: [ 125.459182] sda:
    Sep 4 12:53:47 raspberrypi kernel: [ 125.462148] sd 0:0:0:0: [sda] No Caching mode page present
    Sep 4 12:53:47 raspberrypi kernel: [ 125.462183] sd 0:0:0:0: [sda] Assuming drive cache: write through
    Sep 4 12:53:47 raspberrypi kernel: [ 125.462205] sd 0:0:0:0: [sda] Attached SCSI removable disk

    Und wenn ich ihn entferne:

    Sep 4 12:55:05 raspberrypi kernel: [ 203.113042] usb 1-1.2: USB disconnect, device number 4

  • Sep 4 12:53:47 raspberrypi kernel: [ 125.457460] sd 0:0:0:0: [sda] Assuming drive cache: write through
    Sep 4 12:53:47 raspberrypi kernel: [ 125.459182] sda:
    Sep 4 12:53:47 raspberrypi kernel: [ 125.462148] sd 0:0:0:0: [sda] No Caching mode page present

    Da fehlt die Angabe von der Partition.. Bei mir sieht das so aus:

    Sep 3 19:41:18 raspberrypi kernel: [435921.291216] sd 49:0:0:0: [sda] Assuming drive cache: write through
    Sep 3 19:41:18 raspberrypi kernel: [435921.406156] sda: sda1
    Sep 3 19:41:18 raspberrypi kernel: [435921.528727] sd 49:0:0:0: [sda] Asking for cache data failed

    Siehst du den Unterschied?

    Wenn der Stick eingesteckt ist, prüf mal bitte: ls -la /dev/sda*

    Wenn es das auch nicht gibt stimmt mit dem USB-Stick etwas nicht!

  • Hm sowas hab ich aber noch nie gesehen - wüsste auch nicht wie man sowas erzeugt :huh:

    habe grad nen Kleinen Stick von mir mit fdisk geplättet und um da Daten drauf zu kriegen muss ich zwangsläufig eine Partition erzeugen und schwups ist es sda1

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!