Pagina 1 di 1

Ricompilazione kernel e /etc/rc.d/rc.modules

Inviato: sab 11 ago 2007, 14:08
da Bart
Ciao,
ho appena ricompilato l'ultimo kernel (2.6.22.2). Tutto ok, l'unico problema è che al boot ho dei fatal relativi a dei moduli che non trova (ho eliminato il loro supporto). Ora volevo chiedervi se per eliminare questi "fatal" l'unica soluzione fosse rieditare /etc/rc.d/rc.modules o se esistevano altre vie. Mi sembra di ricordare di aver letto altri suggerimenti in passato ma non li trovo più nel forum. Consigli?

Inviato: sab 11 ago 2007, 14:50
da j0kers
Hai fatto "make modules_install"?? inoltre prova a commentare le righe dove ti da l'errore del caricamento nel file rc.modules probabilemente non hai attivato il supporto come modulo nel nuovo kernel oppure il modulo si chiama in un altro modo...comunque prova a caricarli manualmente e vedi un pò :D

Inviato: sab 11 ago 2007, 14:53
da Bart
j0kers ha scritto:Hai fatto "make modules_install"?? inoltre prova a commentare le righe dove ti da l'errore del caricamento nel file rc.modules probabilemente non hai attivato il supporto come modulo nel nuovo kernel oppure il modulo si chiama in un altro modo...comunque prova a caricarli manualmente e vedi un pò :D
Si certo che l'ho fatto. :) Non è un problema, le righe le ho già decommentate e i fatal non li ho più. Il mio post è solo per chiedere se esistono vie alternative, come ricreare quel file in questione. ;) Grazie comunque per l'aiuto.

Inviato: sab 11 ago 2007, 18:14
da j0kers
Behh ricrearlo semplicemente con il caricamento dei moduli giusti oppure correggendo il nome dei moduli per questo ti conviene eseguire la procedura prima manualmente per vedere effettivamente se hai degli errori, per poi inserire il comando nel rc.modules :)

Re: Ricompilazione kernel e /etc/rc.d/rc.modules

Inviato: dom 12 ago 2007, 9:23
da Paoletta
Bart ha scritto:Ciao,
ho appena ricompilato l'ultimo kernel (2.6.22.2). Tutto ok, l'unico problema è che al boot ho dei fatal relativi a dei moduli che non trova (ho eliminato il loro supporto). Ora volevo chiedervi se per eliminare questi "fatal" l'unica soluzione fosse rieditare /etc/rc.d/rc.modules o se esistevano altre vie. Mi sembra di ricordare di aver letto altri suggerimenti in passato ma non li trovo più nel forum. Consigli?
quella più pulita è creare ad hoc il file /etc/rc.d/rc.modules-2.6.22.2 ; io ho un rc.modules per ogni kernel che ho

Inviato: dom 12 ago 2007, 9:49
da slucky
Giusto, infatti dopo aver compilato ed installato il nuovo kernel,se il file modules per il nuovo kernel non è presente:

cp /etc/rc.d/rc.modules-<vecchiokernel> /etc/rc.d/rc.modules-<nuovokernel>

chmod 755 /etc/rc.d/rc.modules-<nuovokernel>

E sei a posto.

Ciao a tutti

:D

Inviato: dom 12 ago 2007, 12:03
da Paoletta
vedere a questo proposito il file /etc/rc.d/rc.S

Codice: Seleziona tutto

if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules.local:"
  /bin/sh /etc/rc.d/rc.modules.local
elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules-$(uname -r):"
  . /etc/rc.d/rc.modules-$(uname -r)
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]
  echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):"
  . /etc/rc.d/rc.modules
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules:"
  . /etc/rc.d/rc.modules
fi

Inviato: dom 12 ago 2007, 12:51
da Bart
Quindi affinchè venga caricato il nuovo /etc/rc.d/rc.modules mi basta crearne uno nuovo chiamato rc.modules-2.6.22.2 giusto? Poi voi lo editate tutto a mano o esiste qualcosa per generarlo in automatico? Grazie.

Inviato: dom 12 ago 2007, 17:35
da targzeta
Bart ha scritto:Quindi affinchè venga caricato il nuovo /etc/rc.d/rc.modules mi basta crearne uno nuovo chiamato rc.modules-2.6.22.2 giusto? ....
Bhé, non solo, da quello che ha postato Paoletta potrebbe chiamarsi anche rc.modules o rc.modules.local.

Personalmente non uso questo file, tutti i miei moduli si caricano solo se ce ne è bisogno (vedi man modprobe).
comunque, non credo sia necessario crearne uno ogni volta che si compila un kernel, alla fine i moduli sono più o meno sempre gli stessi che devono essere caricati giusto? Magari se cambia nome, ma succede raramente.
Insomma, il mio consiglio è, o di usare modprobe come faccio io, oppure di lasciare il vecchio rc.modules magari rinominandolo in rc.modules.local in modo da non dovergli cambiare ogni volta nome (intendo `uname -r`).

