Newsgroup: it.comp.os.linux.sys
Titolo: [4expert only] Initrd per debian e Serial ATA

Mi sto cimentando da un pò di tempo con una annosa questione di cui non
sono ancora riuscito a venire a capo, anzi, ne sono venuto a capo, ma
con il classico colpo di coda da sistemista.
Ora vi espondo la questione...
Ho un controller SerialATA, che funziona solo con un driver propietario
non incluso nel tree ufficiale del kernel.
Attualmente uso il kernel 2.4.18-bf24 di debian, con una ramdisk
all'avvio per far caricare il modulo per il mio controller. Ovviamente
la partizione di "/" è sul disco SATA.
Quindi no ramdrive, no boot (e no martini no party!)
Mi convinco che è ora di passare al 2.4.23 e quindi compilo il kernel,
ricompilo il modulo per il kernel nuovo, metto tutto su
/lib/modules/2.4.23 e lancio il comando
mkinitrd -o /boot/ficatadiramdrive.img /lib/modules/
2.4.23.
Controllo e ficata delle ficate esiste la mia immagine, quindi controllo
il lilo, e per scaramanzia controllo di avere tutti i moduli compilati
nel kernel ( use initrd e cramfs ).
Quindi resetto fiducioso e ovviamente zack!
...
sh-2021: reiserfs_read_super
you can not find reiserfs on ramdisk(1,0)
kernel panic: VFS: Unable to mount root fs
...
Avete Idee a riguardo?
Ad onor del vero dico che sono andato leggermente oltre questo step di
enpasse, e ricreando l'initrd con l'opzione MODULES=All cambia l'errore
ma il risultato non cambia, nemmeno se faccio generare l'immagine non
con MKCRAMFS ma con MKROMFS. E' dalla vigili che ci sbatto il naso, e la
cosa è molto frustrante...
Attualmente ho risolto cercando la patch ufficiale per il SATA e
compilandola staticamente nel kernel, tutto funziona benissimo, ma mi
rimane questo dubbio di come si generi in modo corretto una immagine per
initrd.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Avete Idee a riguardo?
Fermo restando che personalmente, non uso mkinitrd direttamente, ma
tramite make-kpkg, il "modo" per fare debugging c'e`: usare l'opzione -k
in mkinitrd, per vedere quali moduli ha messo nell'immagine (-k non
cancella la directory).
Il resto e` in /etc/mkinitrd con particolare attenzione a modules.
Infine, esiste la possibilita` che reiserfs voglia compilato statico e
non come modulo, ma non usandolo, la butto li` cosi`, solo perche` non
sarebbe la prima volta che, usando un initrd.img, tocca compilare
qualcosa di statico.
HTH.
Auguri.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
It's the good girls who keep diaries; the bad girls never have the time.

 cancella la directory).
aggiungo che l'initrd è una stupidissima immagine di ramdrive, che in
debian non è nemmeno compressa (mentre in rh e famiglia si).
il che implica:
yggdrasyl:/# mkdir zaza
yggdrasyl:/# mount -t cramfs -o loop /boot/initrd.img-2.4.21-3-k7 zaza
yggdrasyl:/# cd zaza/
yggdrasyl:/zaza# ls
bin  devfs  lib      linuxrc.conf  mnt   sbin    scripts  usr
dev  etc    linuxrc  loadmodules   proc  script  tmp      var
yggdrasyl:/zaza#
qui si trova un sistema minimal-farlocco, e in particolare farlocco è
l'init che il kernel quivi lancia, che ha un aspetto tipo:
#!/bin/sh
#
# $Id: init,v 1.26 2003/07/05 22:08:13 herbert Exp $
mount_device() {
        unset flags fstype
        set -f
        set +f $cmdline
        for i; do
                case "$i" in
[...]
il quale fa una serie di cose atte alla preparazione del kernel, e in
particolare:
...
call() {
        . "$@"
}
...
call /loadmodules
...
che, se andiamo a vedere, altro non fa che:
yggdrasyl:/zaza# cat loadmodules
modprobe -k  vesafb > /dev/null 2>&1
modprobe -k  unix 2> /dev/null
modprobe -k  ide-mod
modprobe -k  pdc202xx_new > /dev/null 2>&1
modprobe -k  adma100 > /dev/null 2>&1
modprobe -k  aec62xx > /dev/null 2>&1
[...]
altamente progressivo, no?
Insomma, nel totale, l'initrd lo giri come un calzino...
Buon divertimento, buona fine e buon inizio...
-- 
the Skull says:
+----------------------------------------------------------------------+
Actually without signature.
Any idea?!?

 
...allora dato l'argomento mi sovviene una domandina:
ma che vantaggio c'e` ad usare initrd, piuttosto che 'ritagliarsi' un 
kernel con tutta la roba statica che serve?
Lo chiedo perche' con un suse8.0 k2.4.18 originale, non mi 'vede' il 
drive iomega zip ata, collegato come slave al secondario (quindi hdd?), 
e con un altro kernel compilato statico con ide-floppy=yes si....
ciao-auguri di buona Pasqua! RRB Sohe.

 kernel con tutta la roba statica che serve?
In realtà ora come ora nessuno, se il kernel te lo compili: butti tutto
lì dentro e fine. Ma non è una strategia applicabile per i kernel
standardizzati come quelli forniti dalle distro, per ovvie ragioni...
Inoltre fino a un po' di tempo fa c'era il problema che non potevi
mappare da lilo un kernel che fosse > 640K, per via dei soliti assurdi
problemi di memoria di x86, quindi a volte un kernel monolitico non lo
potevi creare neanche volendo...
Bye...


 
..questo non mi e' mai capitato..
Rimane lo strano fatto del NON-riconoscimento del drive zip ata-ide... 
bo? Dovrebbe caricare il modulo ide-floppy e infatti lo fa poi pero' 
hdd? nix.
Cmq,ok grazie,salutoni,buona fine buon inizio.

 Auguri.


 [...]
Mhhh si anche questo l'ho visto montando l'immagine e andando a vedere
quello che conteneva, ma la mia abilità di sistemista si è fermata a
quel punto, e mi ha suggerito di andare a cercare una patch per il SATA
da mettere nel kernel tree che uso!
:-)
xò c'è una boia di vocina che mi dice " non ci sei riuscito .. tricca
tricca li"


 Il problema penso che poi si risolva tutto quì! :-)
Un hw un po` piu` standardizzato? Specifiche rispettate? Un architettura
un po` piu` decente? I fattori sono tanti, per scrivere del _buon_
software.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Ethernet works in practice, but not in theory.

 E la man page che ci sta a fare, allora?
]zac[
E' che man 'Maurizio & C.' è più 'potente', viene avviato un 'demone'(!) 
lato 'server'(!) che non impegna le risorse del client.

 lato 'server'(!) che non impegna le risorse del client.
Solo a Natale. :)
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Is it PC compatible?

 software.
Si si, primo tra tutti il fatto che i driver nella maggior parte dei
casi non sono scritti dalla stessa casa, ma da qualcuno che lo fà per
passione/necessità, ma il mio non voleva essere una lamentela.
Semplicemente, se il problema è devuto a me, mi sbatto e cerco di farlo
funzionare, se invece il problema è dovuto a debian, al chi sviluppa il
driver, o a Linus Torvalds, allora io ho la coscienza tranquilla :-)
e posso dinuovo andare in giro a bullarmi di essere il "CAPO di LINUX"
:-)))))
Altrimenti giù dinuovo di IT.SUPER-MEGA_POWER.NIUBBI.OS.LINUX
ps: rigurdado l'annosa questione della man-page, sono un assiduo
frequentatore del comando man, ma tuttavia continua a chiedermi perchè
non ci mettano un esempio ogni tanto!
    l'elenco di tutte le 60/70 opzioni del TAR, ad esempio, di per se
non lo trovo di molto aiuto :-)


 non lo trovo di molto aiuto :-)
C'e` la funzione "cerca" (tasto /) apposta.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
There is no substitute for good manners, except, perhaps, fast reflexes.