私は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
Linuxで2.6.33。第三者モジュールの作成者はコードを変更する必要があります。これはすでに適用されています。VirtualBox アップストリーム完了。その間、次のことができます。回避策としてモジュールソースにパッチを適用するか、シンボリックリンクを作成してください。。
NMI関連エラーの場合、NMI監視機能は2.6.37と2.6.38の間で大幅に変更されました。。これを行うには、モジュールのソースコードへの移植作業がたくさん必要になるようです。その間、次のことが発生する可能性があります。運が良ければ問題になるコードをパッチするだけです。。目的NMI ウォッチドッグカーネルロックをデバッグして、カーネルロックなしでできるようにします。
答え2
rootで行った操作を実行するために、カーネル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を実行しているからです。