[gelöst] Initrd hat Probleme mit einer CF-Karte

schrank21

New member
So, ich habe Probleme... Ich will eigentlich mit einer initrd schon eine CF-Karte mounten (in meinem X24).
Dazu habe ich in die initrd die Module yenta_socket, pcmcia, pcmcia_core, ide-cs und rsrc_nonstatic verfrachtet, die auch ohne Probleme geladen werden. Das sind auch eigentlich alle benötigten Module (ide-disk ist einkompiliert)?!
Beim Betrieb sind das auch die einzigen, die betroffen sind, wenn mit der CF-Karte was passiert.

Ich habe zwei Karten, eine 1GB von Extrememory und eine 4GB von Transcend (133x). Er erkennt beide Karten, wenn ich sie im normalen System (ohne initrd) bin, aber da macht er das auch später (wenn er schon oben ist).

Wenn ich jetzt die 1GB-Karte mit der initrd laden will, geht das auch ohne Probleme.
Aber mit der 4GB-Karte drin kommt er immer bis zum
pcmcia: registering new device pcmcia1.0
und macht dann nicht mehr weiter. Eigentlich sollte jetzt die Meldung kommen, dass er sie an ide-cs und ide-disk bindet und ganz fröhlich ist, aber nichts. Das war's dann mit den Meldungen zur Karte (danach kommt ne Kernel Panic :D). Das ganze passiert nachdem er schon den IDE-Treiber geladen hat.

Ich habe schon versucht, die Module in unterschiedlicher Reihenfolge zu laden. Auch mehrmaliges Reinschieben und Auswerfen der Karte brachte nichts, er meldet immer nur, dass da ne Karte ist, macht aber nichts...
Auch ein monolithischer Kernel macht genau das gleiche (da hatte ich sogar noch USB mit drin)...


Weiß jemand, woran das liegen kann? Wieso genau diese Karte und wieso nur in der initrd?
Ich will die Karte nicht umsonst gekauft haben.
 

schrank21

New member
Themenstarter
Auch wenn ich bezweifel, dass jemand das Problem ebenfalls hat oder auch nu auf die Idee kommt, seinen Rechner so zu betreiben, die "Lösung":
Achtung, sie ist enorm dreckig.

Das Problem liegt darin, dass die Funktions-ID gematcht werden muss. Unter bestimmten Umständen (ein Flag nicht gesetzt?!) geht das nur im Userspace und wird später gemacht... Sehr schön, wenn man noch in ner initrd feststeckt.
Was macht also der verzweifelte Langweiler? Er schreibt einfach ein "return 1;" in den Source (vor der kritischen Abfrage) und fertig ist die Sache.
Die Karte wird eh nie getauscht werden, und ich weiß, dass sie funktioniert und das Matchen unnötig ist... Und wenn sie nicht drin ist, wird eh ein anderer Kernel mit anderem (ungepatchtem) Modul geladen.

Na, bin ich toll? :D
 
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Oben