Infine, se proprio volete crearvi il vostro rc.modules, allora fatelo assolutamente in maniera automatica (con uno shell script ad esempio) e poi usate la funzionalità "make install" dei sorgenti del kernel che vi posto qui (da make help nei sorgenti):

Codice: Seleziona tutto

  install       - Install kernel using
                  (your) ~/bin/installkernel or
                  (distribution) /sbin/installkernel or
                  install to $(INSTALL_PATH) and run lilo
Questo vuol dire che potete tranquillamente usare un vostro script per installare il kernel, io ad esempio, maniaco come sono dei pacchetti Slackware, tramite questo script creo e installo i pacchetti per:
- l'immagine
- i moduli
- gli headers
di ogni kernel che compilo, poi lancio lilo e mi setto un flag che mi rimuoverà i vecchi (gli attuali) moduli al prossimo riavvio (per la sessione corrente servono ancora).

Spina

Inviato: dom 12 ago 2007, 17:51
da slucky
Spina questa procedura è interessante :-k puoi spiegare meglio passo passo come fai ad installare il kernel tramite questo script e magari ci dai il contenuto dello script, che quasi quasi la prossima volta che installo un kernel nuovo sperimento questa soluzione anch'io,dopo l'installazione classica e kernelpkg.........abbiamo un'altro sistema di installazione :lol: ..........è proprio vero che con il pinguino il medesimo risultato si può raggiungere in modi diversi ;)


Ciao a tutti!!! :D

Inviato: lun 13 ago 2007, 1:51
da targzeta
slucky ha scritto:Spina questa procedura è interessante :-k puoi spiegare meglio passo passo come fai ad installare il kernel tramite questo script e magari ci dai il contenuto dello script, che quasi quasi la prossima volta che installo un kernel nuovo sperimento questa soluzione anch'io,dopo l'installazione classica e kernelpkg.........abbiamo un'altro sistema di installazione :lol: ..........è proprio vero che con il pinguino il medesimo risultato si può raggiungere in modi diversi ;)


Ciao a tutti!!! :D
Bhé, la teoria è semplice, scrivi un qualsiasi script, lo chiami installkernel e lo posizioni nella directory /sbin. Quindi lanci, make && make install e, prima si compila il kernel e i moduli (tramite make) e poi viene installato il kernel tramite il proprio script (/sbin/installkernel).
Avevo suggerito a submax di rinominare kernelpkg in installkernel in modo da mascherare kernelpkg.
comunque, quello che faccio io è proprio questo, ho semplicemente creato uno SlackBuild e lo chiamato /sbin/installkernel. C'è da dire però che consta di un pò di file:
- /sbin/installkernel
- /usr/etc/installkernel/package-image
- /usr/etc/installkernel/package-modules
- /usr/etc/installkernel/package-header
Le ultime tre sono semplicemente directory che contengono gli slack-desc e doinst.sh di ogni pacchetto.
Per il resto è un semplice SlackBuild. Se ti interessa vederlo posso crearti un pacchetto Slackware e poi ti dò il link. comunque ti consiglio di leggere lo SlackBuild prima di provarlo, io l'ho fatto per mio uso e non per distribuirlo :).

Spina

Inviato: lun 13 ago 2007, 10:47
da submax82
@spina

le possibilità di creare uno script installkernel che poi viene richiamato automaticamente dai sorgenti del kernel è interessante ma a mio parere è bella ok ma richiede sempre il classico "make && make install" come una compilazione classica ... cioè non è un tool completo che fà tutto, non sò lo trovo poco intuitivo e pratico... poi non capisco perchè usi sto metodo... c'è kernelpkg che fà tutto (alla fine contiene anche lui gli slackbuild) e produce i pacchetti è testato, funziona bene, aggiorna lilo, ecc... hai scritto una cosa che fà semplicemente la stessa cosa di kernelpkg ma in modo leggermente diverso... booo sei libero di fare come vuoi ma diciamo che non è proprio un metodo alternativo, cambia solo il metodo di "aggancio" hai sorgenti del kernel da compilare ma in pratica il "motore" è lo stesso.
Il mio tool vuole essere un comando a parte che stà "in piedi" da solo al 100%, per questo non ho intenzione di combiarli nome perchè non voglio usare il metodo installkernel.

per rc.modules anche se raramente i nomi dei moduli cambiano ecc.... a mio parere la soluzione migliore, più versatile e più elegante è quella di avere tanti rc.modules-$versione come ha fatto Pat.

Inviato: lun 13 ago 2007, 11:24
da targzeta
@ submax82

Che dirti...la vita è bella perchè è varia :D

Spina

Inviato: lun 13 ago 2007, 22:14
da submax82
spina ha scritto:@ submax82

Che dirti...la vita è bella perchè è varia :D

Spina
ok ;) :D ma date fiducia a kernelpkg :cry: :oops: