title image


Smiley Vermutlich musst Du dann den Kernel neu kompilieren!
Mit "modprobe" startet man sogenannte "Kernel-Module". Das geht aber (von wenigen Ausnahmen abgesehen, die ich kaum kenne - Stichwort: Starten über eine RAM-Disk) nur dann, wenn die Unterstützung für z.B. das verwendete Boot-Medium bereits "fest" (=nicht modul-artig) im Kernel eingebaut ist. Und da liegt wohl das Problem.



Dein Linux soll das Modul für USB-Laufwerke ("usb-storage") von dem USB-Laufwerk (=der USB-Stick) laden. Um das zu können, müsste es aber genau das bereits beherrschen, was es eben (noch) nicht kann: Etwas vom USB-Stick laden. Das ist wie der nur in der Sage erfolgreiche Versuch von Münchhausen, sich durch das Zerren an den eigenen Haaren aus einem Sumpf herauszuziehen - es geht so nicht.



Du müsstest einen Kernel selber kompilieren und dabei sämtliche für das USB-System notwenige Unterstützung fest in den Kernel einbauen, also *nicht* als Modul. Auch alles Andere, was grundlegend ist (z.B. Unterstützung für eine Konsole), muss fest in diesem Kernel drin sein und nicht als Modul.



Falls Du schon mal einen Kernel selber kompiliert hast, müsstest Du jetzt in etwa wissen, wie Du Deinen USB-Wunschkernel kompilierst.



Wenn Du Dich damit nicht auskennst, dann versuch' ich das hier mal, relativ kurz zu beschreiben. Du findest zunächst mal die für's Kernel-Kompilieren nötigen Dateien häufig in /usr/src/{Kernel-Unterverzeichnis}, wobei statt {Kernel-Unterverzeichnis} ein meist auf die Kernel-Version hindeutender Name (z.B. linux-2.4.27) verwendet wird. In dieses Unterverzeichnis gehst Du 'rein und versuchst dort, mit "make menuconfig" eine Kernel-Konfiguration zu erstellen. Mit menuconfig hast Du ein relativ einfaches, aber mit ausreichendem Komfort versehenes Programm dazu an der Hand, das insbesondere das Abspeichern, Laden und Ändern der Kernel-Konfiguration erlaubt. So kannst Du relativ leicht immer wieder Dinge überprüfen und ggf. Änderungen vornehmen, bis es klappt.



Falls Du Dich noch kaum mit Kernel-Modulen beschäftigt hast, würde ich Dir empfehlen, zunächst mal gar keine Module zu verwenden und stattdessen eben alles fest in den Kernel einzubauen. Das nennt sich dann "monolithischer Kernel". Irgendwo relativ weit oben in den Menüs kannst Du dazu grundsätzlich die Unterstützung für Module ausschalten, so dass der Kernel automatisch alles fest eingebaut kriegt, was Du auswählst.



Danach musst Du Dich leider durch große Teile der Menüs durchwühlen, die Dich mit ihrer Detailfülle erschlagen möchten. Du hast zwar mit menuconfig eine Hilfefunktion zur Seite, aber manchmal muss man doch ein Weilchen überlegen, bis man versteht, was man da eigentlich ein- oder ausschalten soll. In vielen Fällen steht sogar noch drin, was man wählen soll, wenn man keine Ahnung hat, wovon die Hilfe-Funktion da erzählt...



Bist Du dann durch, dann speichere zunächst Deine Konfiguration ab ("Save Configuration to an Alternate File"). Wähle zum Speichern einen aussagekräftigen Namen (z.B. "usbstick"). Danach wähle ganz unten im Hauptmenü mal "Exit". Die Frage "Do you wish to save your new kernel configuration?" beantwortest Du auch mit "Yes". Das ist nicht dasselbe Speichern wie vorher, sondern eine Art von Speichern, die danach erst das Kompilieren des Kernels möglich macht.



Nun kannst Du die Befehlskette "make dep && make clean && make bzImage" eintippen und abwarten, bis der neue Kernel fertig kompiliert ist. Um auch Module nutzen zu können, müsstest Du danach noch "make modules && make modules_install" eingeben, aber ich weiß nicht, wie Du die derart kopmilierten Module dann auf Deinen USB-Stick befördern würdest. (Ich weiß halt auch nicht alles... ;-) )



Ist der ganze Kram abgearbeitet (was auch auf neueren Rechnern durchaus ein halbes Stündchen dauern kann), dann sollte am Schluss in /usr/src/{Kernel-Unterverzeichnis}/arch/i386/boot der Kernel in Form der Datei "bzimage" vorliegen. Den musst Du nur noch an den richtigen Platz bringen und ggf. umbenennen. Das dürfte in etwa so aussehen: "cp -vupi /usr/src/{Kernel-Unterverzeichnis}/arch/i386/boot/bzImage /{Position auf dem USB-Stick}/vmlinux". Statt {Position auf dem USB-Stick} musst Du das Verzeichnis auf dem Stick angeben, wo der Kernel hin soll. Wahrscheinlich ist da auch schon ein Kernel (derjenige, der die panic kriegte), so dass cp nachfragt, ob Du diesen Kernel wirklich überschreiben willst. Das darfst Du dann mit "y" (yes) beantworten.



Und dann kannst Du endlich ausprobieren, ob der ganze Kram sich gelohnt hat!



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: