Pagina 1 di 1

[RISOLTO] Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 12:31
da joe
Salve a tutti.
Ho combinato un grosso pasticcio.
Sulla slack 11.0 avevo ricompilato il kernel 2.6.17.13-smp e avevo installato i moduli in fase di compilazione del kernel, quindi senza utilizzare i pacchetti precompilati kernel-modules-smp-2.6......tgz. Fin qui tutto bene da un annetto a questa parte circa.

Ora, stavo smanettando per riuscire ad installare ed attivare kqemu con scarsi risultati peraltro...
Accidentalmente ho dato un:

Codice: Seleziona tutto

# rm -r /lib/modules/2.6.17.13-smp
E sono spariti tutti i moduli creati in fase di ircompilazione e, se non ricordo male installati con "make modules install" o qualcosa del genere.
Ora, ho fatto un tentativo installando il .tgz dei moduli per il 2.6.17.13-smp, ma nisba....i moduli non riescono ad essere caricati al boot, per cui non riesco ne a connettermi in rete visto che i moduli cdc-acm ne usbserial rispondono...

L'errore che ricevo al modprobe e che vedo dal dmesg è qualcosa del tipo:

Codice: Seleziona tutto

FATAL inserting module in /lib ecc ecc: wrong module format o qualcosa di simile....
Tra parentesi:
guarda caso è lo stesso errore che mi dava kqemu quando cercavo di caricarlo, anche se in tale occasione tutti gli altri moduli venivano caricati regolarmente.



Cosa posso fare adesso per sitabilire la sistuazione?
Mi viene in mente di ricompilare il kernel e ricreare i moduli e reinstallarli...che dite?
C'è una via più semplice per mettere apposto solo i moduli senza ricompilare il kernel?

Non posso installare il kernel di default, perchè bontà sua fa a pugni con la ventolina della mia cpu che non ne vuol sapere di zittirsi (motivo per cui avevo ricompilato. Sul sistema da quale scrivo, slack12.0, è bastato caricare il driver acpi-cpufreq e installare cpufreqd, senza ricompilazioni del kernel).

Vi saluto e vi ringrazio in anticipo di cuore per i vostri consigli. :-p

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 12:37
da conraid
joe ha scritto: Cosa posso fare adesso per sitabilire la sistuazione?
Mi viene in mente di ricompilare il kernel e ricreare i moduli e reinstallarli...che dite?
C'è una via più semplice per mettere apposto solo i moduli senza ricompilare il kernel?
Se hai sempre i sorgenti "compilati" puoi dare da li make modules_install, ma immagino che questo lo sai e li hai cancellati. Se non ce l'hai hai 3 strade:
- Prendi i sorgenti di un l kernel a tua scelta e lo compili
- Prendi i sorgenti dello stesso kernel e lo compili
- Prendi i sorgenti dello stesso kernel, prendi il config che usavi (dovresti averlo in boot), lo rinomini in .config e lanci make. Una volta finito dovrebbe bastarti make modules_install in quando il kernel è lo stesso.
Se nel frattempo però avevi modificato qualche libreria importante... ricompilati ex-novo un kernel, IMHO scelta migliore

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 15:47
da joe
Innanzitutto grazie dell'intervento.
Allora, ho installato i sorgenti del kernel 2.6.17.13-smp che ho preso sul cd della 11.0 nella dir extra. Gli ho installati con installpkg ecc.

Ora vado in /usr/src/linux che punta regolarmente a /usr/src/2.6.....-smp.
vedo che c'è un .config e allora do:

make mrproper

per ripulire eventuelmente un po' di roba (anceh se probabilmente non dovrebbe servire....ma non si sa mai.
Quindi copio il config dalla dir boot nella quale a suo tempo avevo copiato la configurazione necessaria al mio portatile.

cp /boot/config-2.6.17.13-smp /usr/src/linux/.config

Infine ho dato il comando:

make oldconfig

che se non sbaglio serve proprio per recuperare dal .config presente la configurazione.

Però ottengo come magro risultato un errore:

Codice: Seleziona tutto

  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/split-include
In file included from /usr/include/linux/errno.h:4,
                 from /usr/include/bits/errno.h:25,
                 from /usr/include/errno.h:36,
                 from scripts/basic/split-include.c:26:
/usr/include/asm/errno.h:4:31: asm-generic/errno.h: No such file or directory
make[1]: *** [scripts/basic/split-include] Error 1
make: *** [scripts_basic] Error 2
ho provato a dare anche make liscio, makeconfig...ecc.ecc.. ma niente di nuovo: sempre lo stesso errore. Che cosa può causarlo? potrebbe mancare qualcosa?
Ora all'avvio del sistema viene utilizzato il kernel 2.6.17 come prima, ma non ci sono più i moduli. Inoltre ho sempre lasciato gli headers del 2.4.33 invece che mettere quelli del 2.6 (questo perchè mi pareva di aver capito che altrimenti ci potrebbero essere problemi....).

Dove sta il problema?
Che serva un kernel con i moduli in regola per compilare un altro kernel?
Spero possiate e sappiate come risolvere...
Grazie nuovamente. A presto.

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 16:23
da ildiama

Codice: Seleziona tutto

# ln -s /usr/src/linux/include/asm-i386 /usr/include/asm
# ln -s /usr/scr/linux/include/asm-generic /usr/include/asm-generic
# ln -s /usr/src/linux/include/linux /usr/include/linux
poi ricomincia dal make oldconfig...
Occhio che la situazione cambia dal 2.6.24 in poi. Con il 2.6.17 dovrebbe andare tutto bene.

Ciao

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 16:41
da conraid
non fai prima a reinstallare il kernel in /extra con relativi moduli, e personalizzarlo in seguito a questo punto?
Dall'errore sembra che mancano dei file nell'include. Non so che dirti, anche io tenevo sempre gli header del 2.4 (Pat consigli gli stessi headers con cui ha compilato le glibc) ma compilavo i 2.6 normalmente, se memoria non mi inganna

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 19:03
da joe
Premetto che horisolto, almeno sembra.
- Ho installato gli header del 2.6-smp presenti in /extra:
Questo sembra avrer risolto le cose, nel senso che la configurazione con:

make oldconfig

e la sucessiva lunghissima compilazione lanciata col semplice

make

Sembrano aver funzionato senza dare errori.



- Avevo già installato l'atro giorno i sorgenti del kernel 2.6.17.13, per via della compilazione di kqemu (che sinceramente mi rode un po' di non essere ancora riuscito a installare).

Conclusioni:
Ho imparato che i moduli del kernel installati dal pacchetto .tgz ufficiale, non vanno bene se si ha un kernel modificato....in tal caso occorre compilare i moduli:

dopo aver compilato col make o probabilmente forse bastava:

make modules

si installano con

make modules_install

Avevo letto tempo addietro di un progetto per pacchettizzare il kernel compilato e i rispettivi moduli se non ricordo male.....potrebbe essere una alternativa interessante...in un caso come questo m'avrebbe portato via una decina di secondi, invece ho dovuto ricompilare tutto (forse c'era qualche scorciatoia....) e il make così liscio ha impiegato veramente parecchio tempo (mi sembrava che ci avesse impiegato meno l'ultima volta...).

La questione kernel, sorgenti moduli headers gcc e varie versioni mi lasciano ancora parecchi dubbi...
Ci deve essere ancora archiviata la discussione di quando avevo ricompilato la prima volta e avevano cercato di spiegarmi la faccenda della versione degli headers, andro a rivedermi la discussione...

Per il resto non posso che ringraziarti per la dritta.
A presto

Re: Aiuto: ho rimosso la dir /lib/modules... :shock:

Inviato: mar 19 feb 2008, 19:30
da conraid
joe ha scritto: Conclusioni:
Ho imparato che i moduli del kernel installati dal pacchetto .tgz ufficiale, non vanno bene se si ha un kernel modificato....in tal caso occorre compilare i moduli:
:shock:
joe ha scritto: dopo aver compilato col make o probabilmente forse bastava:

make modules

si installano con

make modules_install
Nel 2.6 make compila l'immagine del kernel e moduli, non hai bisogno di fare make modules se lanci make da solo

make modules_install invece sì