Skip to content

AMD, multiple Monitore und Gnome

^ v M ><
Sobald man mehr als zwei Monitore angeschlossen hat, beginnt Gnome bei der Multimonitorfähigkeit zu versagen. Ich habe zwei Monitore zu einem grossen Desktop zusammengefasst (AMD nennt dies in seinen proprietären Treibern BigDesktop) und einen weiteren Monitor separat laufen. Leider maximieren sich Fenster nun über den ganzen Dualscreen statt sich perfekt auf einen Monitor einzupassen. Besonders mühsam ist dies, wenn man ein Video im Vollbildmodus betrachten will. Mit nur zwei angeschlossenen Monitoren passiert dies nicht - selbst wenn diese zu einem grossen Desktop zusammengefasst werden. Interessanterweise sind aber das Hintergrundbild sowie die Panel perfekt an den Monitor angepasst. Da kommt als Verdächtiger folglich rasch der Window Manager, also Metacity in Frage.

Folglich habe ich diesen durch diverse andere Varianten ersetzt. openbox scheitert genau so am Multimonitor und mutter stürzt direkt mit Speicherzugriffsfehler ab. Aber xfwm4 aus Xfce4 funktioniert gemäss Wunsch. Allerdings braucht es dann noch einiges an Tweaking, bevor das ansonsten gewohnte Metacity-Verhalten wiederhergestellt ist (und ein paar sehr nette Komfortfunktionen dazugewonnen wurden).

Zunächst muss xfwm mit ein paar Accessoires installiert, gestartet und konfiguriert werden. Alle Angaben sind wie üblich für Debian und verwandte Systeme:

su
aptitude install xfwm4 xfce4-utils xfce4-settings
exit
xfmw4 --replace &
xfwm4-settings
xfce4-settings-helper

Der xfce4-settings-helper verschwindet sofort im Hintergrund und aktiviert die Tastenkürzel wie z.B. Alt-F2 wieder.

Jetzt stört mich nur noch, dass Fenster auch beim Scrollen mit dem Mausrad Fokus bekommen. Dies lässt sich über den xfce4-settings-editor abstellen, indem man den Wert des Eintrags /xfwm4/raise_with_any_button auf FALSE setzt.

Soweit so einfach. Kommen wir nun zum zeitlich aufwändigsten Teil. Um nun xfwm4 permanent als Standard einzurichten, gibt es unzählige Möglichkeiten. Ich habe nur eine gefunden, die "gefühlt fehlerfrei" funktioniert und diese ist technisch gesehen totaler Blödsinn. Und zwar habe ich in gnome-session-properties zwei neue Starter angelegt. Einer startet /usr/bin/xfwm4 --replace und ein zweiter /usr/bin/xfce4-settings-helper. Das ist natürlich insofern doof, da erst metacity und danach xfwm4 als Ersatz gestartet wird. Dies führt bei mir jedoch zu absolut keiner Startverzögerung, ganz im Gegensatz zu der Variante, eine ~./gnomerc anzulegen und darin die Zeile export WINDOW_MANAGER="/usr/bin/xfwm4" einzufügen. Das Resultat ist ein um 10 Sekunden verzögertet Start von Gnome. Das ist natürlich nicht akzeptabel. Ebenso gibt es die Variante im gconf-editor unter /desktop/gnome/session/required_components den Schlüssel windowmanager von gnome-wm zu xfwm4 zu ändern. Das Resultat hierbei war, dass gar kein Window Manager mehr gestartet wurde. Also noch schlimmer! Tja, und unter Debian gibt's noch die /etc/alternatives/x-window-manager. Diesen Symlink von /usr/bin/metacity auf /usr/bin/xfwm4 zu ändern bringt grad gar nichts, da dieser Symlink auf meinem System von gnome-wm (ist nur ein Shellskript) gar nicht ausgewertet wird.

Somit wär also ein Freitagabend verschwendet, weil Debian Stable ja sooo bugfrei ist.

Tschüss Nokia

^ v M ><
Das war's dann wohl. Nokia setzt auf Windows. Na dann... wird mein nächstes Gerät wohl nicht von Nokia (und ganz bestimmt auch nicht von Apple) sein. Insbesondere stören mich solche destruktive Ansagen von Microsoft ganz gewaltig:
Es gibt andere mobile Ökosysteme. Wir werden sie zerstören.
Danke, mehr brauche ich nicht zu wissen. Das bestätigt eher meine bisherige Einschätzung von Kleinstweich.

Die Symbian-Plattform hat mir bislang eigentlich gut gefallen. Vor allem hat mich aber die Akku-Laufzeit der Nokia-Geräte sehr überzeugt. Mein derzeitiges Gerät hält doch 10-14 Tage ohne Steckdose durch und kann neben telefonieren auch Emails lesen, Musik abspielen, im Internet surfen und mit Python programmiert werden. Also alles was ich brauche. Schade, dass alle anderen Smartphones nur knapp einen Tag lang autark funktionieren können. Das ist für mich absolut unbrauchbar.

Ich vermute mal, dass sich die Telefonwelt somit in zwei Teile spaltet. Zum einen die alleskönnenden Smartphones mit normiertem Ladestecker und superkurzer Akkulaufzeit. Zum anderen minimale Geräte mit akzeptabler Akkulaufzeit und proprietärem Ladestecker (man muss die alten, schon produzierten Dinger doch noch irgendwie an den Mann bringen). Wie auch immer, alles unbrauchbar. Da werd ich mir wohl fast die Neuauflage des OpenMoko kaufen müssen. Wenn schon keine Akkulaufzeit, dann immerhin frei.

IPv6

^ v M ><
Die Zukunft hat begonnen :-) Ich bin ab jetzt auch über IPv6 verbunden. Derzeit zwar nur per Tunnel, aber hoffentlich bald auch richtig.

Killersportverbot

^ v M ><
Na endlich geht es weiter mit der Verbietitis. Still und heimlich hat die luzerner Kantonsregierung eine Standesinitiative zum Verbot von Killersportarten eingereicht. Natürlich waren sich die grossen, renommierten Zeitungen der Schweiz zu schade um darüber zu berichten. Und die kleine Depesche in der 20min ist auch nicht aussagekräftig. Mit etwas Recherche lässt sich dann aber trotzdem herausfinden, wer da dahinter steckt. SVP? CVP? SP? Nein, nicht die Standardverdächtigen, wenn es um Einschränkungen der liberalen Gesellschaftsordnung geht, sondern die Grünen! Gratuliere. Damit hat sich also auch die letzte grössere Partei endgültig unwählbar gemacht. Da muss man sich auch nicht länger wundern oder empören, wenn die Schweiz nur auf Platz 14 von 30 in der Studie der Universität Zürich (!!!) über die besten Demokratien eingestuft wird, wohlgemerkt hinter den USA und Deutschland.

Doch was ist nun das Problem an der Sache? Ist doch OK, wenn sich Leute nicht mehr die Fresse einschlagen dürfen. Leider ist's nicht so einfach. Erstens machen sie das besser im Dojo oder Ring als auf schweizer oder auch münchner Strassen. Zweitens sollen die Verbote Ultimate Fighting und Mixed Martial Arts umfassen. Grad letzteres ist aber überhaupt nicht klar definiert und wird vor allem von Brazilian Jiu-Jitsukas betrieben. Ergo führt ein Verbot von MMA direkt zum Verbot von Brazilian Jiu-Jitsu. Und da ich einem luzerner Katholenbünzli nicht genügend Weltoffenheit und Intelligenz unterstelle, um einen Unterschied zwischen Brazilian Jiu-Jitsu und traditionellem Jiu-Jitsu zu sehen, wird zweiteres wohl bald auch verboten werden. Und damit dann bald auch Judo, Karate, Kickboxen, Muai-Tai, Wing-Tsun, Kempo, Kung-Fu, Aikido... weil schaut ja alles irgendwie ähnlich aus.

Gratuliere, liebe Politiker. Irgendwie versteh ich euch ja. Weil so Killersportarten sind ja nur was für aggressive Männer mit Testosteronüberschuss, die dann zuhause ihre Frau mit der Dienstwaffe bedrohen. Aber damit wollt ihr mir nach den Killerspielen also schon die zweite Freizeitbeschäftigung verbieten. Jetzt fehlt eigentlich nur noch das Heavy-Metal-Verbot. Weil ist ja alles nur brutale Musik. Allerdings lasst euch gesagt sein, liebe Christentaliban aus der Innerschweiz, die bösen, satanischen Rückwärtsbotschaften sind auch in Radio-DRS-kompatibler Musik zu finden. Das beschränkt sich nicht nur auf Metal.

Linux auf richtig grossen Partitionen installieren... trotz BIOS

^ v M ><
Schade, dass nagelneue Boards immer noch dieses eklige BIOS statt dem wesentlich moderneren EFI mitbringen. BIOS und Grub können nämlich nichts mit GPT anfangen, was für grosse Partitionen über 2TB aber notwendig ist. Und BIOS bzw MBR begrenzt die Partitionsgrösse auf anachronistische 2TB. Denn wenn man schon 4*2TB kauft, um ein anständiges NAS zu basteln, will man sich nicht lange mit Daten hin-und-her-Schaufelei von Partition A nach Partition B und zurück befassen. Doch auch dafür gibt es eine Lösung:

Es darf einfach keine Partition über 2TB Grösse existieren, auch nicht als Software-RAID-Verbund. Aber LVM darf sich darüber hinwegsetzen.

Daher mein Setup:
- Am Anfang der Platten eine kleine Partition von 128MB als RAID-1 für /boot
- Danach drei Partitionen à 666GB, welche jeweils als RAID-10 zusammengefasst werden
- Die drei RAID-10 Partitionen werden mittels LVM zu einem gigantischen logischen Volume zusammengefasst. Alternativ kann man natürlich auch ein RAID-5 nehmen, dann tauscht man 2TB mehr Festplattenplatz gegen massiven CPU-Overhead bei allen Zugriffen ein.

Zuerst mal mit einer Live-CD nach Wahl starten und die Disks vorbereiten. Zu beachten ist, dass so grosse Festplatten gerne mit 4k-Sektoren ausgeliefert werden:

cfdisk -h224 -s56 /dev/sda #erstellen von 4 Partitionen vom Typ FD (RAID autodetect) unter Beachtung der 4k-Sektorengrenze
sfdisk -d /dev/sda | sfdisk --force /dev/sdb #sfdisk mag die 4k-Sektorengrenzen nicht, daher erzwingen wir sie
sfdisk -d /dev/sda | sfdisk --force /dev/sdc
sfdisk -d /dev/sda | sfdisk --force /dev/sdd
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=4 /dev/sd?1
mdadm --create --verbose /dev/md1 --level=10 --raid-devices=4 /dev/sd?5
mdadm --create --verbose /dev/md2 --level=10 --raid-devices=4 /dev/sd?6
mdadm --create --verbose /dev/md3 --level=10 --raid-devices=4 /dev/sd?7
pvcreate /dev/md[123]
vgcreate bigdisk /dev/md[123]
vgchange -a y bigdisk

Danach erstellt man ein paar logische Volumen nach Bedarf, startet die Setup-CD (in meinem Fall natürlich Debian Squeeze) und schon läuft die Sache rund. Partman wird sich zwar trotzdem beschweren, lässt aber die Installation zu. Und Grub installiert sich ganz normal im MBR.

LibreOffice the Debian way

^ v M ><
Da heute LibreOffice 3.3 in stabiler Version freigegeben wurde, wird es höchste Zeit, das proprietär gewordene OpenOffice.org loszuwerden. Da LibreOffice schon im experimental-Zweig von Debian Einzug gehalten hat, lässt es sich sehr elegant auch unter Squeeze (derzeit noch testing) installieren.

Zuerst muss der experimental-Zweig zu apt hinzugefügt werden:
cat >> /etc/apt/source.list <<EOF
deb http://ftp.ch.debian.org/debian/ experimental main
deb-src http://ftp.ch.debian.org/debian/ experimental main
EOF
cat >> /etc/apt/preferences <<EOF
Package: *
Pin: release a=testing
Pin-Priority: 700

Package: *
Pin: release a=experimental
Pin-Priority: 600
EOF

aptitude update


Anschliessend kann bequem irgendwelche Software aus experimental hinzugefügt werden, indem mittels dem Parameter -t an aptitude/apt-get signalisiert wird, welcher Debian-Zweig verwendet werden soll. Die LibreOffice-Paket haben jedoch noch ein paar unsaubere Abhängigkeiten, so dass derzeit einige davon aus testing verwendet werden müssen.
aptitude install libhsqldb-java
aptitude -t experimental install libreoffice libreoffice-l10n-de libreoffice-gnome ttf-opensymbol

Kernel Update und proprietärer Ati-Treiber unter Debian

^ v M ><
Irgendwie läuft der Ati-Kram noch nicht ganz zufriedenstellend. Immerhin hat es AMD unterdessen fertiggebracht, ihr Treiberpaket mit korrekten md5-Signaturen zu versehen. Ich hab daher auf meinem Debian Squeeze ein Kernel-Update auf 2.6.36.3 vorgenommen (mit dem 2.6.37 kann man den Ati-Murks unmöglich kompilieren) und dann den aktuellen Ati-Treiber versucht zu installieren. Nicht ganz trivial, aber es geht. Ich setze mal voraus, dass ein vollständiges build-environment samt gcc und xorg-dev installiert ist.

Erst ein Kernel-Update:
cd /usr/src
tar -jxf /path/to/linux-2.6.36.3.tar.bz2
cd linux-2.6.26.3
cp /boot/config-2.6.32-5-amd64 .config
make oldconfig
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers --jobs=8
dpkg -i ../linux-image-2.6.36.3-custom_amd64.deb

Mit --jobs=8 wird der nagelneue Quadcore auch endlich mal etwas ausgereizt :-)

Gut, danach reboot und Installation der Ati-Treiber samt der dubiosen Patches von hier:
sh ati-driver-installer-10-12-x86.x86_64.run
cd /
patch -p1 < /path/to/arch-2.6.36.patch
patch -p2 < /path/to/ati-drivers-2.6.36.patch
patch -p1 < /path/to/ati-drivers-fix_compilation-bug-297322.patch
patch -p1 < /path/to/sema_init.patch
cd /lib/modules/fglrx/build_mod
./make.sh
cd ..
./make_install
modprobe fglrx


Dann klappt's auch mit AMD. Die grosse Stolperfalle ist der zweite Patch, welcher anders codierte Pfadangaben drin hat und darum mit -p2 statt -p1 aufgerufen werden will. Der Rest ist ziemlich geradeaus.

Ich hasse AMD!!!

^ v M ><
Kann man wirklich sooooooooooo dumm sein???

$ sh ati-driver-installer-10-12-x86.x86_64.run
Created directory fglrx-install.qE5M0i
Verifying archive integrity...Error in MD5 checksums: 48c2e8ce1f504f07a0985afe489b26e3 is different from dfc5d2753d97882b67eb453b85ff8dbc


Zum Glück hat die Karte nur 38.- gekostet. Na ja, nächstes mal wieder nVidia.

Armee vs Informatik

^ v M ><
Oh ja, noch einer zur besten Armee der Welt:

Ueli will jetzt Millionen bei der Informatik sparen. Wie er das anstellen will, ist mir ein Rätsel. Die Armee hat nämlich bekanntlich keine Informatik! OK, ein paar EAPS (Einzelarbeitsplatzsysteme), d.h. billige Notebooks in einer dicken Transportkiste, aber damit hat es sich dann schon so langsam.

Das derzeitige, inexistente Informatiksystem muss so beschissen sein, dass sie es ja nicht mal schaffen, eine Adressänderung korrekt an alle nötigen Stellen zu kommunizieren. Meinen Sonntagswachthaftbefehl haben die Deppen z.B. an die falsche Adresse geschickt. Im Prinzip sollte ich verneinen, den Wisch je erhalten zu haben.

Und die für das FIS Heer vers(ch)enkten 800 Mio CHF können ja nicht als Investition in die Informatik gelten. Das war lediglich eine versteckte Subvention für unfähige Informatikdienstleister mit guten Beziehungen zu hohen Offizieren. In anderen Ländern würde man ja von Korruption reden...

Kleine Statistikaufgabe

^ v M ><
Angenommen, eine Kompanie habe einen Bestand von 100 Stück Kanonenfutter (Bestand 100, Anwesend 100, Abwesend 0). Jedes Jahr gibt es drei Wochen WK, d.h. an zwei Wochenenden muss sie das Wachtlokal mit je 6 Pechvögeln bestücken. Angenommen, jeder Soldat leistet 8 WKs, wie gross ist dann die Warscheinlichkeit, dass er:
  • ein Mal
  • zwei Mal
  • drei Mal
  • vier Mal
  • fünf Mal
  • sechs Mal
  • sieben Mal
  • acht Mal
  • kein Mal
Sonntagswachtdienst aufgebrummt bekommt?

Bonusfrage: Wie gross ist die Warscheinlichkeit, dass er in seinem vierten WK zum dritten Mal das Wochenende gestrichen bekommt?

Wer die Lösung weiss, darf sich eine Ananas nehmen, und diese meinem Vorgesetzten dorthin schieben, wo keine Sonne scheint. Wer die Lösung nicht weiss, darf das mit der Ananas von mir aus ebenfalls machen.

Oh und wer jetzt meint, so von wegen es wird ja primär zur Sonntagswacht verurteilt, wer ein Urlaubsgesuch einreicht: Ich hab lediglich in meinem letzten WK ein Urlaubsgesuch für 2h früher abtreten an einem Montag eingereicht, um ein Buch in der Unibibliothek abholen zu können. Also wohl weit unter Durchschnitt. Und für dieses Gesuch hab ich meine Strafe ja bereits abgesessen. Ich kann mir auch nicht vorstellen, dass für meinen nächsten WK weniger als 6 Nasen ein Urlaubsgesuch eingereicht haben.

Und wer sich fragt, ob diese Sonntagswacht irgend einen Sinn habe: Nein, hat sie nicht. Es ist pure Schikane. Wir machen da nur Einlasskontrolle (ohne Waffe) und am Wochenende will üblicherweise auch kein Schwein in die Kaserne.

Airbag für den Kopf

^ v M ><
Wie schnell aus fiktiven Erfindungen Realität werden kann, sieht man mal wieder an diesem geekigen Accessoire wie dem Airbag für den Kopf. Kürzlich habe ich das Buch Snow Crash gelesen, worin der Author das genau gleiche Prinzip beschreibt. Im Buch wird der Airbag zwar nicht wie in der realen Erfindung von Velofahrern sondern von skateboardfahrenden Kurieren getragen. Aber letztendlich ist das Funktionsprinzip identisch.

Geekig ist das Ding nicht nur, weil es per USB aufladbar ist. Allerdings bleib ich bei meinem guten, alten Velohelm, denn der hat den Vorteil, dass nicht genau dann, wenn man auf die Schnauze fliegt, die Batterie zufällig leer ist.

Motivation à la Armee

^ v M ><
Zitat Andre Blattmann
Wer gute Arbeit geleistet hat, erhält bei uns keinen Bonus, sondern ein Schulterklopfen.


Jaaaaaaa geeeenaaaau! Oder man drückt ihnen wiederholt so oft Sonntagswacht auf, bis sie sowas von total angepisst sind und sich weigern, auch weiterhin gute Arbeit zu leisten.

Backups

^ v M ><
Neulich bin ich mal gefragt worden, wie ich Backups mache. Die Antwort: Mit einem relativ simplen Cron-Skript und rdiff-backup per SSH auf den Fileserver. Das gibt ein schönes inkrementelles Backup, bei dem man beliebig weit zurückgehen kann, allerdings behalte ich nur die Daten der letzten zwei Monate. Rdiff-Backup braucht relativ wenig Rechenleistung, Bandbreite und Speicherplatz und funktioniert auch hervorragend über's Internet. Wird das Cron-Skript häufig genug aufgerufen, emuliert dieses Backup recht gut das Verhalten von Apples Time-Machine. Nachteilig ist lediglich, dass es in meinem Fall ein vom Clienten initiiertes Backup ist. Solange der zu sichernde Rechner die Daten auf den Backup-Server schreibt, ist ein Backup nicht sicher vor Manipulationen. Besser wäre es, wenn der Server vom Clienten lesen würde. Nur bräuchte der Server dann root-Login auf dem Clienten, was auch nicht unbedingt der Sicherheit förderlich ist...

Folgendes muss man auf dem Server einrichten:
  • SSH-User für's Backup
  • Im $HOME/.ssh/authorized_keys die public-SSH-Keys des root-Users der zu sichernden Systeme eintragen (ja, das Backup-Skript wird in der Regel als root laufen, da man z.B. auch /etc sichern will).
  • Im Verzeichnis, welches die Backups enthalten soll, muss für jeden zu sichernden Rechner ein Verzeichnis erstellt werden, das so heisst, wie der Host (zu erfahren durch Eingabe von "hostname" auf dem Client)
  • In diesen Verzeichnissen muss jeweils eine Verzeichnisstruktur erstellt werden, welche der $DIRECTORIES-Variable aus untenstehendem Skript entspricht.
  • Zuletzt chownt man diese gesamte Struktur an den zuerst erstellen SSH-User.

Und so schaut mein Skript aus:
#!/bin/bash

### Settings ###
DIRECTORIES="/etc /home /usr/local/bin"
EXCLUDES="/home/*/.local/share/Trash"
SSHUSER="rdiff-backup"
SSHHOST="192.168.0.1"
REMOTEDIR="/mnt/backup/$(hostname)/"
RDIFF="/usr/bin/rdiff-backup"
RDIFFOPTIONS="ssh -p 2222 %s rdiff-backup --server"
FILEAGE="2M"

NOW=$(date +"%Y-%m-%d")
GZIP="$(which gzip)"
STATUSFILE="/var/tmp/rdiff-backup-status"
LOCKFILE="/var/lock/rdiff-backup-lock"
DUMPDIR="/home/backup"

if [ -e "$LOCKFILE" ]; then
echo "Lockfile exists, quitting..."
exit 255
fi

touch "$LOCKFILE"

### Packages List ###
dpkg --get-selections | $GZIP > $DUMPDIR/dpkg.$NOW.txt.gz
RETVAL=$(($RETVAL + $?))

### File based Backup ###
for DIR in $DIRECTORIES; do
EXCLUDESLIST=""
for EXCLUDE in $EXCLUDES; do
SIZE=$(expr match "$EXCLUDE" "$DIR")
if [ $SIZE -gt 0 ]; then
EXCLUDESLIST="$EXCLUDESLIST --exclude $EXCLUDE"
fi
done
$RDIFF $EXCLUDESLIST --remote-schema "$RDIFFOPTIONS" $DIR $SSHUSER@$SSHHOST::$REMOTEDIR/$DIR
RDIFFRETVAL=$?
RETVAL=$(($RETVAL + $RDIFFRETVAL))
if [ $RDIFFRETVAL = 0 ]; then
$RDIFF --force --remote-schema "$RDIFFOPTIONS" --remove-older-than $FILEAGE $SSHUSER@$SSHHOST::$REMOTEDIR/$DIR
RETVAL=$(($RETVAL + $?))
fi
done

find $DUMPDIR -ctime +7 -exec rm -f '{}' ';'
RETVAL=$(($RETVAL + $?))

echo $RETVAL > "$STATUSFILE"
rm -f "$LOCKFILE"
exit $RETVAL

Was bedeuten nun all die Variablen unter "Settings"?
  • DIRECTORIES: Die zu sichernden Verzeichnisse.
  • EXCLUDES: Nicht zu sichernde Verzeichnisse
  • SSHUSER: Mit welchem User wird per SSH am Server angemeldet
  • SSHHOST: Die Adresse des Backup-Servers. Entweder eine IP oder ein Hostname.
  • REMOTEDIR: Das Basisverzeichnis, worin auf dem Server die Backups gespeichert werden.
  • RDIFF: Pfad zum lokal rdiff-backup Binary
  • RDIFFOPTIONS: Wenn man zusätzliche Optionen angeben will, z.B. einen alternativen SSH-Port. Kann man auch leer lassen
  • FILEAGE: Nach wie vielen Tagen/Monaten/Jahren die Inkremente gelöscht werden sollen