Unverhofft kommt oft

Manchmal ist es wie verhext. Man glaubt nichts anderes als beim letzten Mal gemacht zu haben und doch verhält sich das System anders als erwartet.

Da der Toshiba 220 CS wegen KolibriOS eine neue FAT32-Partition erhalten sollte, dachte ich, eine komplette Neuinstallation mit allen vorher entdeckten Optimierungen wäre eine gute Sache.

Also wurde wieder Qemu und das 8 MB große Slitaz-Base-ISO bemüht und alles in ein 300 MB großes Raw-Image geschrieben. Dieses Mal wählte ich Ext2 als Dateisystem, was auf solchen Oldies „gefühlt“ schneller arbeitet als Ext3, ohne dass ich dafür irgendwelche Zahlen nennen könnte.

Auch im Hinblick auf den 16 MB großen RAM Speicher hielt ich es für sinnvoll mich auf ein Dateisystem zu konzentrieren.

Das vorgefertigte Muster-Slitaz musste nur noch mit dd auf die Festplatte geschrieben und der restliche verfügbare Speicherplatz mit fdisk zugewiesen werden.

So hatte ich schließlich eine Swap-, Root-, Dos- und Home-Partition und bis auf Dos waren alle mit Ext2 formatiert.

Nach einigen Neustarts, zuvor waren nur 3-4 Standardprogramme installiert worden, hing sich das System nach dem Neustart schon auf, so dass ein Kaltstart die letzte Lösung war.

Merkwürdigerweise passiert mir so etwas immer nur bei Ext2-Dateisystemen, die danach natürlich Fehler melden und in diesem Fall leider auch einen unreparierbaren Schaden.

Anscheinend war eine System- oder Gerätedatei beschädigt,auf jeden Fall gab es als fortlaufende Fehlermeldung „/dev/tty2 could not be opened“. Der Fehler ließ sich reproduzieren und trat nur dann auf, wenn ich den restlichen Festplattenspeicher partitionierte.

Dank des vorher angefertigten Backups mit DD ist nun alles wieder beim alten inklusive Ext3 Root-Partition. Solche Fehler sind unheimlich schwer nachzuvollziehen und sind auch nichts, was ich tiefer untersuchen möchte.

Das Ende: Ich verkleinerte die Root-Partition mit resize2fs und habe nun eine ca. 200 MB große Partition für KolibriOS.

Auch wenn man am liebsten schreiben möchte, dass man Ubuntu auf einem 15 Jahre alten Rechner zum Laufen bekommen hat und dort gerade Youtube-Videos mit Flash (pfui) ansieht, während gleichzeitig der mit Blender erzeugte neue Zeichentrickfilm gerendert wird…es läuft nicht immer alles auf Anhieb rund.

Auch der USB-Port scheint nicht zu den zuverlässigsten zu gehören. Mal lässt sich auf den USB-Stick schreiben, dann wieder nicht. Dateisystem wechseln hilft nicht und an anderen Laptops funktioniert er einwandfrei.

Momentan kann ich dafür Slitaz nicht verantwortlich machen, da vieles mehr auf die Hardware zurückzuführen scheint als auf das Betriebssystem. Mal sehen was Debian sagt, sofern ich es schaffe einen Kernel zu erstellen, der mit 16 MB RAM umgehen kann. 😉

KolibriOS auf einer Floppy

Ich hatte vor kurzem die Gelegenheit mir KolibriOS in der aktuellen Version 0.7.7.0 etwas näher anzuschauen. KolibriOS hat genau genommen nichts mit dem Linuxkernel zu tun, ist aber Freie Software und, für mich besonders bemerkenswert, komplett in Assembler programmiert.

Das Erstaunliche: Das komplette grafische Betriebssysten passt auf eine einzige 1,44 MB Floppy, lässt sich aber auch von einem USB-Stick oder einer CD booten und direkt mit Hilfe von GRUB und memdisk von jedem Linuxsystem aus starten.

Mein erster Gedanke war, wie schlägt sich KolibriOS auf dem antiken Toshiba Satellite 220cs mit nur 16 MB RAM.

Slitaz ist dort mittlerweile in der Minimalinstallation installiert, Sound funktioniert, ein paar wesentliche Systemeinstellungen wurden auch schon justiert, was nun noch fehlte war eine moderne grafische Oberfläche, die auch angemessen schnell reagiert.

Ehrlich gesagt bezweifle ich, dass eine komplette GUI überhaupt notwendig ist. Slitaz bringt auf der Kommandozeile schon genug nützliche Programme mit.

Bis ich dieses Problem gelöst habe, gibt es nun KolibriOS. Eine Dual-Boot-Installation mit GRUB Legacy ist äußerst einfach und um es vorweg zu nehmen, der Satellite 220cs kommt gut damit zurecht.

Es genügt das Paket syslinux zu installieren und dann den Bootloader memdisk von /usr/lib/syslinux z.B. in das Boot-Verzeichnis oder eine separate Partition zu kopieren. Anschließend muss die Datei kolibri.img der Diskettenversion ebenfalls in dieses Verzeichnis/Partition kopiert werden.

Um KolibriOS beim Start von GRUB auswählen zu können, wird die /boot/grub/menu.lst editiert. Liegen memdisk und kolibri.img auf der boot Partition hda1 sieht das so aus.

title KolibriOS
root (hd0,0)
kernel /memdisk
initrd /kolibri.img

Auch für GRUB2 ist die Installation schnell erledigt. Unterschied ist die neue Syntax und die geänderte Zählweise bei Partitionsnummern. Die sauberste Lösung ist bei Debian das Editieren der Datei /etc/grub.d/40_custom. Danach nur noch den Befehl grub-mkconfig -o /boot/grub/grub.cfg als root ausführen.

menuentry „KolibriOS“ {
set root='(hd0,1)‘
linux16 /memdisk
initrd16 /kolibri.img
}

Memdisk war leider nicht im Syslinux-Paket von Slitaz enthalten, weswegen ich Memdisk von einer Debianinstallation benutzt habe und das auch problemlos funktionierte.

Nach dem Neustart lässt sich nun bequem zwischen KolibriOS und der alten Linuxdistribution wählen.

KolibriOS überraschte mich mit einem kompletten grafischen Desktop und einer Unmenge an Programmen, Gimmicks und Spielen. Außerdem funktionierte die Internetverbindung auf dem Inspiron 4000 dank Unterstützung für den Intel-Chipsatz. Das schaffte nicht einmal Debian Squeeze out-of-the-box. (oder besser wollte nicht schaffen) 😉

Ein komplettes SDK zur Programmierung von Anwendungen in Assembler ist integriert. Der Hintergrund und die Icons lassen sich ändern, Touchpad und Maus funktionieren und auch der kleine quäkende PC Speaker gibt Töne von sich 😉

Es gibt einen IRC-Client, einen HTML-Viewer, Telnet und FTP-Clients, man kann Internet-Schach spielen. Da sind ein Taschenrechner, ein kleines Malprogramm, Texteditor, Shell, ein CD-Player und auch ein Dateimanager und und und.

Mehr als genug Programme um behaupten zu können, ein komplettes Betriebssystem vor sich zu haben. Sicher ist aber auch, dass trotzdem nicht von heute auf morgen jeder Privathaushalt und jedes Unternehmen auf KolibriOS umstellen wird. Die Hardwareerkennung ist natürlich sehr eingeschränkt. Wer also PCMCIA und USB-Wlan-Sticks zum Surfen braucht hat Pech gehabt.

KolibriOS ist so winzig, dass der Begriff „leichtgewichtig“ schon wieder zu schwer ist. KolibriOS zum Maßstab aller leichtgewichtigen Linuxdistributionen zu machen ist aber genauso ungerecht wie zu erwarten, dass ein kompletter Firefox in Assembler irgendwo zwischen den 1,44 MB schlummert oder OpenOffice sich wundersamerweise hinter einem der zahlreichen Programmmenüs verbirgt.

Ebenfalls beachten sollte man, dass KolibriOS nur auf FAT-Partitionen schreiben kann und von ext2/ext3 nur liest. Deswegen werde ich die Programme auch mal näher vorstellen, sobald ich eine FAT-Partition auf einem der Laptops eingerichtet habe. Die Screenshots stammen deshalb noch aus Qemu.

Ich denke KolibriOS ist ein starker Gegenbeweis zu manch Gigabyte großer Installation und zeigt was theoretisch machbar wäre.

Ich ziehe auf jeden Fall meinen Hut vor den Entwicklern.

Audiowiedergabe mit dem Toshiba Satellite 220cs funktioniert

Endlich geschafft! Nachdem der alte Toshiba-Laptop sich beharrlich geweigert hatte auch nur eine Note abzuspielen, gibt es ab sofort Musik mit mplayer oder moc.

Seit ich Slitaz installiert hatte, wusste ich schon, dass sich eine ISA-Soundkarte mit dem Yamaha-Opl3sa2-Chipsatz im Inneren des Satellite 220cs befindet. Eine Suche nach alsa + opl3sa2 brachte mich dann der Lösung näher.

ISA-Soundkarten sind unter Linux etwas trickreich einzurichten. Meistens scheitert es daran, dass an den Linuxtreiber noch weitere Parameter übergeben werden müssen, die nicht zwingend auf jedem Computer gleich sind und auch im BIOS beliebig verstellt werden können.

In meinem Fall spuckte das BIOS folgende Informationen aus. (Man erreicht es übrigens, wenn man beim Start ESC gedrückt hält und danach F1 drückt, scheinbar ein Toshiba Feature)

wss/io = 530h
sb_port = 220h
synth(fm_port) = 388h
irq = 5
dma1 = 1
dma2 = 0
port = 370h
midi_port = 330h

Da ich immer noch mit der absoluten Slitaz-Minimalinstallation experimentiere, mussten die Pakete

linux-sound
alsa-utils

nachinstalliert werden, indem sich die Soundtreiber für Slitaz und wichtige Hilfsprogramme für Alsa befinden.

Der Rest ist ein Einzeiler.

modprobe snd_opl3sa2 index=0 id=CARD_0 port=0x370 sb_port=0x220 wss_port=0x530 midi_port=0x330 fm_port=0x388 irq=5 dma1=1 dma2=0 isapnp=0

Potentielle Fehlerquellen gibt es hier viele. Nicht nur müssen die Namen der Parameter und die Werte stimmen, auch der Bezeichner id darf nicht fehlen, damit die Karte später von alsa richtig angesprochen werden kann.

Das mitgelieferte soundconf-Programm nimmt diese Einstellungen leider nicht automatisch vor. Ebenso sollte man vorher mit lsmod überprüfen, ob der Treiber snd_opl3sa2 nicht schon vorher ohne Parameter geladen worden ist.

Startet man als root alsamixer können nun die verschiedenen Input/Output-Signale geregelt und die Lautstärke angepasst werden.

Dabei sollte man nicht vergessen durch Drücken der Taste „m“ die einzelnen Kanäle zu „entmuten“ 🙄

Die ganzen Einstellungen lassen sich danach mit dem Befehl

alsactl store CARD_0

dauerhaft in /etc/asound.state sichern und mit

alsactl restore CARD_0

wiederherstellen.

Normalerweise werden die Parameter in einer Datei im Ordner /etc/modprobe.d/ gespeichert und beim Bootvorgang dann automagisch mit an den Treiber übergeben. Dachte ich zumindest.

Slitaz lässt sich bisher von solchen Versuchen nicht beeindrucken. Auch der Eintrag des Treibers + Parametern in Slitaz zentraler Konfigurationsdatei /etc/rcS.conf bewirkte nichts.

Höchstwahrscheinlich ein Bedienungsfehler, weshalb ich nicht mehr lange weiterprobierte und den Modprobe- und Alsactl-Restore-Befehl in ein ausführbares Skript eingetragen habe, welches ich nach Start dann einmal als root aufrufe.

Nicht sehr elegant, aber wirkungsvoll.

Achja, die Musik klingt nach Anschluss an externe Boxen gar nicht so schlecht. Für den Wohnzimmer-Betrieb vollkommen ausreichend. Mplayer und Moc funktionieren problemlos.

Einziger Wermutstropfen ist das Abspielen von Musik über eine ssh Verbindung mit sshfs, meine bevorzugte Variante um Dateisysteme zu mounten. Nach kurzer Zeit friert der Rechner komplett ein und nur noch ein Kaltstart holt ihn wieder aus der Starre.

Da andere Dateioperationen scheinbar fehlerfrei funktionieren, könnte der Satellite 220cs damit einfach überfordert sein. Mal schaun, ob sich dafür noch eine Lösung finden lässt 😉

Slitaz: Minimalinstallation auf dem Toshiba Satellite 220cs

Nachdem ich mit Slitaz eine schnelle und effiziente Live-CD gefunden hatte, probierte ich die verschiedenen „flavor“ Versionen aus, bei denen sich Slitaz selbst mit weniger als 16 MB RAM zufrieden gibt.

Mein Testobjekt war der Toshiba Satellite 220cs, ein Laptop aus dem Jahr 1996 mit PI 133 MHz CPU und 16 MB RAM. Bei diesem Alter geben alle großen Distributionen klein bei. Keine Chance mit Ubuntu, Fedora oder SuSe so einen Rechner aus dem Stand mit der Installations-CD zum Laufen zu bewegen. Und selbst für den debian-installer sind 16 MB RAM einfach zu wenig.

Als erstes probierte ich sowohl die Loram-Version des aktuellen stabilen Slitaz 3.0 aus als auch die alte 2.0 Ausgabe. Hauptgrund hierfür war ein Tip im Slitaz-Forum, dass damit eventuell ein Problem mit Ndiswrapper behoben werden könnte. Neben zwei PCMCIA-Cardbus-Slots besaß der alte Toshiba auch noch einen USB 1.0 Port, ungewöhnlich für diese Zeit als noch Windows 95 das Maß aller Dinge war.

Die Loram-cdrom-3.0 CD bootete ohne weitere Parameter und startete tatsächlich ohne Unterbrechung sofort in eine X-Umgebung mit Slim als Login- und Openbox als Fenstermanager. Hier war aber schon klar, dass diese Standardvorgabe für 16 MB RAM wirklich nur zum Vorführen reichte. Für eine sinnvolle Nutzung reagierten die voreingestellten Programme einfach zu langsam.

Da das Nachladen von CD-ROM auch viel Leistung kostete, kam nur eine Festplatteninstallation in Frage. Hierzu muss man als erstes die Festplatte mit fdisk partitionieren, da Slitaz diese Operation nicht automatisch beim Installieren ausführt. Nach der Partitionierung sollte die Swap-Partition (z.B. /dev/hda1) sofort mit

mkswap /dev/hda1

swapon /dev/hda1

aktiviert werden.

Anschließend genügt ein

slitaz-installer

als Root um die Installation zu starten. Diese ist im positiven Sinne sehr einfach gehalten. Man gibt lediglich die vorher partitionierte Root-Partition an, wählt Namen und Passwort der Systembenutzer und die Systemsprache aus. Der Rest geschieht automatisch.

Nach dem Neustart sollte man als erstes Openbox und slim mit dem Paketmanager Tazpkg entfernen und danach die Internetverbindung einrichten. Für den Laptop kamen für mich entweder mein USB-WLAN Stick oder die PCMCIA-WLAN-Karte WPC54G von Linksys in Frage. Letztere lässt sich ohne weiteres mit dem Kernelmodul b43 in Betrieb nehmen. Eine ausführliche Beschreibung für Slitaz gibt es sogar im englischen Forum.

Den USB-Stick mit Ndiswrapper und dem Windowstreiber zum Laufen zu bekommen scheiterte aber. Obwohl ich mit iwlist den Router „sah“, konnte keine Verbindung aufgebaut werden egal ob mit oder ohne Verschlüsselung. Hinzu kamen seltsame Fehlermeldungen. Auch bei der alten Slitaz-2.0-Version gab es das gleiche Ergebnis. 🙁

