Lucid Lynx und Dinovo Edge die zweite.

Wie aus meinem alten Beitrag zu dem Thema ersichtlich ist, gibt es einige probleme mit der DinovoEdge und Lucid Lynx. Selbst wenn man mal die DinovoEdge gepairt bekommen hat, stellen sich immer mal wieder leinere problemchen in den weg. Sei es der SplashScreen der einen auffordert S zu drücken um einen fehlgeschlagenen mount zu "skippen" oder eine Tastatur die vergisst, dass sie gepairt wurde. Wem das nicht reicht, der schlägt sich mit einem englischen default layout herrum.

Man kann sich dieser Probleme auf einen Schlag entledigen. Zwar mit dem Holzhammer aber dafür endgültig! Einfach in der Datei "/lib/udev/rules.d/70-hid2hci.rules" folgende Zeilen auskommentieren.

# Logitech devices
KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \
  RUN+="hid2hci --method=logitech-hid --devpath=%p"

Anschießend einmal den udev-Deamon neustarten oder gleich das ganze System durchbooten. Der Dinovo-Dongle arbeitet dann wieder im einfachen USB-Modus und die Tastatur ist von anfang an verfügbar, muss nicht gepairt werden und wird vom X-Server mit dem richtigen Tastaturlayout bedacht.

LUKS – Verschlüsselte Platten retten.

Aus gegeben Anlass ( an dieser Stelle nochmal dank an den Ubuntu-Server-Installer) ein kleinen hinweis was man machen kann, wenn einem der CryptHeader zerstörrt wurde.

Zuerst muss man Ruhe bewahren. Dann sich die Fakten klar machen. Bei modernen Verschlüsslungsverfahren wird nicht gesamte Platte mit einmal verschlüsselt sondern immer häppchenweise. Eine zerstörte verschlüsselte Partition lässt sich genauso wieder herstellen wie eine normale Partition. Mit einem Unterschied: der CryptHeader. Dieser enthällt den Hauptschlüssel, ohne diesen hat man verloren. Sowohl ein eventuell eingerichtetes KeyFile als auch das Password leifern nur zugriff auf diesen Schlüssel. Ist dieser Schlüssel im eimer, so bleibt nur noch das Entschlüsseln per BruteForce… wie Erfolgversprechend das ist, hängt von der Schlüssellänge ab… Wenn man ein Backup einpsielen kann, ist es jetzt aber der richtige Zeitpunkt dies zu tun….

Meine Lektion vom Wochenende, ohne CryptoHeader hat man kaum eine Chance. Eventuell kann man noch wie hier beschrieben versuchen zu retten, was zu retten ist und den Header selber „neu schreiben“. Das funktioniert allerdings nur, solange der Schlüssel selber noch intakt ist. Die chancen dafür stehen gar nicht schlecht. Der eigendliche Schlüssel wird relativ weit hinten „versteckt“. Bei mir erst ab Byte 4096 (wenn ich die Daten richtig interpretiere).[1. Wiki: LUKS-Header-Format]

Um einem solchen Stress aber aus dem weg zu gehen gibt es eine ganz einfache Methode: einfach den Luks-Header sichern! War das früher nur über dd un der Kenntniss der HeaderLength möglich, geht das ganze jetzt komfortabel über das cryptsetup-Kommando. Dazu muss man die gewünschte Partition unmount und das CryptDevice schließen, anschließend kann man folgenden Befehl ausfürhen:

sudo cryptsetup luksHeaderBackup  --header-backup-file=header.backup /dev/sdXN 

Um im Falle eines Fehlers den Header wieder herzustellen braucht es folgenden Befehl:

sudo cryptsetup luksHeaderRestore  --header-backup-file=header.backup /dev/sdXN

Wichtig dabei anzumerken ist, dass das HeaderFile auf keinen fall in der verschlüsselten Partition liegen sollte. Das bringt wenig. Es macht auch keinen sinn, dieses File irgendwo aufzubewahren, wo man ohne weiteres keinen Zugriff drauf bekommt. Von diesem File geht in erster linie keine Sicherheitsrisiko aus. Da es ein Angreifer eh ohne weiteres von der Platte ausgelesen werden kann und dies tun wird, um so das Password zu schneller brechen. Man sollte dieses file aber auch nicht unbedingt bei Facebook einstellen 😉

Der Samsung N220

Nachdem mein EeePC 1008HA nach knapp einem Jahren seinen Dienst quittiert hat (Diplay Janiere waren nicht die stabilsten) habe ich mir den N220 von Samsung zugelegt. Von den Ausmaßen und den Papierwerten sieht der dem EeePC zum verwechseln ähnlich. Erst auf den Zweiten blick werden die Unterschiede deutlich. Das ist zum Beispiel die größere Festplatte, das matte (!!!!) Display und die exorbitante Akkulaufzeit von ca 9h. Dazu kommt, dass unter der Haube der neue N450 von Intel werkelt. Zum einen soll dieser weniger Strom ziehen, zum anderen bietet die integrierte Grafikkarte Unterstützung beim Decodieren von H264 Videos. In der Verarbeitung wirkt der Samsung N220 um einiges besser verarbeitet als sein Asus Pendant. Dafür sieht er bei weitem nicht so Fancy aus.

Auf der „nicht so Toll“ Seite steht aber ganz klar die Linux Unterstützung. Mit einem Ubuntu 10.04 (Lucid Lynch) kann man den N220 ohne Probleme in Betrieb nehmen. Alle wichtigen Funktionen funktionieren auf Anhieb. Sowohl LAN, WLAN, Suspend to Disk las auch Suspend to Ram funktionieren tadellos. Der Frickelfaktor kommt (leider) dennoch nicht zu kurz. Bei den sekundären Funktionen wird es dann ungemütlich. Zum einen funktionieren die FN-Key zu anfangs nicht. Dies liegt an einer unvollständigen UDEV-Rule. Der Patch dafür ist schon erhältlich. Weiterhin lässt sich das Backlight noch nicht dimmen. Was ein wenig unangenehm ist. Auch die Status-LEDs werden nicht befeuert. Das bedeutet, dass man die WLAN-Karte zwar mittels RFKill ausknipsen kann, dies auch im Stromverbrauch merkt, aber keine visuelle Rückmeldung bekommt.

Alles in allem ein gerät das man empfehlen kann

The post is brought to you by lekhonee v0.7

Canon MP990 und Ubuntu

Der MP990 ist das neue Flaggschiff unter Canons Home-Office multifunktions Fotodruckern. Er kann mittels WiFi/WLan,RJ45 und USB- Anschluss angesprochen werden. Wer jetzt vermutet, dass der MP990 ein Printerserver integriert hat oder gar Scan-To-Email beherrscht, der irrt. Eingebunden wird der Drucker über das Canon eigene bjnp-Protokoll.

Es spielt keine Rolle wie man den Drucker anschließt. Sowohl für den USB als auch für den Netzwerkbetrieb braucht es spezielle Treiber. Ein anschließen an einen zentralen Server bringt somit nur etwas, wenn man zusätzliche Funktionen wie Scan-to-Mail, Benutzerverwaltung, etc. benötigt.

Drucken

Um die Druckfunktion unter Ubuntu (oder Linux allgemein) zum Laufen zu bekommen, muss man sich die kostenpflichtigen Treiber TurboPrint von ZEDOnet zulegen. Die schlagen zwar nochmals mit 30 oder 60 Euro zu, dafür funktioniert das Drucken anschließend ohne jede Einbuße in Qualität und Performance. Und was soll man sagen. Man merkt diesen Treibern an, dass sie kein lästiges Nebenprodukt sind. Von der Bedienung her ein Segen.

Scannen

Beim scannen wird es kniffliger. Prinzipiell wird die Scann-Einheit von SANE unterstützt und kann somit von jeder Applikation angesprochen die SANE ansprechen kann. Das ist so ziemlich alles was in der Ubuntu-Welt von sich behauptet ein Grafikprogramm zu sein.
Der Hacken an der Sache ist, dass SANE erst ab der Version 1.21 den MP990 unterstützt. Das offizielle Paket aus den Lucid Quellen installiert aber 1.20. Im SANE-GIT-Repositorie liegt 1.22 vor. Man hat nun zwei Möglichkeiten:

  • SANE aus den GIT quellen bauen. Selbst ist der Mann…
  • SANE aus einem alternativen Paket installieren. Dazu muss man wie folgt vorgehen:
sudo add-apt-repository ppa:robert-ancell/sane-backends
sudo apt-get update
sudo apt-get upgrade

Da SANE meist schon installiert ist, wird nun die neue Version (in diesem Fall 1.21) eingespielt und man kann den Scanner ansprechen.

Tomcat und Eclipse unter Ubuntu zum laufen bekommen.

Unter Ubuntu wird die Tomcat (wie unter Linux üblich) verteilt über mehrere Verzeichnisse installiert. Leider kommt damit das Eclipse-Plugin nicht so klar. Es bringt beim konfigurieren immer folgende Fehlermeldung.

The Tomcat installation directory is not valid.
It is missing expected file or folder conf.

Um diesen Fehler zu beheben einfach folgende Befehle ausführen:

cd /usr/share/tomcat6
sudo ln -s /var/lib/tomcat6/conf conf
sudo touch /usr/share/tomcat6/conf/catalina.policy
sudo chown o+r /usr/share/tomcat6/conf/tomcat-users.xml

Lucid Lynx und Dinovo Edge

Wer unter der neuen Ubuntu Version (aktuell als Beta erhältlich) seine Dinovo Edge anschließt sollte erstmal eine zweite USB-Tastatur parat haben. Die Dongle wird nun nicht mehr als USB-Dev missbraucht, sondern dient als vollwertiger BT-Receiver. Das blöde an der Sache ist, dass die Tastatur erst genutzt werden kann, nachdem sie gepairt wurde. Zum pairen muss man sicher aber einloggen, was ohne funktionierende Tastatur nicht funktioniert.

Um also Ärger aus dem weg zu gehen, entweder während des Setup-Prozesses auf „autologin“ stellen, sich eine weite Login-möglichkeit schaffen oder einfach eine zweite simple Tastatur zur hand haben.

Um zu pairen einfach auf der Rückseite die Taste zum connecten drücken. Anschließend im Bluetooth-Verwalter der wahl ein Pairing herstellen. Als pin gibt man eine beliebige vierstellig Zahl ein. Anschließend (nachdem man bestätigt hat) gibt man an der DinovoEdge die gleiche Zahl ein und bestätigt mit Enter.

Ab da kann man die Tastatur ohne Probleme nutzen.

Logitech DinovoEdge unter (K)Ubuntu „zum laufen bringen“

Eine kurze Anleitung, wie man die Medientasten der DinovoEdge unter Linux/X11 und KDE/XFCE und Gnome zum laufen bringt.

Wenn man eine DinovoEdge an einen mit (K)Ubuntu betrieben wird feststellen, dass die Tastatur und das TouchPad zwar funktionieren aber die netten Zusatztasten nicht. Das hat zwei Gründe:

Bei ersterem muss man abwarten, bei letzerem kann man Abhilfe schaffen. Dazu braucht man einen „KeyLogger“ wie xev. Führt man diesen auf der Konsole aus, kann mich sich anschauen, welche Tasten welche KeyCodes auslösen.

Hat man erstmal dadurch eine Liste von KeyCodes zusammengestellt muss man diese auf die „Medientasten“ mappen. Dazu gibt es zwei Möglichkeiten.

  • Eine eigenes Tastaturlayout erstellen und dem X11 über die xorg.conf zuweisen. Diese Variante ist die „sauberste“ aber auch die mit dem meisten „bloat“. Wer es dennoch durchziehen will, sollte hier mal nachlesen.
  • Oder man kann mittels Xmodmap das aktuelle Tastaturlayout erweitern. Das ist unter Ubuntu besonders einfach, da dies automatisch vom System durchgeführt werden kann.

Um letzteres umzusetzen muss man einfach in seinem Home-Verzeichniss eine Datei mit dem namen .Xmodmap anlegen. Diese wird automatisch nach dem Login geladen und „bearbeitet“ das aktuelle Tastaturlayout. Für die DinovoEdge reicht diese Datei.

keycode 225 = XF86Search
keycode 163 = XF86Mail
keycode 180 = XF86HomePage
keycode 173 = XF86AudioPrev
keycode 174 = XF86AudioStop
keycode 172 = XF86AudioPlay
keycode 171 = XF86AudioNext
keycode 121 = XF86AudioMute
keycode 179 = XF86AudioRecord
keycode 150 = XF86PowerDown

Die Syntax sollte selbst erklärend sein. Wenn man andere Tasten zuordnen möchte, kann man die datei /usr/share/X11/XKeysymDB konsultieren, dort sind alle „möglichen“ Zuordnung hinterlegt.Hat man die Datei angelegt, kann man mittels folgendem Befehl, die Änderungen „im System Bekannt machen“

xmodmap .Xmodmap 

Danach kann man diese Tasten in Fenstermanager seiner Wahl funktionen zuweisen. Nach einem Neustart/Login wird diese Änderung automatisch angewendet.

Stromverbrauch der Seashell unter Karmic Koala

Wenn man Ubuntu 9.10 auf einem Netbook installiert, ist die Ausbeute des Akkus nicht optimal. Standardmäßig ist zwar der gnome-powersave-daemon aktiviert, dieser nutzt jedoch nicht das volle Potential. Ein Verbrauch von ca. 9 Watt und 4 Stunden Akkulaufzeit (ohne WLAN) ist nicht berauschend. Mit ein paar Handgriffen bekommt man aber den Verbrauch unter 6 Watt gedrückt und erreicht so die 6 Stunden Akkulaufzeit. Mein Rekord liegt bei knapp 7 Stunden, dabei war der Laptop jedoch nicht wirklich in Benutzung…

Erster Einstiegspunkt zum Stromsparen ist der „laptop_mode“-Tools. Diese sind standardmäßig installiert, jedoch deaktiviert. Dabei bieten sie wesentlich granularere Möglichkeiten das System auf „Sparsamkeit“ zu trimmen. Die wichtigen/benötigten Möglichkeiten kurz zusammen gefasst:

  • Starten und Stoppen von Diensten: Im Batteriebetrieb ist der betrieb einiger Diensten unter Umständen nicht nötig oder nicht so wichtig, dass sie kritisch für das System sind. zb: der NTP dienst.
  • das Abschalten von ungenutzten Video-Outs
  • das Einschränken der verfügbaren Bandbreite bei Ethernet interfaces. 1000MBit sind selten wirklich nötig und kostet das ein oder andere Watt

Um den Dienst scharf zu schalten, muss man die Datei /etc/default/acpi-support bearbeiten.

# Switch to laptop-mode on battery power - off by default as it causes odd
# hangs on some machines
ENABLE_LAPTOP_MODE=true

Kleinere Änderungen müssen auch unter /etc/laptop-mode/conf.d/lcd-brightness.conf gemacht werden, da sich unter dem 1008HA das Interface für das LCD Display wo anders befindet.

BRIGHTNESS_OUTPUT="/proc/acpi/video/VGA/LCDD/brightness"

Die Werte für die Helligkeit können dabei zwischen 0 und 15 skalieren.

Weitere Änderungen können nach Wunsch in den Dateien unter /etc/laptop-mode/conf.d/ gamacht werden. Hier kann man nach belieben sämtliche Veränderungen vornehmen. Das meiste ist selbsterklärend. Dabei gilt immer, alles was man im Normalbetrieb nicht braucht, sollte man abschalten und bei bedarf zuschalten.

Neben diesen „banalen“ Änderungen gibt es noch andere Optimierungen.
Einen „großen“ Vorteil bringt es RamDisk einzusetzten. Solange man mechanische Festplatten einsetzt, ist einer der größten „Stromfresser“ eben diese Festplatte. Entweder leistet man sich bei Gelegenheit eine (sündhaft) teure SSD oder man sieht zu, dass man Mechanische Zugriffe auf die Festplatte so lange unterdrückt wie irgend möglich.

Eine RamDisk ist dabei die UltimaRatio. Mittels tempfs kann man im RAM einen Bereich reservieren, der anschließend in das FileSystem gemountet wird. So kann man zb. den Cache des Browsers oder „/var/log“ direkt in den RAM legen. Auf der haben Seite verbucht man damit, dass die Fesplatte über „lange“ Zeiträume nicht angetastet werden muss. Negativ ist halt, dass alle abgelegten Daten den Kaltstart nicht überleben werden.

Alle bisherigen Optimierungen nutzten nur vorhandene Techniken besser aus, ohne das System in die Instabilität zu treiben. Die weiteren Eingriffe gehen Tiefer und können das System komplett zerschießen. Anwendung auf eigene Gefahr.

Unter Jaunty gab es eine reihe von Traytools die die „Super Hybrid Engine“. Leider fühlten sich einige dieser Entwickler von der Ubuntu-Entwicklungs-Politik so angepisst, dass sie die Entwicklung eingestellt haben. So muss man sich inoffizieller Pakete bedienen die zu alle dem keiner Paketverwaltung unterliegen. Im Internet kann man eine brauchbare Tray-Control finden. Leider startet die auf Anhieb nicht. Da der Pyhton-Script das falsche interface für die Helligkeitssteuerung voraussetzt. Als erstes braucht man die korrekte Schnittstelle. Mittels folgendem befehl das Interface identifizieren:

find /sys/ | grep brightness

Anschließend in der Datei /usr/bin/eee-control-daemon diesen Wert in Zeile 85 und 86 einsetzten. Nun kann man den Dienst starten. Während die Steuerung der RF-KillSwitches nur leidlich funktioniert, kann man über dieses Tool die FSB-Tacktung reduzieren, Was nochmals ordentlich Stromersparnis bringt.

Etwas heickler ist das Abschalten des des AppArmor-Systems. Hier sollte man jedoch kurz inne halten! AppArmor dient zur Sicherung des Systems und stellt eine aktive Sicherheitsebene dar. Jedoch lässt sich für die Praxis eines Netbook-Einsatzes dessen Sinn vernachlässigen bzw in Frage stellen. Die Abschaltung von AppArmor brachte bei meinem System ca 0.5 Watt.

Hat man diesen Schritt einmal getan, ist es mit dem Selberbauen des Kernel auch nicht mehr weit. Der Karmic-Koala setzt auf den Standard-Kernel, dieser ist „leider“ ein generic-Kernel. Also ein Kernel der das größtmögliche Spektrum an Hardware und Spezialanwendungen unterstützt was sich der Jungs bei Chanonical vorstellen können.

Beim konfigurieren des Kernels kann man extrem viel ein und verstellen. Meiner Meinung nach gibt es kann man sich aber auf folgende Punkte beschränken:

  • Zielarchitektur: Der Kernel sollte auf Core2Duo/Xeon optimiert werden, laut mehrere Internetquellen wird damit auch der Atom abgedeckt. Alle weiteren Optionen die andere X86 Architekturen unterstützen kann man abschalten.
  • LargeMemory: Standardmäßig ist der Ubuntu-Kernel auf 4GB eingestellt. In der Seashell sind fest 1GB verbaut. Es braucht den Overhead also nicht.
  • Virtualisierung: Wer will auf einem Atom mehrere virtuelle Gast-Systeme einrichten? Wer auch immer das macht, macht braucht sich um Stromverbrauch keine Gedanken machen 😉
  • AppArmor: will man die Fehlermeldung beim Booten wegbekommen, schaltet man hier auch das Kernel-Interface für AppArmor ab.

Man kann auch Treiber „entfernen“ von denen man weiß das man sie nie brauchen wird. Jedoch bringt das außer einer kleineren InitRamDisk kaum Performance. Mehr bringt da schon das feste einkompilieren von Treibern. Wenn man viel Zeit hat, kann man einen Kernel bauen, der ohne InitRamDisk auskommt. Leider funktioniert dann dann UReadAhead nicht. Dieser dienst speichert alle Dateien die für einen Systemstart gebraucht werden sequenziell optimiert ab. So können sie besser von der Festplatte geladen werden. Leider scheint dieser ohne InitRD nicht klar zu kommen. Der Kernel bootet dann zwar schneller, da er keine RamDisk laden muss, das restliche System braucht dafür merklich länger.

Eine Beispiel Konfiguration hab ich hier bereitgestellt: EEE-Kernel.config

Alles in allem haben mir diese eingriffe rund 3 Watt Leistungsersparniss gebracht. Mit Durchschnittlich 35 WakeUps pro Sekunde ist das Ende aber noch nicht erreicht.

Karmic Koala auf der Seashell

Hier war es eine weile sehr ruhig, dass hatte zwei Gründe. Erstens hatte ich Urlaub (die letzte Woche) zum anderen hat sich gezeigt, dass beim Netbook-Remix von Jaunty (9.04) auf Karmic (9.10) sehr viel passieren würde. Es hätte wenig Sinn gemacht, den Jaunty auf der Seashell bis zum Brechen zu optimieren, um ihn anschließend durch den Karmic zu ersetzten.

Darum dreht sich die Frage ja im Grunde. Lohnt es sich, eine funktionierende  Jaunty-Netbook-Installation durch eine Karmic zu ersetzten. Kurz und knapp: Ja. Sämtliche Funktionen der Seashell funktionieren Out-of-the-Box. Hier nochmal die Auflistung:

  • WLAN und LAN: Beide Interfaces werden erkannt und können sofort genutzt werden.
  • HotKeys/LEDS: Fast alle wichtigen HotKeys (WLAN ausschalten, usw) funktionieren tadelos. Ausnahmen Touchpad-deaktiviern
  • Suspend to Disk/Ram: laufen jetzt besser/robuster.

Diese Verbesserungen sind zu großen Teilen auf den neuen Kernel (2.6.31) zurückzuführen. Hier war der Jaunty einfach „benachteiligt“. Beim damaligen Release hat sich in zu vielen Treiberteilen, die die Netbooks betreffen, zu viel getan. Besonders hart hat es den Treiber der Intel-Grafikkarten getroffen. Dieser war im alten Kernel einfach „gebrochen“. Die Performance ist zwar immer noch hinter den Windows-Treibern aber schon erheblich besser als unter Jaunty.

Das Design und die Bedienung wurden im Detail verbessert. Es wirkt alles aufgeräumter und dezenter.

Munin und 3Ware

Hinter Munin versteckt sich ein sehr puristisches aber brauchbares Monitoring-Tool um ein ganzes Netzwerk zu überwachen. Munin besteht dabei aus zwei Teilen. Der Node und einem Crawler, der zyklisch (5 Minuten) alle bekannten Nodes abfragt. Danach werden Graphen von den gesammelten Daten über die Zeiträume Tag, Woche, Monat und Jahr erzeugt. Damit lassen sich gut Trends und Ungereimtheiten ablesen. Dazu wird noch rudimentäres „Alerting“ geboten. Über/Unter-schreitet ein „getrackter“ Wert ein vorgegebenes Limit, wird eine Warnmail ausgesendet. Zudem wird der Wert Farblich zusätzlich markiert, so das man beim Kontrollieren der Status-Webseite sofort sieht, das was im Argen liegt.

Die Node bietet dabei von Start weg überhaupt keine Funktionalität. Alles was man angezeigt bekommen will, muss via Plugins geliefert werden. Die Communitie bietet hier jedoch ein extrem umfangreiches Repertoire an schon vorhanden Plugins. Darunter auch Plugins die SNMP Quellen abfragen.

Nun bieten 3Ware einen SNMP Zugang zu allen RAID-Daten. Nur ist dies leider sehr umständlich. Da sich Plugins sehr einfach schreiben lassen, hab ich einfach drei Plugins geschrieben, die mir die wichtigsten Daten extrahieren und in Munin zur Verfügung stellen. Ich benutzte dazu „tw_cli“ welches von 3Ware mitgeliefert wird. Anschließend wird dessen Output ausgewertet und dargestellt.

die Sources gibt es hier:

  • RAID-Status: Liefert den Status aller im System bekannten RAID-Units
  • RAID-Unit-Status: Listet den Status aller physikalisch Einheiten einer RAID-Unit.
  • BBU – Status: Liefert den Status der installierten BBUs