
저는 Debian 6을 실행 중이고 Unstable의 2.6.38 커널을 설치하기로 결정했습니다. 나중에 할 수 있도록 헤더도 설치했습니다.
sudo apt-get install --target-release=unstable linux-image-2.6.38-2-686-bigmem linux-headers-2.6.38-2-686-bigmem
그런 다음 다시 설치했습니다.virtualbox-ose-dkms
2.6.38용 VirtualBox 드라이버를 다시 빌드하는 것이 가능하지만(2.6.38에서 VirtualBox를 사용할 수 있도록) 다음 오류가 발생합니다.
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)
그들이 나에게 보여달라고 요청한 파일의 내용은 다음과 같습니다.
$ 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'
답변1
autoconf.h
include/linux
다음으로 이동include/generated
리눅스에서2.6.33. 타사 모듈 작성자는 코드를 수정해야 합니다. 이는 이미 적용되었습니다.VirtualBox 업스트림 완료. 그 동안에는 다음을 수행할 수 있습니다.해결 방법으로 모듈 소스를 패치하거나 심볼릭 링크를 생성하세요..
NMI 관련 오류의 경우,NMI 감시 기능은 2.6.37과 2.6.38 사이에서 많이 변경되었습니다.. 이를 위해서는 모듈 소스 코드로의 포팅 작업이 많이 필요할 것 같습니다. 그동안 다음과 같은 일이 발생할 수 있습니다.운이 좋으면 문제가 되는 코드를 패치하기만 하면 됩니다.. 목적NMI 워치독커널 잠금을 디버깅하여 커널 잠금 없이도 할 수 있도록 하는 것입니다.
답변2
루트로 수행한 작업을 수행하기 위해 커널 2.6.38.2에서 동일한 문제가 발생했습니다.
aptitude purge virtualbox-ose virtualbox-ose-dkms
dpkg --list |grep "^rc" | awk '{print $2}' | xargs sudo dpkg --purge
locate -e virtualbox
내 ~/.VirtualBox에서 모든 관련 파일 발췌문을 삭제했습니다.
그 다음에
- aptitude install virtualbox-ose virtualbox-ose-dkms
왜냐하면 커널 2.6.38.2와 함께 Virtualbox-ose 4.0.2를 실행하고 있기 때문입니다.