2012-11-03 17:06:32 +0000 2012-11-03 17:06:32 +0000
38
38

Unable to install VIrtualbox, `"Specify KERN_DIR=<ディレクトリ>"` -- Debian に Virtual Box をインストールするには?

このようなエラーが出ています。

Makefile:181. ** Error: unable to find the sources of your current Linux kernel. KERN_DIR=を指定して、再度Makeを実行。停止。

基本的にやってるよ。

$ sudo /etc/init.d/vboxdrv setup
Removing existing VirtualBox non-DKMS kernel modules [OK]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-573.18.1.el6.x86_64

Building the main Guest Additions module [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)

そして、エラーは以下の通り。** Error: unable to find the sources of your current Linux kernel. KERN_DIR=を指定して、再度Makeを実行。Stop

このエラーは何なの?

回答 (7)

34
34
34
2012-11-03 17:38:30 +0000

Kernel Headers Package をインストールしてください。 http://www.cyberciti.biz/faq/howto-install-kernel-headers-package

Make sure you have updated version

Type the following command
$ sudo apt-get update

OR as root user enter:
# apt-get update

Search for kernel version (optional)

Type the following command:
$ apt-cache search linux-headers-$(uname -r)

Install linux-header package under Debina or Ubuntu Linux

Type the following command:
$ sudo apt-get install linux-headers-$(uname -r)

OR as root user:
# apt-get install linux-headers-$(uname -r)

EDIT:

たまたま自分のサーバにもインストールする必要があって、debian repos で virtualbox を使おうとしたら同じエラーが出ました。私は先に進み、VirtualBoxのレポを追加して、そこからインストールしました。こちらの方が最新なので良いと思います。

$ nano /etc/apt/sources.list

squeezeの以下の行を追加

deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free

その後、apt-secure用のOracle公開鍵を追加

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

その後、アップデートを実行して最新の4をインストールします。 2

apt-get update
apt-get install virtualbox-4.2

dkms パッケージをインストールして、VirtualBox ホストカーネルモジュールが最新の状態になっていることを確認します。VirtualBoxのLinux用ウェブサイトから以下の手順を入手しましたが、リンク先は https://www.virtualbox.org/wiki/Linux_Downloads です。

29
29
29
2014-07-19 12:20:11 +0000
$ sudo yum update
$ sudo yum install kernel-devel gcc
$ echo export KERN_DIR=/usr/src/kernels/`uname -r` >> ~/.bashrc
$ source ~/.bashrc # to set the variable in your current shell
$ sudo echo $KERN_DIR # verify the value is set
$ sudo ls $KERN_DIR # verify the directory exists

カーネルのバージョンが更新された場合、uname -r/usr/src/kernels/のディレクトリ名と一致するように再起動する必要があります。その後、

0x1&

この後、VirtualBox カーネルモジュールをコンパイルしても問題なく動作するはずです。

0x1&

ソース。

2
2
2
2015-10-23 02:03:00 +0000

CentOSでは、KERNのK_DIRがエラーになっていた。シェルのインストールスクリプトを見直してみたら、/usr/src/kernelsにKERN_DIRが設定されていることがわかった。その後、"uname -r “を実行してみると、/usr/src/kernels以下のソースコードよりも低いバージョンのカーネルを実行していることがわかった。

/boot/grub/menu.lst を見てみたら、カーネルの不一致を確認しました。気味が悪い。

修正方法は… "yum -y update kernel "を実行して再起動。VMWareのツールがインストールされた。

2
2
2
2013-05-28 18:05:47 +0000

@hhh linux-headersだけを検索して、自分のアーキテクチャに合ったものを探すといいと思います。私の場合は

# aptitude search linux-headers      
v linux-headers -                                                                              
p linux-headers-2.6-amd64 - Header files for Linux amd64 configuration (dummy package)                   
p linux-headers-3.2.0-4-all - All header files for Linux 3.2 (meta-package)                                
p linux-headers-3.2.0-4-all-amd64 - All header files for Linux 3.2 (meta-package)                                
i A linux-headers-3.2.0-4-amd64 - Header files for Linux 3.2.0-4-amd64                                         
i A linux-headers-3.2.0-4-common - Common header files for Linux 3.2.0-4                                        
p linux-headers-3.2.0-4-common-rt - Common header files for Linux 3.2.0-4-rt                                     
p linux-headers-3.2.0-4-rt-amd64 - Header files for Linux 3.2.0-4-rt-amd64                                      
i linux-headers-amd64 - Header files for Linux amd64 configuration (meta-package)                    
p linux-headers-rt-amd64 - Header files for Linux rt-amd64 configuration (meta-package)

というわけで、私の場合は64ビットアーキテクチャなので、linux-headers-amd64をインストールしなければなりません。

0x1&

もう一つは、apt-get addが存在しないことです。apt-getapt-keyに置き換えます。

1
1
1
2014-06-08 02:10:33 +0000

試してみてください。

yum install kernel* dkms gcc

その後、

yum install kernel-uek-devel

その後、マシンを再起動します。

0
0
0
2016-06-08 16:03:37 +0000

このエラーは、vboxdrv/vboxadd がカーネルソースを見つけられないことを意味します。

スクリプトは、/lib/modules/$(uname -r)/build フォルダが /usr/src/kernels/$(uname -r) を指していることを期待していますが、そのフォルダには kernelrelease タスクを実行できる Makefile があるはずです。

このコマンドが失敗した場合。

make -C /usr/src/kernels/$(uname -r)/build kernelrelease

で失敗した場合は、Linuxヘッダをインストールする必要があります。

sudo apt-get install linux-headers-$(uname -r)

詳細については、こちらの post をご覧ください。

0
0
0
2016-06-22 11:47:51 +0000

どのような OS であっても、必要なパッケージがすべてインストールされていることを確認する必要があります。私の場合、Debian では dkms と linux-headers-generic パッケージが不足していました。

#apt-get install dkms build-essential linux-headers-generic linux-headers-$(uname -r)

完全な手順については、こちらの VirtualBox フォーラムの投稿 を参照してください。

関連する質問

12
11
8
5
2