Schöner neuer Kernel

Linus Torvalds erfreut uns in diesen Tagen mit dem Kernel 3.x, der bei nahezu allen Desktop-Linuxen inzwischen in den Repos bereitsteht. Das Upgrade hat für mich und meinen Dell-Laptop zwei ärgerliche Probleme mitgebracht, die ich inzwischen zumindest halbwegs lösen konnte. Da an der Uni wohl noch ein paar andere darüber stolpern werden, hier meine Hinweise:

  1. OpenAFS: Seit Kernel 2.6.39 wird der AFS-Client 1.4.x nicht mehr unterstützt, man ist zum Update auf 1.6.x gezwungen. Dieser lag bis vor wenigen Tagen noch in einer Pre-Version vor, inzwischen ist er als stable markiert. Die Doku ist nach wie vor ein Traum, sodass mir spontan niemand erklären konnte, warum ich plötzlich auf keine RRZK-Volumes mehr zugreifen konnte. Nach langem Testen konnte ich das Ganze nun auf Firewall-Probleme zurückführen. Weitere Eingrenzung war mir noch nicht möglich, da selbst bei eingetragener Freigabe der erste Zugriff nach laaaanger Zeit in einem Timeout endet. Erst ab dem zweiten Zugriff geht’s dann wieder flott.
  2. Suspend: Nach dem Update auf Kernel 3.0 krachte mein Laptop (Dell Latitude E4300) bei jeglichen Suspend-Versuchen zusammen. Auch hier musste ich lange suchen, um den Schuldigen zu finden. Schließlich konnte ich das „mac80211“-Modul, welches für WLAN zuständig ist,  als Ursache identifizieren. Da scheint sich ein Bug eingeschlichen zu haben (siehe auch diesen Hinweis), den man entweder wie im Link angegeben patchen oder weiträumig umgehen kann. Dazu genügt das Anlegen der Datei
    /etc/pm/config.d/unload_modules

    mit dem Inhalt

    SUSPEND_MODULES="$SUSPEND_MODULES mac80211"

    Zumindest Suspend-to-RAM (a.k.a. „Bereitschaft“) klappt danach bei mir problemlos, Suspend-to-Disk (a.k.a. „Ruhezustand“) klappt zwar zunächst ebenfalls, das Aufwachen endet jedoch leider in einem normalen Systemstart. Da ich s2disk jedoch eh fast nie verwende, verfolge ich das nicht weiter. Kommentare mit der Lösung sind natürlich dennoch erwünscht. 😉

Automounter streikt nach Kernelupdate

Der kleine Quickie zum Wochenende: Nach dem Update meines Ubuntus auf 10.04 (Lucid Lynx) und dem damit verbundenen Kernelupdate auf 2.6.32 wollte plötzlich der Automounter, auch bekannt als amd oder am-utils, nicht mehr korrekt arbeiten. Die Fehlermeldung im Logfile sprach:

mount: No locks available

Des Rätsels Lösung für alle, die ebenfalls darüber stolpern: In der Datei /etc/am-utils/amd.conf die Option mount_type auf „autofs“ (bislang stand dort vermutlich „nfs“) setzen. Wer sich für die schmutzigen Details und die dazu passende Diskussion interessiert, dem sei dieser Bugreport ans Herz gelegt:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479884

Intranettes Symbian – Nokia Handys mit Cisco VPN verbinden

Dienstag abend, in einem verspäteten Regionalexpress in der Pampa zwischen Pulheim und Stommeln: Ein netter kleiner RRZK-Mitarbeiter nutzt sein hypermodernes Präzisionsinstrument aus Finnland (a.k.a. Nokia E72), um die E-Mails zu lesen, die ihn nach der Bürozeit erreicht haben. Aha, der Herr Professor Hänneschen hat Probleme mit dem Zugriff auf seinen Webspace und hat daraufhin ein Ticket bei uns eröffnet. Der nette kleine RRZK-Mitarbeiter erkennt das Problem und möchte dem armen Professor den Abend retten, also schnell auf das OTRS zugegriffen und – BÄM… „Zugriff verweigert“. Ach ja, das Ticketsystem ist nur aus dem Uninetz erreichbar. Toll, dass die Uni dafür VPN anbietet. Blöd, dass Nokia Handys sich damit nicht verbinden können.

Nun stehen zur Lösung dieses Problems im Netz diverse kostenpflichtige VPN-Clients zur Verfügung. Aber das Schöne: Es geht sogar kostenlos! Eine ganz allgemeine Anleitung dazu findet man auf den Seiten von Mobilfunk-FAQ. Hier beschränke ich mich daher auf eine etwas kürzere Anleitung für diejenigen, die sich speziell mit dem VPN der Uni Köln verbinden möchten. Vorab: Die Nutzung erfolgt auf eigene Gefahr und ohne Support oder Gewährleistung, falls etwas schief geht!

Zunächst benötigt man diese SIS-Datei, also ein Symbian-Installationspaket. Eigentlich wäre das sogar schon alles, aber leider muss die Datei für jedes Handy einzeln signiert werden. Es besteht über die Seite Symbiansigned die Möglichkeit, ein Programm zu signieren. Wichtig ist dabei die IMEI (die Seriennummer des Handys), die über die Eingabe von *#06# auf dem Handy angezeigt werden kann. Nach dem Upload der Datei erhält man per Mail das signierte Programm als Download.

Sobald Sie über die nun signierte SIS-Datei verfügen, laden Sie diese einfach auf Ihr Handy (per OVI, Bluetooth, Speicherkarte etc.) und installieren Sie das Paket. Je nach Handymodell müssen Sie nun einen neuen VPN- oder Intranetzugangspunkt einrichten und dabei die VPN-Richtlinie bzw. -Policy „VPN-Policy“ auswählen. Der Name des Zugangspunktes selbst ist beliebig. Bei der Einrichtung des Zugangspunktes müssen Sie zudem noch auswählen, über welche Netzverbindung Sie sich mit dem VPN verbinden möchten (neuere Modelle bieten praktischerweise den generischen „Internet“-ZP hierfür an). Künftig können Sie sich dann direkt über den erstellten Zugangspunkt im Uninetz anmelden. Anmerkung: Dies funktioniert *nicht* im WLAN der Uni, ist dort ja auch völlig unnötig.

Im Knast und doch frei – iPod Touch unter Linux befüllen

Auch wenn MacOS X bekanntlich auf Unix basiert, ignoriert Apple die Linuxbenutzer leider beständig und veröffentlicht kein Programm á la iTunes, mit dem unsereins seinen iPod Touch oder sein iPhone unter Linux mit Musik befüllen kann. Zwar existieren  Lösungen wie „iFuse„, die das Gerät als USB-Laufwerk einbinden, aber das allein reicht nicht, da die iTunes-Datenbank des Gerätes von einem einfachen Kopiervorgang nichts mitbekommt und die neuen Musikdateien nicht anzeigt.

Ich suchte daraufhin nach einer Lösung, die insbesondere ohne das berühmte „Jailbreaking“ auskam und so den Nutzungsregelungen und Garantiebedingungen von Apple nicht widersprach. Gefunden habe ich zunächst einen Artikel auf „FERNmanns Blog„, der über das o.g. iFuse hinaus auf eine spezielle Version von libgpod verweist, die man nach der verlinkten Anleitung selbst kompilieren muss. Das klappte bei mir (Ubuntu 9.10 Karmic Koala) auch, allerdings musste ich zwei Anpassungen vorher (!) machen, die im Blogeintrag nicht bzw. erst im Kommentar erwähnt sind:

  • zusätzliches Installieren der Pakete libsqlite0-dev, libsqlite3-dev, gtk-doc-tools, intltool, libltdl-dev, libtool, libgcrypt11-dev, libgnutls-dev, libgpg-error-dev, libtasn1-3-dev
  • manuelles Kompilieren und Nachinstallieren der Software libimobiledevice von dieser Quelle

