Kiosk / Präsentation - Modus für RaspberryPI

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

    nachdem ich noch keine wirklich vollständige und gut wartbare Anleitung gefunden habe um auf dem Raspberry per HDMI einen Vollbild Browser zu starten und eine festgelegte Webseite anzeigen zu lassen, habe ich mich dran gemacht und eine Anleitung geschrieben.

    Referenzen:

    Features
    Der RaspberryPI startet direkt in den Chromium-Browser und zeigt eine festgelegt Webseite an. Sobald der Fernseher länger als 1 Minute am Stück aus ist, fährt der Raspberry wieder herunter.
    Man kann somit den Fernseher vom Strom nehmen und den Raspberry per Delay-Relais 5 Minuten später mit einem heruntergefahrenen System.

    Vorraussetzung
    Der Fernseher muss entweder zeitgleich oder früher angemacht werden, bevor der Raspberry startet. Hierfür hat der Raspberry einen Boot-Deley von 5 Sekunden.
    Begründung: Man kann zwar hdmi_force_hotplug=1 in der config.txt setzen, jedoch wir dann nicht mehr erkannt, ob der Fernseher ausgeschalten wurde.

    Backup-Tipp
    Speicherkarte in Linux-PC wie z.B. Ubuntu starten und gparted öffnen. Hier die Partitionsgröße von der größten Partition soweit verkleinern, dass noch 250MB oder je nach Wunsch übrig sind. Hierfürh muss die eventuell vorhandene SWAP Partition erst verschoben werden, sodass freier Speicherplatz nach der größten Partition vorhanden ist.
    Darauf achten, die SWAP Partition nach der vergrößerung wieder zurückzuschieben, sodass alle Partitionen ohne Lücken aneinander angrenzen.

    Dann im Terminal folgenden Befehl:

    Code
    sudo dd if=/dev/sdb bs=1M count=1128 | gzip > raspiinfo.img.gz


    Wobei /dev/sdb für die komplette Speicherkarte steht, "1M" für 1-Megabyte große Blöcke steht und 1128 für die Anzahl der Blöcke. Somit wollen wir 1M * 1128 = 1128MByte sichern. Anstatt 1128 setzt man die Gesamtgröße aller Partitionen plus einen kleinen Puffer von 50MByte an.

    Anleitung

    • Image auf Speicherkarte schreiben
    • SSH-Keys neu generieren

      • OpenSSH

        • rm -v /etc/ssh/ssh_host_*
        • dpkg-reconfigure openssh-server
      • Dropbear

        • rm -v /etc/dropbear/dropbear_*
        • dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
        • dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    • Hostname setzen in /etc/hostname und /etc/hosts
    • Passwörter neu setzen mit (sudo passwd)
    • Apt-get update && apt-get upgrade
    • Rpi-update
    • HDMI einstellen in config.txt

      • disable_overscan=1 #Schwarze Balken werden entfern
      • hdmi_group=2 #Enthält mode=82 für 1080p
      • hdmi_mode=82 #1080p
      • hdmi_drive=2 #HDMI und nicht DVI
      • gpu_mem 128 #Grafikkarte hat 128MB Ram (Standard wäre 64MB), kann bei chromium weggelassen werden, da noch keine GPU Unterstützung
      • boot_delay=5 #Start um 5sec verzögern, damit TV auch an ist
    • Output auf HDMI ausschalten per cmdline.txt

      • console=tty1 (Eintrag löschen)
      • console=tty3 loglevel=3 (Eintrag einfügen)
    • apt-get install xinit matchbox chromium-browser x11-xserver-utils ttf-mscorefonts-installer xwit psmisc
    • dpkg-reconfigure x11-common und auf "Anybody" stellen
    • Autostart: in /etc/rc.local einfügen und USERNAME einsetzen

      • if [ -f /boot/xinitrc ]; then
        ln -fs /boot/xinitrc /home/USERNAME/.xinitrc;
        su - USERNAME -c 'startx' &
        fi
      • if [ -f /boot/autopoweroff ]; then
        /boot/autopoweroff &
        fi
    • Autologin: in /etc/inittab ändern und USERNAME einsetzen

      • #1:2345:respawn:/sbin/getty --noclear 38400 tty1 (Zeile ausdokumentieren mit #)
      • 1:2345:respawn:/bin/login -f USERNAME tty1 /dev/tty1 2>&1 (Zeile einfügen)
    • Script xinitrc in /boot anlegen, wobei /boot die FAT32 Partition ist, die auch unter Windows erkannt wird und in der cmdline.txt und config.txt liegen
    • Script autopoweroff in /boot anlegen und ausführbar machen (chmod +x autopoweroff)

    Skripte

    xinitrc
    Unten bei chromium-browser kann man die URL angeben die geöffnet werden soll. Hierfür einfach "https://www.gooogle.de" ersetzen mit der gewünschen Seite

    autopoweroff
    Limit steht für die mindest Zeit in Sekunden die gewartet werden soll, bis der Raspberry herunterfährt. Hierbei gilt, dass der Fernseher diese Zeit am Stück aus sein muss, denn wenn er dazwischen wieder angeschaltet wird, wird der Timer zurückgesetzt.

    Einmal editiert, zuletzt von hoppler (24. Januar 2015 um 22:19)

  • Wie schnell läuft das ganze?
    Wenn ich chromium ganz einfach mit matchbox starte dann ist er super langsam. Also einfache CSS Transitions stocken schon sehr.

  • Hi,

    ich nutze AngularJs mit $http und eine einfache Ajax-Abfrage produziert 15-30% Prozent Auslastung. Allerdings kann man im Script den Chromium leicht durch einen anderen Browser ersetzen.
    CSS Transition oder sonstiges verwende ich nicht in meinem Projekt, daher kann ich da keine Performance aussagen machen.

  • Hallo, super Tutorial.

    Hat dies schon jemand mit dem RaspberryPi 2 umgesetzt, welches Image empfiehlt ihr mir?
    Hatte es bisher mit Raspbian Jessie Lite und Full probiert, beides hab ich nicht zum Laufen bekommen. Liegt eventuell daran das Chromium unter jessie manuell installiert werden muss.

    Vielen Dank.

Jetzt mitmachen!

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