Login
Login-Name Passwort


 
Newsletter
Werbung

Mi, 24. August 2005, 00:00

SUSE 9.3 per FTP wireless installieren

Einführung

Das Mini-Boot-ISO, das man sich zu Beginn einer FTP-Installation vom SUSE-Server herunterladen muß, unterstützt so manche Netzwerk-Hardware nicht; besonders im Wireless-Bereich kommt man nicht weit. Da man aber nach dem Booten von dieser CD mit Alt+F9 auf eine primitive Konsole gelangt, ist es im Prinzip möglich, dem Installationssystem weitere Treiber und andere Zusätze unterzuschieben. Auf diese Weise gelang mir eine FTP-Installation über einen WLAN-DSL-Router.

Interessant ist diese Lösung besonders für die Einzelplatzinstallation, um sich die Ressourcenverschwendung beim Download eines ganzen DVD-Images zu ersparen. Weniger interessant ist diese Lösung wohl für Linux-Anfänger, außer vielleicht für besonders mutige. Wenngleich ich hier nur meine spezifische Vorgehensweise im Detail beschreibe, kann diese Anleitung auch als Ausgangspunkt dienen für andere - exotischere - Installationswege, z.B. über Satellit.

Vorbereitung

  • Entscheide dich für einen FTP-Server. Anstandshalber bitte nicht ftp.suse.com, sondern einen der deutschen oder Mirrors in deiner Nähe.
  • Besorge dir das boot.iso im Unterverzeichnis boot und brenne es auf CD.
  • Besorge dir die Dateien, die du zur Inbetriebnahme der betreffenden Hardware brauchst, z.B. Kernelmodule.
    1. Welche Dateien brauchst du? Manchmal findet sich im Windows-Gerätemanager ein Hinweis, welcher Chipsatz sich hinter einer PCI-Karte »made in Singapore« verbirgt. Hilfreicher ist meist ein Linux von einer Live-CD oder Knoppix oder ähnliches. Wenn man Glück hat (so wie ich), bekommt man dank der hervorragenden Hardwareerkennung von Knoppix mit /sbin/lsmod die passenden Kernelmodule samt ihren Abhängigkeiten vorgeführt. /sbin/lspci ist auch einen Versuch wert.
    2. Woher nehmen? Wiederum verweise ich auf die Live-CD, Knoppix & Co. - oder auf einen Bekannten mit schon installiertem Linux. Dort kann man sich die Treiber aus den Systemverzeichnissen /lib/modules/2.6.11.4-20a-default/kernel/drivers/net/wireless/irgendsowasähnliches holen. Wenn alle Stricke reißen, lädt man sich einfach das Kernelpaket kernel-default-2.6.11.4-20a.i586.rpm vom FTP-Server (Unterverzeichnis suse/i586) und holt sich die Dateien heraus: rpm2cpio kernel-default-2.6.11.4-20a.i586.rpm | cpio -imVd ./lib/modules/2.6.11.4-20a-default/kernel/drivers/net/wireless/prism54/prism54.ko (Eine Zeile! Hier am Beispiel des von mir benötigten Treibers prism54.ko.) Den genauen Pfad erfährst du mit rpm -qlp kernel-default-2.6.11.4-20a.i586.rpm | less, und du mußt ihm einen Punkt voranstellen.
    3. Auf Abhängigkeiten achten! Manche Kernelmodule benötigen außerdem noch externe Firmware-Dateien, was man sicherlich erst dann erfährt, wenn der erste Verbindungsaufbau fehlschlägt. Das Installationssystem liefert dann im Syslog auf Alt+F4 eine Meldung »failed to load firmware« oder ähnlich.

Wie geht's?

Man braucht irgendein Dateisystem, um die zusätzlichen Dateien zu übergeben. Der einfachste Weg ist sicherlich eine Diskette, aber es geht auch ein USB-Stick oder die Windows-Partition auf deiner Festplatte. Letztere tut es auch (sogar!) dann, wenn du sie im Laufe der Installation zu verkleinern beabsichtigst. Schreibe also die Kernelmodule und andere Dateien dorthin. In meinem Fall waren es drei Dateien, die ich in Windows XP in C:\ ablegte:

  • prism54.ko - der Gerätetreiber
  • isl3890 - eine Firmware, die der Gerätetreiber benötigt
  • firmware_class.ko - ein Hilfs-Modul zum Laden der Firmware über ein Hotplug-Event

Dann der große Moment: Booten von der gebrannten CD in das Installationsprogramm linuxrc.

Zuerst ging ich in die Abteilung Kernelmodule und und lud den NTFS-Treiber, um auf die Windows-Partition zugreifen zu können. Für einen USB-Stick wären es stattdessen die Module für USB-Storage und SCSI-Festplatte, für eine Diskette... das wißt ihr selbst. Mit Alt+F9 gelangt man dann in die besagte Konsole. Dort führe ich zunächst drei Befehle aus:

  1. mount -t ntfs /dev/hda1 /mnt
  2. insmod /mnt/firmware_class.ko
  3. insmod /mnt/prism54.ko

Wenn ich nun mit Alt+F1 in linuxrc zurückkehre und in Richtung Netzwerkinstallation gehe, sehe ich ein neues Interface eth1 zusätzlich zur schon vorhandenen »normalen« Netzwerkkarte eth0. Verwendbar ist es aber noch nicht, weil erst noch die Firmware geladen werden muß. Ob das auch für dich zutrifft, erfährst du am ehesten, wenn du die FTP-Installation beginnst, wenn möglich, besser ohne DHCP. (Mit DHCP brachte ich nichts zum Laufen, obwohl mein Router einen vorzüglichen DHCP-Server abgibt. Ich vermute ein Problem mit dem Timeout wegen des Firmware-Uploads.) Sobald man dich nach dem Verzeichnis auf dem FTP-Server fragt, bist du schon »drin«.

Achtung: Falls der Treiber nicht mit seinen Voreinstellungen funktioniert, helfen vielleicht Modulparameter wie init_mode=2 (für managed statt ad-hoc), init_channel=1 oder ifname=eth1. Um diese zu erfahren, kann man in einem Live-Linux/Knoppix /sbin/modinfo modulname probieren. Falls auch das nichts fruchtet, müßte man Tools wie iwconfig in das Installationssystem schaffen, aber dann wird es extrem kompliziert. Siehe dazu Anmerkung 1.

Wenn der Verbindungsaufbau scheitert, sieh bitte mit Alt+F4 nach, woran es lag. Bei mir stand dort zu lesen:

prism54: request_firmware() failed for 'isl3890'
eth1: could not upload firmware ('isl3890')
eth1: islpci_reset failure

Nur wenn du dieses Pech hast, ist der folgende Abschnitt für dich von Interesse.

Firmware laden

Bis ich das gelöst hatte, habe ich etliche graue Haare bekommen.

Wie schon angedeutet, merkt der Treiber beim ersten Netzwerkzugriff: »Hoppla, mir fehlt noch die Firmware!« und löst rasch ein Hotplug-Event aus, um diese in das SYSFS zu holen. Anscheinend kann das mitgelieferte Programm /sbin/hotplug so ein Event nicht verarbeiten. Da es sich seltsamerweise nicht, wie sonst üblich, um ein Shellskript handelt, sondern um ein Binary, kann man es weder untersuchen noch manipulieren. Der Versuch, den Hotplug-Mechanismus durch einen Eintrag in /proc/sys/kernel/hotplug auf ein eigenes Skript umzulenken, scheiterte am Benutzerrecht (vgl. Anmerkung 1).

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung