Skip to content

Fehlermeldung

^ v M ><
Diese Fehlermeldung muss man sich einfach mal auf der Zunge zergehen lassen:



Die gibt's, wenn man unter Windows XP mit bestimmtem Patch-Stand den Treiber (bezogen von der Webseite des entsprechenden Notebook-Herstellers) für eine Realtek HD Audio Soundkarte installiert. Verursacht wird sie durch einen Windows-Patch, zu beheben ist sie entweder durch Einspielen eines weiteren Patches oder einer neuen Version des Treibers.

Allerdings ist die Meldung nur schon köstlich, da sie letztendlich aussagt: Wir haben Scheisse gebaut. Sorge dafür, dass Microsoft ihr Windows derart umkrempelt, dass unsere Scheisse wieder funktioniert. Na klar!

Gallery entfernt

^ v M ><
Ich hab vorerst mal die Gallery entfernt. Wieso? Ich hab schon seit Ewigkeiten keine Bilder mehr hochgeladen und in absehbarer Zeit werd ich auch nicht mehr dazu kommen. Tut mir leid für Foto-Fans, aber veraltete Features bringen's ja auch nicht.

Apache Crash nach SysCP Update

^ v M ><
Nach einem Update von SysCP hat Apache folgende Meldung ausgespuckt:

(98)Address already in use: make_sock: could not bind to address xxx.xxx.xxx.xxx:80
no listening sockets available, shutting down
Unable to open logs
failed!


Meine Interpretation davon:
- Da horcht schon was auf xxx.xxx.xxx.xxx:80
- Apache kann seine Logfiles nicht vollmüllen.

Natürlich war nichts auf Port 80 und die Logfiles hat er trotzdem vollgemüllt.

Denn was Apache eigentlich sagen wollte:
- Mach keine redundanten Listen-Direktiven.
- Wenn du vhost-Container erstellst, schau gefälligst, dass auch alle zu nutzenden IP-Adressen im System verfügbar sind.

Grad ersteres dürfte dem einen oder anderen Updater von SysCP 1 auf SysCP 1.2 Probleme bereiten. Drum an dieser Stelle die Lösung: Einfach bei Debian Etch den Inhalt der Datei /etc/apache2/ports.conf auskommentieren. Sowas gehört eigentlich in die Update-Doku.

OK, kann natürlich sein, dass da schon eine Apache-Instanz auf 0.0.0.0:80 gestartet wurde, so dass dann der vhost xxx.xxx.xxx.xxx:80 nicht erstellt werden konnte. Natürlich wird ein netstat keine Belegung von Port 80 ausgeben, da ja die verschuldende Apache-Instanz nach Auftreten des Fehlers auch beendet wird. Von dem her ist die erste Fehlermeldung vielleicht nicht ganz falsch. Aber das mit den Logs werd ich wohl nie verstehen...

Linux-on-a-stick

^ v M ><
Um eine laute Festplatte zu eliminieren, habe ich mal den Versuch gewagt, Linux auf einem USB-Stick zu installieren. An sich erwies sich das als einfacher als befürchtet.

Die Hardware ist mein uralter VIA-C3 1Ghz mit 512MB RAM (abzüglich 16MB für die Grafikkarte), IDE-CD-Brenner und Laptop-Netzteil. Ehemals war da eine superlaute 60GB Platte drin, die vorherige Installation belegte etwas über 2GB also habe ich einen 4GB Stick gekauft. Dabei habe ich auf Performance geachtet, der Stick schafft gemäss Verpackung 25MB/s lesend und 18MB/s schreibend und ist Enhanced-Ready-Boost zertifiziert. Letzteres weist darauf hin, dass er zumindest minimale Performance-Anforderungen erfüllt.

Als Distribution habe ich Xubuntu gewählt, aus zwei Gründen: Erstens braucht es wenig Ressourcen, zweitens ist es blitzschnell installiert. Für eine blanke Xubuntu-Installation ohne weitere Extras würde auch ein 2GB-Stick reichen.

Das Vorgehen war recht einfach: Xubuntu starten, Stick partitionieren (wurde als /dev/sda erkannt und konnte wie eine SATA-Platte genutzt werden) und mit ext3 formatieren (der Installer bietet leider noch keine spezielle USB-Stick-Dateiformate), installieren, gut ist. Nicht vergessen, den Bootloader Grub in den Master-Boot-Record des Sticks zu schreiben
Na ja, nicht ganz. Beim Booten wird sich Grub vermutlich mit "Error 18" verabschieden. Dieser Fehler bedeutet, dass das Kernel-Image auf einem Plattenbereich liegt, der vom BIOS nicht angesprochen werden kann. Also habe ich die Installation nochmals durchgeführt und dabei zum ersten Mal bei einer Linux-Installation eine eigene Partition für /boot von 64MB Grösse eingerichtet. Und siehe, damit bootet der Rechner tatsächlich.

Da Sticks nur eine begrenzte Lebensdauer haben, da sie nur eine begrenzte Anzahl Schreibzyklen unterstützen, sollten Schreibzugriffe möglichst reduziert werden. Als erste Massnahme sollte deshalb bei der Installation auf eine Swap-Partition verzichtet werden. Der Ubuntu-Installer wird zwar meckern, aber ich weiss ja, was ich da tue. Als nächstes sollte /tmp und /var/run in eine RAMDisk gelegt werden. Dazu muss die /etc/fstab um zwei Zeilen erweitert werden:
none /tmp tmpfs auto,mode=1777 0 0
none /var/run tmpfs auto,mode=0755 0 0


Update: Ganz vergessen zu erwähnen habe ich noch eine wichtige Einstellung! Die restlichen Partitionen sollten alle mit der Option "noatime" gemountet werden. Dies verhindert, dass bei jedem Lesezugriff der Lesezeitstempel der Dateien aktualisiert und auf den Stick geschrieben wird. (Ende vom Update)

Das wär's dann schon. Jetzt muss man nur hoffen, dass der Stick bei jedem Einschalten erkannt wird (kommt sporadisch vor, dass es nicht klappt).

Die Performance ist hingegen zweischneidig: Wenn das System erstmals gebootet hat, dann rennt es ganz ordentlich (zumindest soweit es bei dieser lahmen CPU geht). Allerdings bis Grub und das Kernel-Image geladen sind, kann es sehr lange dauern. Vermutlich wird der Stick da über irgend ein langsames Low-Level-Protokoll angesprochen.

Manche Leute...

^ v M ><
Heute musste ich mal wieder einen Hilferuf folgen. Eine unserer Bibliothekarinnen konnte nicht mehr drucken. Also hab ich noch kurz vorm Training vorbeigeschaut und mich um das Problem gekümmert. Die Bibliothekarin ist währenddessen nach Hause gegangen. Ich hab dann auch die Bibliothek verlassen, abgeschlossen, bin ins Büro und hab dort noch am (Windoof-)Server rumgefrickelt. Anschliessend bin ich wieder in die Bibliothek um den PC der Bibliothekarin kurz zu prüfen und runterzufahren. Geschätzter Zeitbedarf: 2 Minuten. Wozu also die Bibliothek wieder abschliessen, wenn ich die Tür sowieso im Blickfeld hab und kein Mensch zu sehen ist.

Ich war noch keine 10 Sekunden drin, da kommt schon wie selbstverständlich die erste Person reingestolpert. Ich hab relativ deutlich gesagt, dass die Bibliothek seit einer halben Stunde zu sei. Antwort: "Ich bin extra von Bern hergekommen. Als ich letztes Mal da war, war das Buch leider schon von jemand anders reserviert." Tja Pech. Ich kann und darf keine Bücher rausgeben. "Können Sie denn da nicht mal ne Ausnahme machen?" Nein, mein Lieber. Ich KANN es nicht. Ich WEISS NICHT wie es geht. Selbst wenn ich wollte. Da hilft auch kein Geflenne. Denn Junge, weisst du, life's a bitch :-D

High Speed UMTS unter Linux: So klappt's!

^ v M ><
Tja, was soll man machen? Man ist Informatiker, sitzt 5-6 Tage pro Woche den ganzen Tag an der Uni, braucht also daheim selten Internet, aber brauchen kann man es eben trotzdem.
Kabelinternet wär zwar günstig. Geht aber nicht, weil die Bude bzw deren TV-Kabelinstallation zu alt ist.
DSL will ich nicht, da mir die Angebote nicht passen. CHF 25.25 für eine Telefonleitung, die ich eh nicht brauche bezahl ich schlicht nicht. Und das Angebot von Monopoly-Spieler Bluwin mit erlassender Grundgebühr ist ein schlechter Witz, wenn ich dafür erstens mein Handy-Abo upgraden und ich mich zweitens noch länger als nötig an die Swisscom binden muss (ich freu mich ja schon auf den Tag, an dem mein Abo ausläuft).
Analogmodem kommt aus Prinzip (Performance) nicht in Frage und braucht auch wieder einen Telefonanschluss.

Lösung? Söönreis (wie's eine BWL-Professorin xmal pro Vorlesung ausgesprochen hat) Mobildatenabo mit UMTS. Klappt auch prima unter Pinguin-OS.

Allerdings bringt die Leitung nach Einstöpseln und konfigurieren des Modems nur mit ca 500kbps, auch wenn eigentlich viel mehr drinliegen müsste. Ein Bisschen suchen im Internet hat mich dann zu dieser Anleitung zum Patchen des usbserial-Moduls geführt. Allerdings ist nur eine Anleitung für Kernel 2.4 dabei, das ist bei aktuellen Distributionen nicht mehr so ganz passend. Deshalb gibt's hier eine kleine Anleitung für Ubuntu 7.10 (durch anpassen der Kernel-Source-Version eigentlich auf jede Distro adaptierbar):

Erst die Kernel-Source installieren:
# aptitude install linux-source ncurses-dev && cd /usr/src && tar -jxf linux-source-2.6.22.tar.bz2 && cp /boot/config-$(uname -r) /usr/src/linux-source-2.6.22/.config && make menuconfig
Nun die Konfiguration wieder beenden (Pfeiltaste nach rechts und Enter). Jetzt geht's ans Eingemachte, den auf der soeben verlinkten Seite erhältlichen Patch einspielen. Der Patch kann z.B. als /root/usbserial.c.patch abgespeichert werden:
# cd /usr/src/linux-source-2.6.22/ && patch -Np0 -i /root/usbserial.c.patch
Nun muss das usbserial-Modul neu kompiliert werden. In der ursprünglichen Anleitung ist ein Bandwurm von gcc-Befehl drin, das klappt bei mir aber nicht. Nun, der Einfachheit halber hab ich einfach alle Module neu übersetzt. Das dauert zwar, ist aber ein zuverlässiger Weg:
# make modules
Als nächstes muss das neue Modul installiert werden (vorher besser das Original noch sichern -> Murphy ist überall):
# mv /lib/modules/$(uname -r)/kernel/drivers/usb/serial/usbserial.ko /root/usbserial.ko.old && cp drivers/usb/serial/usbserial.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ && update-modules
Der Befehl
# modinfo usbserial
sollte nun den neuen Parameter maxSize anzeigen.

Für mein Novatel MC950D muss der Treiber nun wie folgt geladen werden (erst muss das Pseude-CD-Laufwerk mit dem Treiber ausgehängt werden):
# eject /dev/scd1; sleep 3; modprobe usbserial vendor=0x1410 product=0x4400 maxSize=2048

Das Resultat ist beachtlich. Statt mit 500kbps bin ich jetzt mit 2.7mbps unterwegs. Also locker 5x schneller. Einzig an der Latenz hab ich noch was auszusetzen. Ping über 100ms zu den schnellsten Servern ist nicht sooo toll. Insbesondere dass kein DNS-Server in weniger als 300ms zu erreichen ist, verzögert natürlich jeden Verbindungsaufbau. Ich brauch wohl einen lokalen DNS-Cache.

667 - Neighbour of the Beast

^ v M ><
Interessant, was die Leute an Weihnachten alles an ihre Häuser hängen. Ob der Besitzer dieses Weihnachtssterns wohl weiss, was ein derartig aufgehängtes Pentagramm wirklich bedeutet?

Unerreichte Uptime

^ v M ><
Eine meiner virtuellen Maschinen "tickt" anscheinend nicht ganz richtig. Resultat davon ist eine etwas gar hohe Uptime:
# uptime
01:09:25 up 18538 days, 21:34, 4 users, load average: 0.16, 0.07, 0.50

Also rund 50 Jahre.

Infos zum System:
# date
Fri Jan 4 01:09:53 CET 2008

# uname -a
Linux gentoovm 2.6.23-gentoo-r3 #1 SMP Wed Jan 2 14:36:11 CET 2008 i686 Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz GenuineIntel GNU/Linux


Die virtuelle Maschine war ein paar Tage lang "suspendiert", drum das Datum vom 4. Januar. Der Kernel wurde am 2. Januar übersetzt. Interessant, dass da über 18'000 Tage dazwischen liegen sollen.