Nach meiner Anfrage (https://knx-user-forum.de/knx-eib-fo...aufsetzen.html) habe ich beschlossen mir selber das notwendige Wissen an zu lesen. Um für andere die Lernkurve nicht zu steil werden zu lassen, hier eine kleine Anleitung in 10 Schritten.
Ziel:
Einen Visu-PC, der nichts anderes macht, als eine Web/HTML basierte Visu anzuzeigen. Also kein unnötiger Ballast, etc. pp. - dafür die Anzeige so schnell wie möglich, inkl. schnellster Aufwach- und Boot-Zeiten und möglichst niedrigem Stromverbrauch wenn nicht benötigt.
Realisierung:
So ein Ziel lässt sich eigentlich nur vernünftig mit Linux realisieren.
Dort kann man das System so abstricken, dass nur das nötigste geladen wird. Konkret heißt das, dass kein Window-Manager (oder gar ein Desktop Environment) zum Einsatz kommen soll.
Hardware:
Auch wenn dieses HowTo eigentlich Hardware unabhängig ist, als Referenz kurz die eingesetzte Hardware:
Nun kann man weitere Kleinigkeiten erledigen, wie Wake on LAN aktivieren (Die Datei /etc/rc.local um ethtool -s eth0 wol g an geeigneter Stelle ergänzen) oder per Laptop-Mode und UnionFS die Festplatte im laufenden Betrieb arbeitslos machen und ggf. die Bootzeiten noch etwas mehr optimieren. Auch die Touch-Display Kalibrierung dürfte noch ausstehen
Fazit:
Der Rechner läuft ohne Schnick-Schnak und ist auch gleich hochgefahren (meine o.g. Konfiguration ist nach 22 Sekunden da - vom Stromschalter bis zum Visu-Bild, inkl. der unbeeinflussbaren BIOS Zeit)
Ziel:
Einen Visu-PC, der nichts anderes macht, als eine Web/HTML basierte Visu anzuzeigen. Also kein unnötiger Ballast, etc. pp. - dafür die Anzeige so schnell wie möglich, inkl. schnellster Aufwach- und Boot-Zeiten und möglichst niedrigem Stromverbrauch wenn nicht benötigt.
Realisierung:
So ein Ziel lässt sich eigentlich nur vernünftig mit Linux realisieren.
Dort kann man das System so abstricken, dass nur das nötigste geladen wird. Konkret heißt das, dass kein Window-Manager (oder gar ein Desktop Environment) zum Einsatz kommen soll.
Hardware:
Auch wenn dieses HowTo eigentlich Hardware unabhängig ist, als Referenz kurz die eingesetzte Hardware:
PC:
Schritt für Schritt Anleitung:Acer Aspire Revo R3610 mit
Atom 330 (1,6 GHz, Dual-Core)
nVidia ION
2 GB RAM
250 GB Festplatte (wird bei Gelegenheit durch Flash ersetzt um Stromverbrauch zu senken und Boot-Performance noch einmal deutlich zu
beschleunigen)
Linpus Linux (nett, aber hier absolut unbrauchbar)
Touchpanel:Atom 330 (1,6 GHz, Dual-Core)
nVidia ION
2 GB RAM
250 GB Festplatte (wird bei Gelegenheit durch Flash ersetzt um Stromverbrauch zu senken und Boot-Performance noch einmal deutlich zu
beschleunigen)
Linpus Linux (nett, aber hier absolut unbrauchbar)
HomeCockpit Minor von Dialogic Systems
DISCLAIMER: Wer ein Linux von "unten Aufbaut" sollte gewisse systemnahe Erfahrung mitbringen. Der wird dann hoffentlich auch diesen Text verstehen. Wer als Linux-Anfänger diesen Text nicht versteht, sollte vermutlich erst noch etwas Erfahrung sammeln um nicht gleich bei der ersten Stolperfalle hin zu fallen...
- Basis ist das aktuelle Ubuntu, das vor kurzem erst mit LTS (Long Term Support) veröffentlicht wurde - und ständige Systemupdates wollen wir ja hier verhindern...
Von Ubuntu gibt es eine MinimalCD die den minimalen Umfang mitbringt, den man braucht, um ein gerade noch laufendes System zu bekommen - also genau die Basis die wir suchen.
https://help.ubuntu.com/community/Installation/MinimalCD
Da ich auf die Performance steigernde Wirkung der zusätzlichen Register des 64 Bit-Modus spekuliere, fiel meine Wahl auf:
http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/mini.iso - Da das System selbstverständlich kein CD Laufwerk hat, muss die ISO auf einen Bootbaren USB-Stick gebracht werden. Das geht sehr einfach mit dem Tool UNetbootin (Universal Netboot Installer) von
UNetbootin, Universal Netboot Installer | Download UNetbootin, Universal Netboot Installer software for free at SourceForge.net - Der PC muss nun im BIOS so eingestellt werden, dass er auch vom USB-Stick bootet. Dabei kann man beim hier verwendeten Revo gleich mit einstellen:
- Halt On: No Errors
- Quick Boot: Enabled
- Onboard SATA Mode: AHCI
- Power On by Onboard LAN: Enabled
- Deep Power Off Mode: Disabled (nur so ist Wake on LAN möglich)
- Restore on AC Power Loss: On (je nach Präferenz und Betriebsstrategie...)
- Nun Bootet man vom USB-Stick und wählt den Command line install.
Als User habe ich den "Visu User" mit dem Login "vu" gewählt. - Wenn das System installiert wurde (bei mir hatte das Installieren des Bootloaders nicht funktioniert, dass konnte ich aber leicht mit dem Rettungssystem vom gleichen USB-Stick nachholen) bootet man das neue System. Da die Installation wirklich minimal ist, gibt es nicht einmal einen SSH-Server, d.h. Remote Arbeiten geht noch nicht. Bei den Debian Derivaten lässt sich das aber leicht (als root) beheben:
Code:apt-get install openssh-server
- Ab jetzt kann man vom normalen PC aus das System vervollständigen. Um das auch noch etwas komfortbaler zu gestalten kann man nun (OPTION!) einen SSH Key-Exchange durchführen damit man sich das (hoffentlich gut gewählte) Passwort des Visu-PCs nicht auswendig merken muss:
Auf dem Visu-PC das Verzeichnis /root/.ssh/ erstellen und dort den eigenen öffentlichen Schlüssel (z.B. .ssh/id_rsa.pub) unter dem Dateinamen authorized_keys ablegen.
Wer nicht gleich als Root auf die Maschine will, kann natürlich auch den Exchange mit dem User vu durchfrühren (/home/vu/.ssh wäre dann das Verzeichnis) - Nun fehlen noch wichtige Bestandteile einer Visu: der Browser und den dafür notwendigen X Server.
Als Browser habe ich mich für Chromium, d.h. der Open Source Variante vom Google Chrome entschieden:(hier wird der Rattenschwanz von notwendigen Bibliotheken gleich mit installiert)Code:apt-get install chromium-browser
Und für die paar noch fehlenden X11 Pakete reicht ein:(von den hier mit installieren Treiben lassen sich einige, von denen klar ist, dass sie nicht benötigt werden, gleich wieder entfernen)Code:apt-get install xinit
Mitkönnte man nun bereits lossurfenCode:xinit chromium-browser
- fehlt also nur noch die Einrichtung, dass der Browser automatisch startet, etc. pp. - Da Chromium sich nicht an die Vorgaben bzgl. Fenstergröße hält, installieren wir noch
So lässt sich problemlos im laufenden Betrieb das Fenster nach links obenCode:
apt-get install xdotool
und auf maximale Größe (bei einem 1024x768 Display) setzenCode:xdotool windowmove `xdotool search --onlyvisible --name chromium` 0 0
Code:xdotool windowsize `xdotool search --onlyvisible --name chromium` 1024 768
- Zum automatischen Starten des X Window Systems und vom Chromium erzeugen wir zwei Hilfsskripte.
/usr/local/bin/start_visu_x.sh
/usr/local/bin/run_chrome.shCode:#!/bin/sh /usr/bin/xinit /usr/local/bin/run_chrome.sh
Beide Skripte müssen noch ausführbar gemacht werdenCode:#!/bin/sh /usr/bin/xhost +localhost /usr/bin/sudo -H -u vu -- /usr/bin/chromium-browser \ -geometry=1024x768+0+0 \ --no-first-run \ -disable-dev-tools \ -disable-hang-monitor \ -disable-java \ -disable-logging \ -disable-metrics \ -disable-metrics-reporting \ -disable-plugins \ -disable-popup-blocking \ -disable-prompt-on-repost \ -start-maximized \ --kiosk \ [URL]http://192.168.0.30/visu/[/URL]
Code:chmod +x /usr/local/bin/start_visu_x.sh /usr/local/bin/run_chrome.sh
- Nun fehlt nur noch das Einbinden in den Boot-Vorgang:
Durch die Verwendung von upstart reicht es aus diese Datei anzulegen:
/etc/init/my-x-system.conf
Das System ist nun auch so konfiguriert, dass wenn der Browser sich beendet (oder beendet wird), er gleich wieder gestartet wird. Damit sich Chromium nun nicht ständig beschwert, dass es unsauber beendet wurde nimmt man ihm einfach noch ein paar Schreibrechte:Code:# My X Windows System # # run only one X windows programm # (based on the kdm start script...) description "My X Windows System" author "Christian Mayer" start on (filesystem and net-device-up IFACE=eth0 and tty-device-added KERNEL=tty7 and (graphics-device-added or stopped udevtrigger)) stop on runlevel [016] #emits starting-dm respawn script #[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/kdm" ] # Check kernel command-line for inhibitors for ARG in $(cat /proc/cmdline) do case "${ARG}" in text|-s|s|S|single) exit 0 ;; esac done if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE elif [ -r /etc/environment ]; then . /etc/environment export LANG LANGUAGE fi #initctl emit starting-dm DM=kdm exec /usr/local/bin/start_visu_x.sh end scriptFertigCode:chmod -w ~vu/.config/chromium/Default/* ~vu/.config/chromium/Default ~vu/.config/chromium/Local\ State

Nun kann man weitere Kleinigkeiten erledigen, wie Wake on LAN aktivieren (Die Datei /etc/rc.local um ethtool -s eth0 wol g an geeigneter Stelle ergänzen) oder per Laptop-Mode und UnionFS die Festplatte im laufenden Betrieb arbeitslos machen und ggf. die Bootzeiten noch etwas mehr optimieren. Auch die Touch-Display Kalibrierung dürfte noch ausstehen
Fazit:
Der Rechner läuft ohne Schnick-Schnak und ist auch gleich hochgefahren (meine o.g. Konfiguration ist nach 22 Sekunden da - vom Stromschalter bis zum Visu-Bild, inkl. der unbeeinflussbaren BIOS Zeit)





- schließlich ist das ein Offsite-Backup von teuren Daten (bei einem üblichen Stundensatz)

Kommentar