Umstieg auf Linux

Die folgenden Notizen sind wärend meinem Unstieg auf Debian Linux enstanden. Ich habe sie ins Internet gestellt in der Hoffnung, dass andere Leute mit ähnlichen Problemen beim Umstieg auf Linux haben und hoffe, dass sie die mit Hilfe dieser Notizen lösen können.

Welche Betriebssysteme bisher liefen

Neben meinem bisgerien Hauptbetriebssystem Windows lief meist ein Linux (angefangen mit SuSE Linux 5.1, Kernel 2.0.32), so dass ich damit ein paar Erfahrungen sammeln konnte. Mit Linux beschäftigte ich mich mehr aus Neugierde, die meiste Arbeit habe ich unter Windows erledigt. Mit "Arbeit" meine ich dabei Software-Entwicklung (Java, C++, C#, PHP), Office- und Internet-Sachen (EMail, News, WWW), Spiele eher weniger.

Abkehr von Windows

Nach einigem Ärger über Microsoft ziehe ich in Erwägung, Linux zu benutzen. Ich besorge mir dazu an der Uni aktuelle CD-Rom-Images und installiere davon Debian.

Den Anstoss, mir Gedanken über einen vollständigen Umstieg zu machen, gibt dann das folgende Ereignis: Microsoft bietet ein Anti-Spyware-Programm (Beta-Version) zum download an. Der Download scheitert bei mir aber daran, dass Microsoft meinen Rechner daraufhin überprüfen möchte, ob ich auch nur legale Software einsetze. Dies soll durch die Ausführung eines kleinen Programms geschehen, welches die Daten automatisch an Microsoft übermittelt. Meiner Ansicht nach hätte Microsoft gerne die Seriennummer meiner Windows-Installation haben können - was sonst noch auf meinem Rechner ist, geht Microsoft aber nichts an. Also gibt es auch kein Anti-Spyware-Programm, und da ähnliche Aktionen von Microsoft in Zukunft wohl noch öfter zu erwarten sind, rückt der Umstieg auf Linux wieder ein Stückchen näher...

Meine weitere Planung sieht nun folgendermaßen aus: Zunächst möchte ich meine Hardware unter Linux zum Laufen bringen und dann eine Anwendung nach der anderen durch ein geeignetes Programm unter Linux ersetzen.

Einrichtung der Hardware

Der folgende Text bezieht sich auf die folgende Hardware (sicherlich nicht mehr ganz frisch, genügt mir aber (Update im Oktober 2005: genügt mir nicht mehr, siehe):

  • Notebook Asus MP8300C mit Intel Celeron 550MHz Prozessor
  • Chipsatz Intel 440MX
  • 192 MB RAM
  • SiliconMotion Graphik-Chipsatz mit 8 MB Speicher
  • Intel EtherExpress Pro 100 Netzwerkkarte
  • Lucent WinModem
  • AC97-Kompatible Soundkarte
  • USB-Maus
  • D-Link DWL-G650 Wireless LAN PCMCIA Karte (Revision B2 mit Atheros Chipsatz)

USB-Maus

Nach dem Booten von Linux habe ich nur einen Shell-Prompt. Daran habe ich mich schon gewöhnt, zum täglichen Arbeiten ist eine graphische Oberfläche aber doch irgendwie praktischer. Die Installation mittels apt-get install kde gelingt erfreulich problemlos. Nur leider mag sich der Maus-Zeiger kein bischen bewegen. Gutes Zureden hilft leider auch nicht weiter. Das Laden von ein paar Modulen verhilft dann schließlich zur gewünschte Bewegung.

Um die USB-Maus sowohl auf der Konsole als auch unter X verwenden zu können habe ich folgendes gemacht:

Eintragen der Kernel-Module

Ich habe die Kernel-Module

  • usbcore
  • uhci-hcd
  • mousedev
  • usbhid

in die Datei /etc/modules eingetragen, so dass diese beim Booten automatisch geladen werden. Man kann die Module zum Testen auch mittels modprobe Modulname laden und schauen, ob man nach einem cat /dev/input/mice wirre Zeichen sieht. Das sind dann die Daten, die die Maus liefert. Die Ausgabe kann man mit Ctrl-C wieder abbrechen. Statt dessen ist es aber auch möglich, das Paket hotplug zu verwenden. Es sucht während des bootens nach bekannter Hardware und lädt die benötigten Kernel-Module austomatisch. Möchte man USB auch für andere Peripherie (USB-Festplatten, Kartenleser, etc.) verwenden, empfiehlt sich die Verwendung von hotplug.

Console-Support

Das Programm gpmconfig aufgerufen, als Protokoll imps/2 und als Device /dev/input/mice angegeben. Nach einem Neustart von gpm sollte dann ein Mauscorsur auf der Console erscheinen.

XFree

Um die Maus auch unter XFree nutzen zu können, habe ich in der Datei /etc/X11/XF86Config-4 folgenden Eintrag gemacht:

Section "InputDevice"
  Identifier "Generic Mouse"
  Driver "mouse"
  Option "SendCoreEvents" "true"
  Option "Device" "/dev/input/mice"
  Option "Protocol" "ImPS/2"
  Option "Emulate3Buttons" "true"
  Option "ZAxisMapping" "4 5"
  Option "CorePointer"
EndSection

Der Name der Maus (hier "Generic Mouse") muss auch im Abschnitt ServerLayout mittels InputDevice "Generic Mouse" bekannt gemacht werden. Und schon bewegt sich der Mauszeiger auch unter X. :-)

Lucent WinModem

Mit dem verwendeten Modem habe ich etwas mehr Aufwand gehabt, da es kein normales serielles Modem ist, sondern ein sogenanntes WinModem, für welches es keine Treiber im Kernel gibt. Auf der Seite http://www.linmodems.org gibt es Informationen und Treiber zu WinModems unter Linux. Zur Installation des Treibers für mein Modem ist aber der konfigurierte Kernel-Quellcode notwendig. Also habe ich mich zunächst - mehr aus Neugierde, ob es denn auch funktioniert - darangemacht, einen eigenen Kernel zu kompilieren.

Zunächst habe ich mit

apt-get install kernel-source-2.6.10

den Quellcode des zur Zeit aktuellen Kernels installiert und im Verzeichnis /usr/src/linux mittels make menuconfig eine meiner Meinung nach günstige Konfiguration ausgewählt. Dazu sollte man sich viel Zeit nehmen und die jeweiligen Hilfetexte durchlesen, um zu verstehen, was man da gerade konfiguriert. Ist die Konfiguration fertig, speichert man sie am besten in einer Datei ab, um sie später weiter bearbeiten zu können.

Nach dem Verlassen des Konigurationstools kann man dann mit dem Packet kernel-package ein eigenes Debian-Paket mit dem selbst konfigurierten Kernel erstellen lassen. Dazu ruft man im Quellcode-Verzeichnis des Kernels (meist /usr/src/linux) den Befehl

make-kpkg --append-to-version YYYYMMDD kernel_image

auf. Damit wird der Kernel und die nötigen Module kompiliert und in eine .deb-Datei unter /usr/src gepackt. Die Zeichen YYYYMMDD sollte man natürlich durch das aktuelle Datum ersetzen, denn dann bekommt der Kernel das Datum an die Version drangehängt. Dieses kann man nach der Installation mit uname -a überprüfen. So kommt man nicht mit mehreren Kernels der selben Version durcheinander, denn es ist sehr wahrscheinlich, dass man mehrere Anläufe braucht, bis die Konfiguration "perfekt" konfiguriert ist. Das erstellte Debian-Paket kann nun mittels

dpkg -i kernel-image-2.6.10-YYYYMMDD.deb

installiert werden.

Nun endlich kann man mit der Installation der Modem-Treiber beginnen. Dazu entpackt man das Archivltmodem.VVVV.tar.gzmittar -xvzf ltmodem.VVVV.tar.gz, zum Beispiel im Verzeichnis/usr/src. Nun wechselt man in das dabei erstellte Verzeichnis und ruft dort den Befehlbuild_moduleauf. Es gibt auch ein Skriptbuild_deb, welches ein Debian-Paket erstellen soll. Das hat bei mir jedoch nicht funktioniert.

Wenn das Kompilieren funktioniert hat, findet man im Unterverzeichnis drivers die Kernel-Module. Diese kann man nun mit

mkdir /lib/modules/`uname -r`/extra
cp lt*.ko /lib/modules/`uname -r`/extra

zu den anderen Kernel-Modulen kopieren. Nach einem Aufruf von depmod -a werden die Abhängigkeiten zu anderen Modulen berechnet und man kann das Modul lt_serial.ko mittels modprobe lt_serial laden und/oder in die Datei /etc/modules eintragen, damit es bereits beim booten geladen wird.

Die WLAN-Karte

Da meine WLAN-Karte einen Chipsatz von Atheros enthält, gibt es im Kernel - ebenso wie beim Modem - keinen Treiber. Das Projekt MadWifi stellt aber einen Treiber zur Verfügung. Dieser Treiber enthält jedoch Binärcode von Atheros; es handelt sich also nicht um einen reinen OpenSource-Treiber.

Auch dieser Treiber benötigt die konfigurierten Kernel-Sourcen. Man verfährt also ähnlich wie bei der Installation der Modem-Treiber, entpackt das Treiber-Archiv und ruftmakeauf. Der Treiber wird nun compiliert und man kann das fertige Modul ebenfalls nach /lib/modules/\uname -r`/extra` kopieren.

Zum Betrieb der WLAN-Karte, einer PCMCIA-Karte, benötigt man dann noch:

  • das Paket wireless-tools
  • Die Software und einen passenden Kernel zum Betrieb des PCMCIA-Busses

Dann kann man die Karte einfach einstecken, mittels modprobe ath_pci das entsprechende Modul laden, dann mit ifconfig eth0 up die Karte anschalten und mit iwlist scanning nach Accesspoints in Reichweite suchen. Wenn man in einem Netz mit DHCP-Server aktiv ist, kann man mit dhclient ath0 eine IP-Adresse beziehen. Ansonsten kann man die IP-Adresse auch statisch mit dem Programm ifconfig festlegen.

Einrichtung der Anwendungen

Die meisten Anwendungen lassen sich problemlos mittels apt-cache search NameDerAnwendung suchen und dann mittels apt-get install Anwendung installieren. Es gibt jedoch ein paar Ausnahmen, bei denen die aktuellste Version der Anwendung noch nicht als Debian-Paket vorliegt oder die es gar nicht als Debian-Paket gibt.

Software-Entwicklung: Java und Eclipse 3.1

Da ich zur Zeit an der Uni mit Java und Eclipse entwickle, brauche ich diese Anwendungen auch unter Linux. Das JDK (Java Development Kit) von Sun ist leider kein Open Source und daher auch nicht als Debian-Packet (jedenfalls nicht auf den Debian-Servern) erhältlich. Man kan es sich aber als selbstentpackendes Archiv unter http://java.sun.com herunterladen und einfach in einem beliebigen Verzeichnis entpacken. Ich habe dazu /opt/jdk1.5.0 gewählt.

Mit Eclipse kann man ganz ähnlich verfahren. Die aktuelle Version habe ich von einem Mirror von http://www.eclipse.org heruntergeladen. Genau genommen handelt es sich um mehrere Archive: Die Eclipse Platform (das Eclipse SDK benötigt man normalerweise nicht), die Java Development Tools (JDT) (damit man überhaupt Java-Unterstützung in Eclipse hat) und bei Bedarf das JUnit Testing Framework. Diese Archive habe ich ebenso wie das JDK im Verzeichnis /opt entpackt, so dass Eclipse nun im Verzeichnis /opt/eclipse installiert ist. Unter Umständen müssen noch die GTK-Bibliotheken installiert werden, damit Eclipse läuft. Bei mir waren sie aber schon installiert, so dass ich dazu nichts genaueres sagen kann.

Ein Office-Paket: OpenOffice

Natürlich benötige ich auch ein Office-Paket um hin und wieder mal einen Brief zu schreiben, eine Tabelle zu erstellen, etc. Dazu habe ich mir zum einen das Paket OpenOffice, aber auch das zum KDE-Projekt gehörende KOffice installiert und beide ausprobiert. Mein Eindruck ist, dass KOffice an einigen Stellen noch nicht so weit entwickelt ist wie OpenOffice, daher habe ich es wieder gelöscht.

Personal Information Management: Kontact

Das Debian-Pseudo-Paket kdepim installiert alles, was man braucht. :) Es handelt sich um mehrere Anwendungen (EMail, News, Adressverwaltung, Kalender, Todo-Liste, etc.), die in einer "Rahmenanwendung" namens Kontact dargestellt werden. Kontact startet die anderen Anwendungen in einer MS Outlook ähnlichen Oberfläche.

Gut gefällt mir besonders die inzwischen weit fortgeschrittene Integration von GnuPG (Programm zum Verschlüsseln) in KMail. Mit einem Klick wird eine EMail signiert, mit einem weiteren auch verschlüsselt. Das Entschlüsseln und Überprüfen der Signatur funktioniert sogar automatisch, sofern man das Passwort weiss.

Fazit

Ich bin erstaunt, wie gut sich Linux inzwischen für den Einsatz auf dem Desktop eignet. Meine Hardware funtioniert problemlos und ich vermisse bisher keine Software. Ich kann also nur jedem, der es probieren möchte, nur Mut machen. Probiert es aus - im Notfall kann man es ja auch wieder von der Platte putzen, ich hoffe aber, das wird nicht nötig sein.

LinkedIn logo mail logo