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:Code:apt-get install chromium-browser
Und für die paar noch fehlenden X11 Pakete reicht ein:Code:apt-get install xinit
MitCode: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
Code:
apt-get install xdotool
Code: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
Code:#!/bin/sh /usr/bin/xinit /usr/local/bin/run_chrome.sh
Code:#!/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
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 script
Code: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)
Kommentar