Caixa virtual para centos PAE

3

Estou tentando fazer com que o virtualbox seja instalado em uma caixa muito sensível. Ele continua reclamando.

Configuração do /etc/init.d/vboxdrv KERN_DIR = / root / linux-2.6.18.5

Isso é executado e apresenta este erro:

Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxhost/4.1.0/source ->
                 /usr/src/vboxhost-4.1.0

DKMS: add Completed.
You can use the --kernelsourcedir option to tell DKMS where it's located.
Failed to install using DKMS, attempting to install without
make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -C /root/linux-2.6.18.5 modules
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (            \
        echo;                                                           \
        echo "  ERROR: Kernel configuration is invalid.";               \
        echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";      \
        echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \
        echo;                                                           \
        /bin/false)

  ERROR: Kernel configuration is invalid.
         include/linux/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.

mkdir -p /tmp/vbox.0/.tmp_versions
rm -f /tmp/vbox.0/.tmp_versions/*

  WARNING: Symbol version dump /root/linux-2.6.18.5/Module.symvers
           is missing; modules will have no dependencies and modversions.

make -f scripts/Makefile.build obj=/tmp/vbox.0
  gcc -m32 -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d  -nostdinc -isystem /usr/lib/gcc/i386-redhat-linux/4.1.2/include -D__KERNEL__ -Iinclude  -include include/linux/
autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O2 -pipe -msoft-float -mpreferred-stack-boundary=2  -ffreestanding -Iincl
ude/asm-i386/mach-default -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h
 -I/root/linux-2.6.18.5/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxdrv/ -I/tmp/vbox.0/vboxdrv/include -I/tmp/vbox.0/vboxd
rv/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_X86
 -DVBOX_WITH_64_BITS_GUESTS   -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /tmp/vbox.0/linu
x/SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c
cc1: error: include/linux/autoconf.h: No such file or directory

Existe alguém com experiência em compilar os kernels linux (e esperamos que o virtualbox) que poderia me ajudar com isso?

    
por Arian 23.07.2011 / 21:41

2 respostas

4

Você compilou seu próprio kernel? Parece que você está passando uma árvore de código-fonte do kernel (em /root/linux-2.6.18.5 ) para o sistema de compilação do módulo. Mas isso não é o que você precisa neste estágio. Para compilar módulos externos, você precisa de vários arquivos; alguns desses arquivos vêm diretamente da fonte do kernel, e outros são gerados durante a compilação do kernel. A maioria desses arquivos são cabeçalhos C ( .h arquivos como include/linux/autoconf.h ), mas há alguns outros, como Module.symvers .

Se você estiver executando um kernel que você compilou, você precisa manter parte da árvore de compilação. É mais fácil não excluir nada, mas se você tiver pouco espaço ou algo assim, deve manter pelo menos todos os arquivos chamados *.h ou Kbuild ou Makefile , além de alguns arquivos na raiz da árvore de origem do kernel : .config , .kernelvariables e Module.symvers .

Se você estiver executando um kernel fornecido pela sua distribuição, basta instalar o pacote contendo os cabeçalhos de kernel correspondentes (no CentOS, acho que é kernel-devel ). E não passe nenhum valor KERNEL_DIR para o programa de instalação, ele deve ser capaz de encontrá-lo no local padrão.

    
por 23.07.2011 / 23:04
0

Eu tenho tentado instalar o AdB Guest Additions no CentOS 6.3 e obter o mesmo erro "A configuração do kernel é inválida". Eu encontrei uma solução que funcionou para mim. Eu não precisei criar um link sym como mostrado acima. Além do yum, instale o dkms kernel-devel do kernel do gcc, execute o yum groupinstall "Ferramentas de Desenvolvimento"
Isso resolveu o problema para mim. Adicionais para convidados não serão instalados sem ele.

    
por 25.01.2013 / 23:01