Tag Archives: Projekt: Lautloser Rechner

[PLR] Dezente Verbringung und Verkabelung

Wie ich in früheren Posts erwähnt habe, ist einiges an Hardware und Kabeln hinzugekommen, seit ich den neuen Rechner in Betrieb genommen habe: Eine Steckerleiste, USB-Hub, Switch, Festplatte und ein Audioverteiler belegten fast die Hälfte meines Schreibtischplatzes, wenn man das Gewühl der vielen Kabel mitzählt. Über den Sound habe ich bisher noch nichts gesagt; um mehrere Rechner über einen Boxensatz zu betreiben, habe ich mir ein Hama Audio-Umschaltpult AP 04 zugelegt. Leider kann das Teil nur einen Ausgang beschalten, sodass ich da eventuell noch wechsle. Jetzt lasse ich aber ausnahmsweise mal Bilder sprechen.

[PLR] Spezialanwendungen

conky in Aktion

Außer den üblichen Stücken Software habe ich noch etwas speziellere Dinge installiert. Zum einen conky, um stets gewisse Systemparameter im Auge halten zu können, und unison sowie synergy, um der besonderen Mehrrechnersituation am Schreibtisch gerecht zu werden.

conky

conky ist ein Programm, das dem Anwender Output von zahlreichen Sensoren und Prozessen visuell aufbereitet anbietet. Es ist hochgradig an die jeweiligen Bedürfnisse anpassbar und wird über eine Textdatei eingestellt. conky sucht zuerst nach ~/.conkyrc. Positionierung, Auswahl der anzuzeigenden Daten und Darstellung mit Fonts und Farben lassen sich mit einer mehr oder weniger eingängigen Syntax konfigurieren. Eine komplette Übersicht über die möglichen Parameter und Variablen gibt es hier, eine Reihe von Beispielen inklusive der zugehörigen Konfigurationsdateien hier. Mein eigenes Setup basiert auf einem der dort angegebenen Beispiele. Erwähnenswert finde ich, dass man Teile optional einbinden kann: nur, wenn eine Partition eingebunden ist, zeige ihren freien Platz an, und nur, wenn mpd auch läuft, frage den aktuellen laufenden Titel ab. Dies ist einerseits nützlich, andererseits auch angebracht, da sonst unter Umständen Fehler erzeugt werden. conky ist unter diesen Namen in den Repositories von Ubuntu verfügbar und läuft bei Bedarf als Daemon.

synergy

Für leistungshungrige Anwendungen und Spiele unter Windows habe ich weiterhin meinen alten Desktoprechner unterm Schreibtisch stehen. Da er nur selten läuft und Schreibtischplatz obligatorisch knapp ist, wollte ich möglichst wenig Peripherie doppeln. Über einen Freund hatte ich schon vor Jahren von synergy gehört, das in Software Eingabegeräte in einer Sterntopologie multiplext. Man erklärt einen Rechner zum Server; an diesen ist die Hardware angeschlossen, in meinem Fall Tastatur, Maus und Fernbedienung. Sound- und Videogeräte kann synergy noch nicht verteilen. Der Server muss das komplette Setup kennen. So legt man fest, welcher Client auf welcher Seite des Servers liegt. Clients identifizieren sich über einen Namen, der folgerichtig eindeutig für einen Stern sein muss. Ist ein Client verbunden, schiebt man die Maus über die entsprechende Bildschirmkante und landet auf dem Schirm des Clients. Zurück gelangt man natürlich genauso. Übrigens wird die Zwischenablage der verbundenen Rechner gekoppelt. Es ist also möglich, auf Rechner A etwas zu kopieren und auf Rechner B einzufügen. Ich fand das schon öfter sehr praktisch. In meinem Fall benutzen natürlich beide Rechner den gleichen Monitor, den ich also stets umschalten muss, wenn ich zwischen den Rechnern wechsle. Erwähnenswert ist noch, dass synergy für Linux, Mac OS und Windows zur Verfügung steht und gemischte Setups explizit unterstützt. Die in den Repositories von Ubuntu verfügbare Version wird anscheinend nicht länger vom Originalautor weiterentwickelt; ich habe mit ihr bisher keinerlei Probleme gehabt. Für Leute, bei denen sich Bugs manifestieren oder die neugieriger als ich sind, gibt es einen Ableger, der aktiv verbessert wird.

