View Full Version : Virtualbox e ricompilazione kernel
guylmaster
12-03-2009, 20:28
Ciao a tutti,
ho ricompilato il kernel e virtualbox non ne vuole sapere di andare. Non mi andava il modulo vboxdrv al che ho provato ad inserirli a mano il percorso nei file modules.dep e modules.order ma con "modprobe vboxdrv" mi diceva che il modulo non esisteva.
Ho provato invece a reinserire il modulo con m-a, mi diceva che c'era bisogno di ricompilare i sorgenti per l'attuale versione del kernel (che poi è lo stesso kernel di prima, solo che ho preso la versione vanilla e gli ho caricato qualcosina in meno), l'ho ricompilato, l'ho eseguito l'install e adesso se ridò il comando "modprobe vboxdrv" mi da il seguente errore:
FATAL: Error inserting vboxdrv (/lib/modules/2.6.28.7-486-van-neptune/extra/virtualbox-ose/vboxdrv/vboxdrv.ko): Invalid module format
Come posso risolvere? ho fatto solo quelle due prove che vi ho scritto qui, non ho pastrocchiato più di tanto.
Vi ringrazio in anticipo per l'aiuto,
Guylmaster.
guylmaster
12-03-2009, 21:30
Se do il comando "dmesg | grep vbox" inoltre mi da il seguente output
vboxdrv: disagrees about version of symbol struct_module
vboxdrv: disagrees about version of symbol struct_module
vboxdrv: disagrees about version of symbol struct_module
vboxdrv: disagrees about version of symbol struct_module
vboxdrv: disagrees about version of symbol struct_module
Gimli[2BV!2B]
12-03-2009, 22:53
Alla fine non hai usato il module assistant, vero?
Prova a specificare tutto a module assistant:
m-a --kernel-dir /usr/src/linux-headers-2.6.28.7-altarf -l 2.6.28.7-altarf auto-install virtualbox-ose-source
Risultato:
root@altarf:~# modprobe vboxdrv
[12235.996057] vboxdrv: Trying to deactivate the NMI watchdog permanently...
[12235.996057] vboxdrv: Successfully done.
[12235.996057] vboxdrv: Found 1 processor cores.
[12235.996057] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[12235.996057] vboxdrv: Successfully loaded version 2.1.4_OSE (interface 0x000a0009).
Se non hai fatto gli headers (/usr/src/linux-headers-2.6.28.7-altarf) puoi usare la cartella linux-2.6.28.7 (ma se per caso hai fatto un clean mi sa che dovrai ricompilare).
Il 2.6.28.7-altarf corrisponde all'uname -r del kernel che hai creato.
guylmaster
13-03-2009, 01:49
;26672060']Alla fine non hai usato il module assistant, vero?
Prova a specificare tutto a module assistant:
m-a --kernel-dir /usr/src/linux-headers-2.6.28.7-altarf -l 2.6.28.7-altarf auto-install virtualbox-ose-source
Risultato:
root@altarf:~# modprobe vboxdrv
[12235.996057] vboxdrv: Trying to deactivate the NMI watchdog permanently...
[12235.996057] vboxdrv: Successfully done.
[12235.996057] vboxdrv: Found 1 processor cores.
[12235.996057] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[12235.996057] vboxdrv: Successfully loaded version 2.1.4_OSE (interface 0x000a0009).
Se non hai fatto gli headers (/usr/src/linux-headers-2.6.28.7-altarf) puoi usare la cartella linux-2.6.28.7 (ma se per caso hai fatto un clean mi sa che dovrai ricompilare).
Il 2.6.28.7-altarf corrisponde all'uname -r del kernel che hai creato.
Con sidux ho preferito creare il pacchetto .deb con il comando "make-kpkg --append_to_version -486 --initrd --revision=rev.02 kernel_image modules_image" ed installare poi il pacchetto creato.
In /usr/src però non riesco a trovare una cartella degli headers o meglio ho trvato le certelle degli headers degli altri kernel che ho però installato tramite apt-get. Possibile che non mi abbia creato nessuna cartella per il kernel vanilla? eppure non mi ricordo di aver dato nessun clean, e poi le cartelle degli altri due header sono rimaste!
guylmaster
13-03-2009, 02:41
Sto ricompilando il kernel con il seguente comando
make-kpkg --append_to_version -486 --initrd --revision=rev.03 kernel_image modules_image kernel_headers
Così dovrebbe crearmi anche il pacchetto .deb degli headers no? solo che quando lo installo in che percorso me lo metterà?
Comunque non avevo dato il comando di clen ma non riuscivo a trovare da nessuna parte gli headers, spero che includendo gli headers nella nuova compilazione li possa riuscire a trovare.
Ma ricompilare per ricompilare non c'è un modo per inserire i moduli di virtualbox direttamente nella compilazione del kernel? o dite che non è molto pratico?
gli headers non servono se hai i sorgenti del kernel compilati, e a meno che non hai fatto un clean, i sorgenti li avevi già.
Piuttosto se lanci /etc/init.d/vboxdrv setup che errori ti dà?
guylmaster
13-03-2009, 13:24
gli headers non servono se hai i sorgenti del kernel compilati, e a meno che non hai fatto un clean, i sorgenti li avevi già.
Piuttosto se lanci /etc/init.d/vboxdrv setup che errori ti dà?
Non esiste quel file!
Da specificare che io ho la versione ose di virtualbox e che la versione normale, su Sidux, non me la installa per l'assenza di alcune librerie.
Comunque non lo sapevo, l'ho ricompilato "per sicurezza", tanto ho lasciato accesso mentre dormivo. E quindi il comando di prima che specificava il percorso degli headers non serviva a nulla avendo i sorgenti del kernel compilato?
guylmaster
13-03-2009, 14:11
Comunque ho provato anche con il comando " m-a --kernel-dir /usr/src/linux-headers-2.6.28.7-486-van-neptune -l 2.6.28.7-486-van-neptune auto-install virtualbox-ose-source" e l'output generato è il seguente:
Updated infos about 1 packages
Getting source for kernel version: 2.6.28.7-486-van-neptune
Kernel headers available in /usr/src/linux-headers-2.6.28.7-486-van-neptune
Creating symlink...
apt-get install build-essential
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
build-essential è già alla versione più recente.
0 aggiornati, 0 installati, 0 da rimuovere e 138 non aggiornati.
Done!
unpack
The source tarball could not be found!
Package virtualbox-ose-source not installed?
Running "m-a -f get virtualbox-ose-source" may help.
Target package file
/usr/src/virtualbox-ose-modules-2.6.28.7-486-van-neptune_2.1.4-dfsg-1+rev.03_i3
86.deb already exists, not rebuilding!
(however, you could use the -f switch to ignore it)
dpkg -Ei /usr/src/virtualbox-ose-modules-2.6.28.7-486-van-neptune_2.1.4-dfsg-1+rev.03_i386.deb
La versione 2.1.4-dfsg-1+rev.03 di virtualbox-ose-modules-2.6.28.7-486-van-neptune è già installata, lo salto.
Da quello che ho capito questo vboxdrv esiste ma non me lo carica perchè è danneggiato o altro, per questo se provo a caricarlo con modprobe mi dice "invalid format". Forse ho fatto pasticci quando ho copia/incollato il file .ko in lib/modules e ho aggiunto i collegamenti nei file in modules.*. Però cancellandoli mi dice solo "che non riesce a trovarli e non c'è modo di ricaricarli. Non so cosa fare, da cosa possa dipendere il tuttto.
Non mi compilasse virtualbox-ose potrei "cercare soluzioni", ma se mi scarica i sorgenti con m-a e me li compila per il mio kernel, senza darmi errori, com'è possibile che poi non mi carichi il modulo vbodrv?
Gimli[2BV!2B]
13-03-2009, 20:06
Hai provato quanto suggerito: m-a -f get virtualbox-ose-source ?
Hai un pacchetto virtualbox-ose-modules-2.6.28.7-486-van-neptune già installato.
Lo trovi in /usr/src/virtualbox-ose-modules-2.6.28.7-486-van-neptune_2.1.4-dfsg-1+rev.03_i386.deb.
Come lo avevi creato?
L'opzione modules_image non la conoscevo, bella: vengono creati tutti i deb dei moduli di cui hai installato i sorgenti, senza aver bisogno di scomodare m-a con la necessità di spiegargli dove trovare gli headers, ecc...
Fai pulizia dei tentativi precedenti, installa virtualbox-ose-source, usa il tuo comando di compilazione ed installa tutti i deb che ne vengono fuori.
Poi riavvia, carica il nuovo kernel ed incrocia le dita.
su fedora quando yum mi aggiorna il kernel, devo dare /etc/init.d/vboxqualcosa setup
in modo che vbox si ricompili anche lui un po' di menate..
guylmaster
14-03-2009, 07:30
;26683757']Hai provato quanto suggerito: m-a -f get virtualbox-ose-source ?
Hai un pacchetto virtualbox-ose-modules-2.6.28.7-486-van-neptune già installato.
Lo trovi in /usr/src/virtualbox-ose-modules-2.6.28.7-486-van-neptune_2.1.4-dfsg-1+rev.03_i386.deb.
Come lo avevi creato?
L'opzione modules_image non la conoscevo, bella: vengono creati tutti i deb dei moduli di cui hai installato i sorgenti, senza aver bisogno di scomodare m-a con la necessità di spiegargli dove trovare gli headers, ecc...
Fai pulizia dei tentativi precedenti, installa virtualbox-ose-source, usa il tuo comando di compilazione ed installa tutti i deb che ne vengono fuori.
Poi riavvia, carica il nuovo kernel ed incrocia le dita.
Si alla fine ho fatto un pò di pulizia, ho ricompilato il kernel e l'ho reinstallato e mi ha caricavo vboxdrv al primo colpo. Così mi imparo a pastrocchiare a mano nei file di configurazione quando ci sono utilizi tool di setup :stordita:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.