Eu não estou conseguindo construir o driver VirtualBox para o Linux 2.6.38

2

Estou executando o Debian 6 e decidi instalar o kernel 2.6.38 da Unstable. Eu também instalei os cabeçalhos para que eu possa mais tarde:

sudo apt-get install --target-release=unstable linux-image-2.6.38-2-686-bigmem linux-headers-2.6.38-2-686-bigmem

Eu então reinstalei o virtualbox-ose-dkms para que os drivers do VirtualBox para o 2.6.38 possam ser recriados (para que eu possa usar o VirtualBox em 2.6.38), mas recebo este erro:

Building initial module for 2.6.38-2-686-bigmem

Error! Bad return status for module build on kernel: 2.6.38-2-686-bigmem (i686)
Consult the make.log in the build directory
/var/lib/dkms/virtualbox-ose/3.2.10/build/ for more information.
dpkg: error processing virtualbox-ose-dkms (--configure):
 subprocess installed post-installation script returned error exit status 10
configured to not write apport reports
                                      Errors were encountered while processing:
 virtualbox-ose-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

Este é o conteúdo do arquivo que eles me pediram para ver:

$ cat /var/lib/dkms/virtualbox-ose/3.2.10/build/make.log 
DKMS make.log for virtualbox-ose-3.2.10 for kernel 2.6.38-2-686-bigmem (i686)
Sat Apr  9 14:11:57 SAST 2011
make: Entering directory '/usr/src/linux-headers-2.6.38-2-686-bigmem'
  LD      /var/lib/dkms/virtualbox-ose/3.2.10/build/built-in.o
  LD      /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/built-in.o
  CC [M]  /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.o
In file included from /var/lib/dkms/virtualbox-ose/3.2.10/build/include/VBox/types.h:30,
                 from /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/../SUPDrvInternal.h:35,
                 from /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:33:
/var/lib/dkms/virtualbox-ose/3.2.10/build/include/iprt/types.h:97:31: error: linux/autoconf.h: No such file or directory
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c: In function ‘VBoxDrvLinuxInit’:
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: ‘nmi_watchdog’ undeclared (first use in this function)
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: (Each undeclared identifier is reported only once
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: for each function it appears in.)
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: ‘NMI_IO_APIC’ undeclared (first use in this function)
/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:465: error: ‘nmi_active’ undeclared (first use in this function)
make[4]: *** [/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.o] Error 1
make[3]: *** [/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv] Error 2
make[2]: *** [_module_/var/lib/dkms/virtualbox-ose/3.2.10/build] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory '/usr/src/linux-headers-2.6.38-2-686-bigmem'
    
por Tshepang 09.04.2011 / 14:52

2 respostas

2

autoconf.h mudou de include/linux para include/generated em Linux 2.6.33 . Autores de módulos de terceiros devem adaptar seu código; isso já foi feito a montante para o VirtualBox . Enquanto isso, você pode corrigir a fonte do módulo ou criar um link simbólico como uma solução alternativa .

Quanto aos erros relacionados a MNI, o O watchdog da NMI mudou muito entre 2.6.37 e 2.6.38 . Isso parece exigir um esforço de portabilidade não trivial no código-fonte do módulo. Enquanto isso, você pode ter alguma sorte em corrigir o código incorreto . O propósito do watchdog da NMI é depurar os travamentos do kernel, então é algo que você pode viver sem.

    
por 09.04.2011 / 16:26
0

Eu tive os mesmos problemas com o kernel 2.6.38.2 e para fazer as coisas que fiz, como root:

aptitude purge virtualbox-ose virtualbox-ose-dkms
dpkg --list |grep "^rc" | awk '{print $2}' | xargs sudo dpkg --purge
locate -e virtualbox 

Eu removi todos os arquivos relacionados extraídos do meu ~ / .VirtualBox

então

- aptitude install virtualbox-ose virtualbox-ose-dkms

desde então, eu tenho um VirtualBox-ose 4.0.2 em execução com um kernel 2.6.38.2

    
por 10.04.2011 / 09:09