Bevor der geneigte Leser sich aber gleich ans Kompilieren macht: Inzwischen gibt es noch eine viel viel einfachere Lösung, ebenfalls dokumiert auf „FERNmanns Blog„. Die erste Lösung habe ich für den Fall noch erwähnt, dass der einfache Weg aus irgendeinem Grund scheitert. Zu letzterem Weg ist noch zu sagen, dass ich bei meinem Ubuntu alle Vorkommen von „libiphone“ in der Paketliste durch „libimobiledevice“ ersetzen und das Paket „python-iphone“ rausstreichen musste. Danach kann man mittels Rhythmbox einwandfrei auf die Musiksammlung des iPods zugreifen. Viel Spaß!

Emacs schön hässlich machen

Ich mag Emacs. Mit vi konnte ich hingegen noch nie etwas anfangen, aber lassen wir das, sonst ziehe ich den Unmut der Kollegen auf mich. Zurück zum Emacs. Ich mag Emacs im Textmode, da er so gerade bei SSH-Verbindungen trotz seines Umfangs schnell genug ist. Zeitweise habe ich sogar den deutlich abgespeckten Ableger zile („zile is lossy emacs“) verwendet, bei dem ich dann aber doch die eine oder andere Funktion vermisste. Auf einigen Systemen gibt es für den Textmode den speziellen Aufruf „emacs-nox“, allgemeingültig ist jedoch „emacs -nw“.

Nun wird auch der Emacs fortlaufend weiterentwickelt und erhält neue Features, zudem ist er vollgepackt mit diversen Modi und Zusatzmodulen, die ich persönlich nie benötige. Wer wie ich den Emacs einfach nur als Texteditor schätzt (und kein OS im OS braucht), der sucht in den Tiefen des Netzes vielleicht nach Konfigurationsoptionen, um den Emacs einfach, schnell und herrlich hässlich zu machen. Die wichtigsten dieser Optionen möchte ich kurz benennen, um die Suche für den einen oder anderen etwas abzukürzen.

  • Farben ausschalten: Natürlich nutze ich Emacs auch für die Erstellung und Bearbeitung von Python- oder Perlskripten sowie für HTML-Dateien. Trotzdem möchte ich auf keinen Fall Syntax-Highlighting oder ähnliche Auswüchse einer „echten“ IDE haben, da geht mir in der Regel jede Form von Übersicht eher verloren. Die Einstellung, um generell Farben auszuschalten, lautet:
    (setq-default global-font-lock-mode nil)
  • Backups ausschalten: Für mich ein Riesenärgernis sind die automatisch angelegten Backupfiles mit der Endung „~“. Regelmäßig schlagen hier unsere Intrusion Detection Systems an und zudem macht es Verzeichnisse unnötigerweise unübersichtlicher. Backups mache ich auf andere Art und Weise. Daher die Abschaltung dieser furchtbaren Backupfiles:
    (setq kept-old-versions 0)
    (setq kept-new-versions 0)
    (setq make-backup-files nil)
  • Klammerpaare nicht anzeigen: Eine relativ neue Funktion vom Emacs zeigt den jeweiligen öffnenden oder schließenden Partner einer Klammer an, sobald der Cursor auf der Klammer verweilt. Ergebnis: Der Cursor hüpft fröhlich herum und man weiß gerade bei vielen Klammern (ich sage nur Perlskripte) gar nicht mehr, wo man gerade ist. Daher weg damit:
    (show-paren-mode 0)
  • Fundamentaler Modus: Nach dem letzten Emacs-Update landete ich plötzlich bei jeder HTML-Datei im „HTML-Fill“-Modus, der fröhlich und ungefragt lauter Zeilenumbrüche da einfügte, wo ich gar keine haben wollte. Daher wollte ich einstellen, dass Emacs grundsätzlich alle Dateien im reinen Text- bzw. Fundamental-Mode öffnet. Diese Anforderung erwies sich als ganz harte Nuss, aber schlussendlich verdanke ich Ralf Döring den entscheidenden Tipp (an dieser Stelle nochmal ein Dank dafür):
    (setq major-mode ‚text-mode)

    (setq auto-mode-alist (cons ‚() nil))

Nun ist mein Emacs wieder genauso, wie ich ihn gern habe. Weitere Vorschläge für Optionen, die Emacs in dieser Richtung für uns „Puristen“ optimiert, nehme ich gerne auf.

SFTP mag das AFS nicht

Die Betreuerin eines unserer Webprojekte meldete uns, dass sie mittels ihres SFTP-Programms – Cyberduck unter MacOS – innerhalb unseres Dateisystems AFS keine Dateien in einen Unterordner verschieben kann. Eine Überprüfung unsererseits ergab, dass das Problem nicht auf Cyberduck oder MacOS beschränkt ist, auch mit WinSCP (im SFTP-Modus) unter Windows erhält man lediglich die nichtssagende Meldung „Failure“.

Intern verwendet das SFTP-Protokoll zum Verschieben von Dateien das Kommando „rename“. Offenbar geschieht beim Verschieben in ein Unterverzeichnis Folgendes: SFTP legt im Unterordner einen Hardlink auf die Datei an und entfernt anschließend den alten Verweis im übergeordneten Verzeichnis (link-unlink). Dies ist im Hinblick auf plötzliche Stromausfälle etc. die sichere Variante. Da das AFS allerdings seine ACLs pro Verzeichnis speichert, erlaubt es keine Hardlinks – SFTP scheitert entsprechend. Seit der Version 5.1 von OpenSSH (der Software, die auch für den SFTP-Server zuständig ist) führt SFTP hier einen Fallback auf den internen syscall „rename“ durch, der vermutlich (!) ein unlink-link durchführt, siehe:

https://bugzilla.mindrot.org/show_bug.cgi?id=1447

Leider steht diese Version auf unseren Red-Hat-5-Servern noch nicht zur Verfügung, einen Case bei Red Hat haben wir zu diesem Thema aber eröffnet. Einige Clients umgehen das Problem selbständig, z.B.:

  • WinSCP führt einen Fallback auf SCP durch
  • SSH SecureShell kopiert die Datei stattdessen – das kann bei größeren Dateien Speicherplatzprobleme verursachen und ist entsprechend langsamer

Generelle Workarounds lauten wie folgt:

  • Arbeiten auf der Unix-Kommandozeile nach SSH-Login mit dem Kommando „mv“
  • Lokale Installation eines AFS-Clients, siehe http://www.uni-koeln.de/rrzk/daten/afs/#clients
  • Dateien herunterladen und im neuen Verzeichnis wieder hochladen (dauert ggf. sehr lange und setzt eine schnelle Verbindung voraus)

Für die Hilfe bei der Aufklärung ein Dank an Sebastian Hagedorn und Claus Kalle.

Probleme mit Unicode bei OTRS-Update beseitigen

Nach einem Update auf die OTRS-Version 2.3.4 war die Administrationsseite unseres OTRS (a.k.a. SysConfig) nicht mehr erreichbar. Es stellte sich heraus, dass diese wohl gegen den Einsatz von Unicode, also UTF-8 rebellierte, eine temporäre Umstellung auf Latin-1 förderte die Adminseite wieder ans Tageslicht. Weitere Nachforschungen ergaben, dass ein Auskommentieren des ConfigCaches in der Datei /opt/otrs/Kernel/System/Config.pm auch wieder UTF-8 ermöglichte. Das System wurde hierdurch jedoch verlangsamt. Die optimale Lösung liegt wohl darin, alle Dateien, die mit „SysConfig“ beginnen, unterhalb von /opt/otrs/var/tmp zu löschen und OTRS sowie den dazugehörigen Apache neuzustarten. Dabei wird der Cache dann mit der korrekten Codierung reinitialisiert.

Keiner versteht mich…

Seit einem Upgrade des Hostsystems auf Ubuntu 8.10 waren die Keyboardschemata in allen meinen VM-Guests verhunzt. Das hat zwar bisweilen amüsante Effekte („Pfeil-nach-unten“ war z.B. auf einmal das Signal für „mach einfach alles zu, frag erst gar nicht“), nach kurzer Zeit wird es aber sehr nervig. Nach einigem Herumprobieren mit Tastaturtreibern und Co. stöberte ich dann doch mal in der VMWare Knowledge Base und fand diesen Hinweis. In aller Kürze: Durch die Umstellung auf die neuen „evdev„-Treiber sendet das Hostsystem nun andere Tastencodes an VMWare und das knallt dementsprechend. In dem KB-Artikel werden einige Hinweise zur Behebung gegeben, bei mir genügten folgende zwei Zeilen in der Datei „/etc/vmware/config“:

xkeymap.nokeycodeMap = true
xkeymap.keysym.ISO_Level3_Shift = 0x138

Die erste Zeile behob bereits fast alle Probleme, die zweite war für die besonders bockige „AltGr“-Taste (was im übrigen für „Alt Graph“ steht, wie ich nun auch weiß) nötig. Der Wert „ISO_Level3_Shift“ kann dabei auf jedem System anders aussehen, Näheres dazu im KB-Artikel.

Wem auch der o.g. Artikel nicht weiterhilft, der findet im folgenden Blogeintrag weitere Lösungsvorschläge:

http://tinyurl.com/5kd7uz

Mein neuer Liebling

Ich habe ein neues Lieblingsprogramm: Songbird! Das Programm als iTunes-Ersatz zu bezeichnen, ist fast schon eine Beleidigung. Es bietet alles, was ich von einem guten Musiktool erwarte – Songtextanzeige, Erweiterbarkeit über Module (Mozilla-Style) mit Autoupdate, mehrere Wiedergabelisten, Anbindung an ShoutCast und seit der kürzlich erschienenen Version 1.1 auch Verzeichnisüberwachung und die Anbindung an einen MusicStore (7digital). Dabei ist Songbird open-source und auf Windows, Linux und Mac lauffähig. Gegenüber iTunes empfinde ich es als übersichtlicher, insbesondere da man sich die benötigten Module selbst aussuchen kann. Unter diesen finden sich nette Dinge wie mashTape, welches zum gerade gespielten Interpreten Infos aus Wikipedia, last.fm etc. zusammenstellt und als Infobox anzeigt.

Auch Gnome gehen mal fremd

Obwohl ich unter Linux generell den Gnome-Desktop gegenüber KDE vorziehe, gibt es doch 3 KDE-Programme, die aus meiner Sicht kein gleichwertiges Pendant unter Gnome haben und die ich daher quasi „unter falscher Flagge“ verwende: Das Brennprogramm K3B, den LaTeX-Editor Kile und ganz besonders das KDE-Terminal „Konsole“. Letzteres lässt sich imho nicht nur wesentlich besser, schneller und gezielter konfigurieren als das Gnome-Terminal, es bietet auch die für Administrationsarbeiten unglaublich nützliche Funktion „send input to all sessions“. Damit ist es beispielsweise möglich, mehrere SSH-Sessions zu verschiedenen Servern zu starten und langweilige Standardaufgaben auf allen Servern mit nur einer Eingabe gleichzeitig zu erledigen – beispielsweise regelmäßige Paketupdates oder das Abnicken von Tripwiremeldungen, zu dem man vom grausamen Sysadmin gezwungen wird. Allerdings sollte man natürlich höllisch aufpassen, die Funktion nachher auch wieder zu deaktivieren. Insbesondere bevor man lustige Dinge wie „rm -rf *“ schreibt…

Unter KDE4 heißt die Funktion übrigens „Eingabe kopieren nach…“ (bzw. „copy input to…“). Sie ist zwar etwas aufwendiger zu bedienen als die alte Funktion, bietet dafür aber die Möglichkeit, die Fenster gezielt auszuwählen, an die die Eingabe übertragen werden soll.