Da die PCMCIA-Karte aber problemlos nach der manuellen Installation der richtigen Slitaz Pakete und der Firmware funktionierte, musste ich nicht mehr weitersuchen. Im übrigen lässt sich der WLAN-Zugang mit WPA bei Slitaz ohne GUI am einfachsten in der Datei /etc/network.conf einrichten und danach mit dem Ausführen von /etc/init.d/network.sh starten. Auf das zusätzliche Editieren der wpa_supplicant.conf kann man verzichten.

Danach genügte ein

tazpkg recharge

tazpkg get-install „Paketname“

oder tazpkg remove „Paketname“

um das System weiter anzupassen. Dabei fällt besonders auf, dass Slitaz eine sehr effiziente Lösung gefunden hat um die Software zu verwalten. Selbst auf einem alten Laptop funktioniert das De- und Installieren ohne Schwächeanfall.

Minimalinstallation mit der Slitaz-3.0-Base-Version

Das „Base-ISO“ von Slitaz ist gerade einmal 8 MB groß, was geradezu verschwenderisch anmutet um es auf eine CD zu brennen. Ich habe mich deshalb auch entschieden diese Version mit Qemu auf meinem Dell Inspiron 4000 zu installieren und die notwendigen Pakete für die WLAN-Karte dieses mal bequem über eine bestehende Internetverbindung zu installieren.

Das tolle an Qemu ist die Möglichkeit ein Image im Raw-Format zu erstellen, welches sich wiederum problemlos mit dd wieder auf die Festplatte des Toshiba-220cs-Laptops schreiben lässt. Normalerweise halte ich den Ausbau der Festplatte für die letzte Lösung, mittlerweile denke ich aber, dass es sogar die einfachste war.

Die Festplatte lässt sich bei diesem speziellen Laptop direkt an der Frontseite einfach herausziehen, ohne dass man auch nur eine Schraube irgendwo lockern musste. Mit einem 10 € teuren IDE/S-ATA- zu USB-Adapter lässt sich die Festplatte dann per USB an jeden anderen Rechner anschließen und das vorher erstellte Qemu Image installieren.

Herauskommt eine Basisinstallation, die nicht einmal 30 MB Speicher auf der Festplatte belegt. Von hier aus lässt sich dann mit dem TAZ-Paketmanager weiter experimentieren.

To-Do

Eine grafische Desktopumgebung mit Xorg und Openbox ist für 16 MB RAM zu schwerfällig. Selbst dwm, einer der kleinsten und ressourcenschonendsten Fenstermanager, die ich kenne, holt hier auch nicht mehr heraus. Eine Alternative könnte Xvesa anstelle von Xorg sein.

Auf jedem Fall stehen einem schon heute alle Konsolenprogramme offen um den Toshiba 220cs produktiv zu nutzen. Unter anderem natürlich E-Mails schreiben mit Alpine, Chatten mit Irssi oder Centerim und Dateien verwalten mit dem Midnight-Commander. Dazu bietet sich Screen an, leider aber noch ohne den Patch für das vertikale Teilen des Bildschirms.

Hiermal ein erster (wenig beeindruckender) Screenshot, der eine Screen-Session über SSH auf meinem Dell-Laptop zeigt. Laut Htop werden 6 MB RAM benutzt. Vielleicht war dieser Schock auch der Grund, warum Htop sich nach wenigen Sekunden automatisch beendet..

Auch ein Upgrade von der stabilen auf die Cooking-Version ist eine weitere Alternative. Und dann wäre da noch die ISA-Soundkarte und der Opl3sa2-Treiber, die trotz ausreichender Informationen im Internet noch nicht richtig wollen.

Update
Mittlerweile finden sich hier Informationen zur Einrichtung der Audiowiedergabe auf dem Toshiba Satellite 220cs und noch ein paar Anmerkungen zur Installation von Slitaz in den Kommentaren.

Es gibt also noch einiges zum Testen bei Slitaz. Und danach..
Ich wollte schon immer mal das winzige KolibriOS ausprobieren. 😉