Tôi đang chạy hệ điều hành khách openSUSE 13.1 bên trong hộp ảo trên máy chủ Ubuntu 12.04. Hệ điều hành đã cài đặt tốt, nhưng khi tôi cố gắng xây dựng các addon khách bằng cách phát hành "./VBoxLinuxAdditions.run", quá trình xây dựng không thành công khi đăng nhập vào vboxadd-install.log bên dưới. Tôi đã cài đặt tất cả các phụ thuộc bao gồm make, gcc và kernel-source:
đầu ra vbox-install.log
grep: /lib/modules/3.11.6-4-default/build/include/linux/version.h: No such file or directory
make KBUILD_VERBOSE=1 CONFIG_MODULE_SIG= -C /lib/modules/3.11.6-4-default/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 modules
make -C /usr/src/linux-3.11.6-4-obj/i386/default \
KBUILD_SRC=/usr/src/linux-3.11.6-4 \
KBUILD_EXTMOD="/tmp/vbox.0" -f /usr/src/linux-3.11.6-4/Makefile \
modules
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f /usr/src/linux-3.11.6-4/scripts/Makefile.build obj=/tmp/vbox.0
gcc -Wp,-MD,/tmp/vbox.0/.VBoxGuest-linux.o.d -nostdinc -isystem /usr/lib/gcc/i586-suse-linux/4.8/include -I/usr/src/linux-3.11.6-4/arch/x86/include -Iarch/x86/include/generated -I/usr/src/linux-3.11.6-4/include -Iinclude -I/usr/src/linux-3.11.6-4/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-3.11.6-4/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-3.11.6-4/include/linux/kconfig.h -I/tmp/vbox.0 -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -fno-pic -mpreferred-stack-boundary=2 -march=i586 -mtune=generic -maccumulate-outgoing-args -Wa,-mtune=generic32 -ffreestanding -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-than=2048 -Wno-unused-but-set-variable -fomit-frame-pointer -fasynchronous-unwind-tables -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -include /tmp/vbox.0/include/VBox/VBoxGuestMangling.h -I/lib/modules/3.11.6-4-default/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxguest/ -I/tmp/vbox.0/vboxguest/include -I/tmp/vbox.0/vboxguest/r0drv/linux -D__KERNEL__ -DMODULE -DVBOX -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DRT_ARCH_X86 -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(VBoxGuest_linux)" -D"KBUILD_MODNAME=KBUILD_STR(vboxguest)" -c -o /tmp/vbox.0/.tmp_VBoxGuest-linux.o /tmp/vbox.0/VBoxGuest-linux.c
/tmp/vbox.0/VBoxGuest-linux.c:206:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_VBoxGuestPciId’
static const struct pci_device_id __devinitdata g_VBoxGuestPciId[] =
^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:78:0,
from /tmp/vbox.0/VBoxGuest-linux.c:28:
/usr/src/linux-3.11.6-4/include/linux/module.h:87:32: error: ‘__mod_pci_device_table’ aliased to undefined symbol ‘g_VBoxGuestPciId’
extern const struct gtype##_id __mod_##gtype##_table \
^
/usr/src/linux-3.11.6-4/include/linux/module.h:140:3: note: in expansion of macro ‘MODULE_GENERIC_TABLE’
MODULE_GENERIC_TABLE(type##_device,name)
^
/tmp/vbox.0/VBoxGuest-linux.c:216:1: note: in expansion of macro ‘MODULE_DEVICE_TABLE’
MODULE_DEVICE_TABLE(pci, g_VBoxGuestPciId);
^
make[4]: *** [/tmp/vbox.0/VBoxGuest-linux.o] Error 1
make[3]: *** [_module_/tmp/vbox.0] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make: *** [vboxguest] Error 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.