Auf dem Server habe ich folgende Konfigurationsdatei erstellt:

# ~/.synergyconf
section: screens
  Bob:
  Charly:
end

section: links
  Bob:
        up      =       Charly
  Charly:
        down    =       Bob
end

section: options
  switchDelay = 500
end

Charly ist also oberhalb von Bob zu finden. Die einsame Option in Zeile 14 sorgt dafür, dass mir etwas Zeit am Bildschirmrand bleibt, bevor der Rechner gewechselt wird. Es gibt eine ganze Fülle an weiteren Optionen, die ich allesamt nicht vermisse. Nun meldet sich der Serverrechner selbst auch als Client an, sodass auf ich folgende zwei Befehle nach dem Login ausführe:

synergys --daemon -c ~/.synergyconf
synergyc --daemon -n Charly localhost

Zu beachten ist, dass der Server einen Moment zum Starten braucht, der Client also nicht sofort gestartet werden sollte, da sein Anmeldeversuch sonst ins Leere läuft. Ich habe das Problem umgangen, in dem ich zwischen den beiden Aufrufen weitere Programme starte.

Da der Desktoprechner Ubuntu und Windows booten kann, habe ich unter beiden Systemen synergy installieren müssen. Unter Windows war das sehr unkompliziert; in der übersichtlichen Konfigurationsoberfläche kann man direkt einstellen, dass das Programm als Dienst laufen und beim Boot gestartet werden soll, also insbesondere in der Loginmaske. Unter Ubuntu war das wesentlich komplizierter, zumindest wenn man wie ich unsauber arbeitet und kein Skript in init.d anlegt. Erschwerend kommt hinzu, dass der Loginschirm von root ausgeführt wird, die Session selbst natürlich vom User. Ich habe eine Lösung gefunden, die ich nicht als schön empfinde, aber die funktioniert. Hierfür folgende Zeilen in die genannten Dateien einfügen:

# /etc/gdm/Init/Default
killall synergyc
sleep 1
synergyc --daemon -n Bob 192.0.0.1
# /etc/gdm/PostLogin/Default
killall synergyc

Nun muss natürlich nach dem Login der Client neu gestartet werden, etwa über den entsprechenden Konfigurationsdialog von Ubuntu. Zu beachten ist noch, dass die Instanz von synergyc, die im Loginschirm läuft, root gehört. Ich hatte hier Probleme mit dem Tastaturlayout, da root bei mir amerikanisches Layout hatte, sonst alle Rechner und Nutzer natürlich deutsches. Auch kann man im Loginschirm von gdm das Layout setzen. Nachdem ich überall deutsches Tastaturlayout eingestellt hatte, lief alles rund.

unison

unison dient zur Synchonisation von Daten zwischen zwei Verzeichnissen auf einem oder verschiedenen Rechnern. Es arbeitet dabei symmetrisch, Änderungen beider Seiten werden also gleichberechtigt übertragen, wobei Konflikte bearbeitet werden. Ein ausführliches Handbuch gibt es beim Schöpfer, das man durchaus einmal querlesen sollte. Dadurch, dass kein Rechner als ausgezeichneter Server dient, kann man unison sehr flexibel einsetzen; ich habe mich trotzdem für eine Sterntopologie entschieden, um weniger Potential für Konflikte und veraltete Kopien zu haben. Das Tool legt eine Datenbank der zu synchronisierenden Daten an, um die einzelnen Abgleiche schnell ausführen zu können. Das erstmalige Erstellen dieser Datenbank kann für große Datenmengen schon mal einige Stunden dauern, dafür liegen die Abgleichzeiten später deutlich unter einer Minute, Übertragungszeiten nicht mitgerechnet. Ich übertrage mit SSH, was vergleichsweise langsam, dafür aber sicher ist. Im lokalen Netzwerk kann man direkt Sockets ansprechen, was die Übertragungsgeschwindkeit deutlich erhöhen sollte. Dafür kann dann stets nur ein Clientprozess bedient werden. Eine Konfigurationsdatei sieht etwa so aus:

# ~/.unison/daten
mountpoint = .
batch = true

root = /media/data/Daten
root = ssh://raphael@192.0.0.1//media/data/Daten

Besonders wichtig ist die Option mountpoint; durch sie wird geprüft, ob die angegebenen Verzeichnisse überhaupt existieren. Dies verhindert, dass eine nicht eingebundene Partition als Löschung interpretiert und die verfügbare Kopie komplett gelöscht wird.  Die Option batch unterbindet Zwischenfragen bei Änderungen und synchronisiert, ohne nachzufragen. Auch hier gibt es viel mehr Optionen, die komplizierte Szenarien abbildbar machen. Ausgeführt wird eine Synchronisierung dann durch Eingabe von

unison daten

Update: Habe das Layout von conky etwas gefälliger und ordentlicher gestaltet.

[PLR] Betriebssystem – Konfiguration

Nach der Basisinstallation wollte Fluxbox eingerichtet werden. Hier bedarf es einiger Eingewöhnungszeit, nach der die konsequente Einfachheit schnelle Anpassungen über eine Hand voll Konfigurationsdateien zulässt. Ich habe mich von dieser und dieser Seite und vermutlich einigen mehr, die ich nicht notiert habe, unterstützen lassen. Alle nötigen Dateien liegen im Homeverzeichnis des Nutzers und dort im Ordner .fluxbox. Die wichtigsten sind keys, menu und startup. In keys findet sich eine komplette Auflistung der Keybindings von Fluxbox, die man beliebig erweitern kann. Die Syntax ist etwas pingelig, sodass ich Recherche oder die Verwendung des Programms fluxkeys empfehle. Ich habe ein paar Zeilen hinzugefügt; die verwendeten Skripte liefere ich in späteren Beiträgen.

# Ausschnitt aus ~/.fluxbox/keys
Mod1 F1 :execCommand xfce4-terminal
Mod1 F2 :Exec fbrun
Mod1 F3 :execCommand ~/bin/switchkbl
Control Mod1 Left :prevWorkspace
Control Mod1 Right :nextWorkspace
None Print :execCommand ~/bin/screenshot
Mod4 c :execCommand mpc toggle
Mod4 x :execCommand mpc prev
Mod4 v :execCommand mpc next

Ein mögliches Menü

In der Datei menu ist das Hauptmenü definiert, das man erhält, wenn man einen Rechtsklick auf freie Fläche tätigt. Im Prinzip ist jede beliebige Struktur möglich. Einige Standardmenüs und so nette Dinge wie Wallpaper Chooser sind mit eigenen Tags fest vorgesehen. Man kann aber beliebige Kommandos ausführen lassen. Eine komplette Liste der möglichen Elemente gibt es hier. Meine Version ist rechts zu sehen; insbesondere ist vielleicht erwähnenswert, wie man über das Menü den Rechner herunterfahren kann, denn das darf eigentlich nur root. Hier hilft gksu, das den Nutzer graphisch nach dem Sudopasswort fragt. Für Details verweise ich auf meine menu.

startup ist ein Shellscript, das nach dem Login ausgeführt wird. In dieser Datei starte ich alle Daemons, die ich so brauche, was man vermutlich besser mit Skripten in init.d abwickelte; meine Änderungen belaufen sich auf Folgendes:

# Ausschnitt aus ~/.fluxbox/startup
PATH=~/bin:"${PATH}"
numlockx on
synergys --daemon -c ~/.synergyconf
deluged
conky -d
mpd
mpdscribble
deluge -u web &
synergyc --daemon -n Charly localhost

Damit Fluxbox Wallpaper ordentlich setzen kann, braucht es ein geeignetes Hilfsprogramm. Aus einer Reihe möglicher solcher habe ich mich für feh entschieden. Benutzt man nun das spezielle Wallpapermenü, setzt Fluxbox den gewählten Wallpaper immer wieder beim Login.

Um dem Moloch Firefox ein bisschen unter die trägen Arme zu greifen, bin ich einem Tip gefolgt, der eigentlich zur Schonung von SSDs gedacht ist. Das Verzeichnis /tmp wird in den RAM gelegt und Firefox so konfiguriert, dass er seinen Cache dort ablegt. Ich halte das auch und besonders für Systeme mit Festplatten für eine gute Idee.

Mod1 F3 :execCommand ~/bin/switchkbl

[PLR] Betriebssystem – Installation

Ich wollte auf meinen neuen Minirechner aus offensichtlichen Gründen gerne ein möglichst schlankes System mit schlanker Software installieren. Da ich unter allen Linuxdistributionen quasi nur Ubuntu kenne, kam kaum eine andere infrage. Ubuntu ist nun alles andere als ein Leichtgewicht, insbesondere wird standardmäßig GNOME und allerlei mehr oder weniger Nützliches installiert. Zum Glück fand ich diese Seite, die dem geneigten Leser nahelegt, ein minimales Image von Ubuntu zu installieren. Dieses hat gerade einmal 12MB und lädt während der Installation alles Nötige herunter. Das Image bekommt man auf einer wenig beworbenen Seite von Canonical selbst.

Dieses Image kommt nur mit dem blanken Kern von Ubuntu daher, also insbesondere ohne X und alles, was einen solchen bräuchte. Welchen Display- und Windowmanager man wählt, ist dem Geschmack freigestellt. Ich habe mich für XDM und Fluxbox entschieden. Die erste Runde Installationen, um überhaupt mal was Buntes zu sehen, ging also so:

sudo aptitude update
sudo aptitude install xorg xdm fluxbox menu fluxconf xfce-terminal
sudo reboot

Für weitere grundlegende Anwendungsfälle habe ich versucht, möglich wenige und kleine Pakete zu installieren, mit einer Ausnahme: Ich mag den Luxus von Firefox und nutze ihn deshalb auch auf dem Minisystem. Das ist für die Performanz nur eine beschränkt gute Idee und ich würde jedem weniger Bequemen empfehlen, einen kleineren Browser zu installieren. Auch sonst werden Puristen an der ein oder anderen Stelle entsetzt aufschreien; insofern ist die Auswahl vermutlich ein Kompromiss aus Schlankheit und Bequemlichkeit. Letztendlich haben den Weg auf die Maschine die folgenden Pakete gefunden, ohne alle Abhängigkeiten aufzulisten:

  • Dateiverwaltung: thunar, thunar-archive-plugin, thunar-media-tags-plugin, thunar-thumbnailers
  • Basisanwendungen: evince, geany, gpicview, openssh-server, xarchiver
  • Medien: mpd, mpc, mpdscribble, sonata, vlc (mit einer Reihe von Bibliotheken)
  • Internet: deluge-webui, firefox, pidgin
  • Sound: pulseaudio, paman, paprefs, pavumeter

Mit dieser Auswahl sollte schon ein leidlich nutzbares System installiert sein. Zu diesem Zeitpunkt war die Installation unter 1,5GB oder etwa 800 Pakete groß, bootete in 14s von BIOS- zu Loginschirm und in 4s von Login zu Desktop und verbrauchte nach dem Boot 50MB RAM. Natürlich ist im Laufe der letzten Monate Einiges hinzugekommen, insbesondere sun-java6-jdk. Um zu vermeiden, dass sich mit der Zeit verwaiste Pakete ansammeln, kann ich das Programm deborphan empfehlen, das nicht mehr benötigte Bibliotheken anzeigt.

Übrigens läuft, soweit ich das bisher beurteilen kann, alle Hardware ohne weiteres Zutun, insbesondere auch Webcam und USB-Mikrophon (beide Logitech).

[PLR] Anschaffung und Zusammenbau

Mein neuer Rechner sollte lautlos sein und für die üblichsten Tätigkeiten genügen (siehe hier). Recherchen unter Netbookbesitzern haben ergeben, dass solche Hardware offenbar genügt. Ich habe mich also nach Komplettrechnern dieser Leistungsstärke umgesehen, die passiv gekühlt funktionieren. Bei deutschen Händler konnte ich da im Wesentlichen nichts finden. Beim bekanntesten Auktionshaus hierzulande stieß ich auf eine Maschine mit folgenden Komponenten:

Einblick von oben

Einblick von oben

  • M350 Universal Mini-ITX Gehäuse
  • Intel Atom N270 1.6Ghz
  • 2 GB DDR2 RAM
  • Intel GMA 950
  • Intel HD Audio
  • Realtek Gigabit Ethernet

Das Kästchen hat mich inklusive Versand aus den USA und Zoll etwa 215€ gekostet. Das Gehäuse misst etwa 20x20x6 cm und ist komplett passiv belüftet, was meine Wünschen sehr entgegen kommt. Als Speichermedium habe ich mit ganz im Sinne von Lärm-, Wärme- und Energieersparnis eine SSD gegönnt, genauer eine Super Talent UltraDrive GX mit 64 GB, Kostenpunkt 165€.

Einblick von der Seite; oben die SSD

Einblick von der Seite; oben die SSD

Der Rechner kam in Teilen; ich musste noch Slotblech und Motherboard in das Gehäuse einsetzen, RAM und SSD installieren – das Übliche eben. Die Teile ließen sich alle gut im Gehäuse unterbringen. Ich habe den Rechner mittels mitgelieferter Schrauben und dank VESA an den Monitor gehängt, womit der Rechner natürlich gut aus dem Weg ist. Im Betrieb kann man unmittelbar über den Gehäuse einen leichten, lauen Lufstrom fühlen, der von effektiver Kühlung kündet.

Direkt nach dem Zusammenbauen wollte der Rechner nicht booten und kam nicht über den BIOS-Schirm hinaus. Nachdem ich alles nochmal gezogen und wieder hineingesteckt hatte, ging es dann aber gut und weiter. Die Installation habe ich der Einfachheit halber mit einem externen DVD-Laufwerk vorgenommen.

Am Monitor montiert

Die gewählte Hardware kann die allermeisten Aufgaben, die ich forderte, souverän erledigen. Einzig die Wiedergabe von HD-Videos ist zumindest mit meinen Einstellungen nicht möglich. Ich habe aber auch schon Berichte gelesen, wo Menschen ihre CPU auf 2Ghz übertakten und dann Erfolge verzeichnen. Auf sowas möchte ich mich ganz konservativ aber nicht einlassen.

Um die Anschlussmöglichkeiten des Rechners auf ein akzeptables Maß zu erweitern und auf den Schreibtisch auszudehnen, etwa für USB-Sticks, habe ich mir noch zwei USB-Hubs angeschafft: einen D-Link DUB-H7 (etwa 30€) und einen MSI MEGA USB 4port HUB, die beide wunderbar ihren Dienst verrichten. Für die Netzwerkverteilung sorgt ebenfalls souverän ein D-Link DGS-1005D (knappe 30€). Viel Platz für Daten liefert eine Samsung HE502IJ 500 GB (etwa 47€) in einem Sharkoon Rapid-Case (etwa 26€). Mit alledem ist der Knirps für alle Rechenlagen gerüstet – und mein Kabelberg immens gewachsen.

Das gesamte Setup hat sich als sehr stromsparend erwiesen. Der Rechner selbst braucht unter Last 23W, mit allen oben genannten Geräten unter Last knappe 50W. Wenn die externe Festplatte ausgeschaltet ist, was meistens der Fall ist, dann bleiben noch 30W übrig. Im Vergleich zu den 100W, die mein großer Desktoprechner schon idle verbraucht, ist das eine starke Verbesserung. Und der Monitor ist jetzt das lauteste Gerät auf dem Schreibtisch.