[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

moduli esterni e initrd



Sono ormai 4 giorni che sto' tentando di ricompilare il kernel sul mio sistema per poter completare l'installazione di una woody, il mio hardware e' piuttosto insolito per la distro in question a quanto sembra:

mobo ASUS A7N8X (chipset Nvidia nforce)
ATA raid 0 su pci ITE chipset IT8212F

Per quanto riguarda la scheda raid sul sito del produttore sono disponibili i sorgenti del modulo che ho provveduto a compilarmi su un altra linuxbox debian, ho poi provveduto a mettere il modulo in questione (iteraid.o) su di un floppy msdos sotto la dir /boot e all'atto dell'installazione di debian (bf2.4) ne ho effettuato il caricamento: tutto bene i dischi vengono visti come unica unita' sda con le varie partizioni. Il problema mi si e' posto dopo aver completato l'installazione minima perche' il kernel 2.4.18 nativamente,del mio sistema, non supporta l'AGP gart, la scheda video, l'audio (integrato su nforce), e quel che e' peggio entrambe le schede di rete di cui e' dotata la mobo (una nativa nforce e l'altra 3com 3C920B-EMB). Dopo aver letto un po' di documentazione mi fornisco del necessario per aggiungere moduli e patch necessarie al kernel:
kernel patch per modulo 3com 3c59x
modulo nvnet
modulo nvaudio
modulo iteraid ( che gia' avevo)

Dopo non poche peripezie riesco grazie all'aiuto di un mio amico che conosce piuttosto bene linux a debianizzare il modulo per il raid (altrimenti non mi sarebbe stato possibile ricompilare il kernel alla "debian way" ) e vi assicuro che e' stato davvero molto scoraggiante questa esperienza: la documentazione sui file control e rules di debian non e' poi cosi' approfondita, per fortuna ci siamo appoggiati a dei moduli di nvidia gia' "debianizzati" per capire come funzionavano altrimenti.... Insomma alla fine mi ritrovo con due pacchetti debian: il "nuovo" kernel patchato 2.4.18 ed il modulo raid... ora perche il tutto funzioni e' necessario utilizzare un ramdisk affinche' il kernel possa caricarsi il modulo raid per poi montare la root vera che si trova su di una partizione del raid. Qui' mi sono nuovamente bloccato!!! Ho creato il kernel passando a make-kpkg l'opzione "--initrd" dopo aver opportunamente configurato i file sotto /etc/mkinitrd/ (aggiungendo iteraid a "modules" ed uno script che mi sono fatto per copiarmi il modulo iteraid nel ramdisk a partire da "/lib/modules/miokernel/iteraid/" e che ho messo sotto /etc/mkinitrd/scripts ). Ora quello che ottengo installando il kernel e' un ramdisk che contiene un file loadmodules in cui compaiono due comandi:
modprobe -k iteraid  (questo e' giusto secondo le mie direttive)
modprobe -k IT8212 (?? questo viene aggiunto dallo script mkinitrd perche' immagino avendo l'opzione ROOT=probe capisce che ha bisogno del modulo per il raid....) nella sottodirectory lib/modules/2.4.18-20020224/ del ramdisk ho anche (grazie al mio script) la dir iteraid che contiene iteraid.o.

Bene!! mi dico: finalmente ci sono riuscito!! Pazienza per l'altra voce che tenta di caricare il modulo IT8212....ci pensero' dopo... Controllo il lilo.conf, l'opzione initrd c'e'....vmlinuz punta al giusto kernel....riavvio.....KERNEL PANIC!!!!! Il ramdisk non riesce a trovare il modulo iteraid ne' l'altro IT8212!!! eppure sul suo modules.dep iteraid e' elencato con la giusta path assoluta!! Non so' piu' dove sbattere la testa....se lancio un lsmod dalla instalazzione base che attualmente e' l'unica funzionante fra i moduli caricati in memoria vedo anche iteraid quindi mi chiedo dove mkinitrd veda quel IT8212 e sopratutto mi chiedo perche' non riesce a vedere il modulo che mi sono compilato io che e' "iteraid" :-( Scusate per la lunghezza ma volevo essere il piu' chiaro possibile nell'illustrare il problema...

Andrea






Reply to: