私はこのエラーを受けています:
Makefile:181:***エラー:現在のLinuxカーネルのソースが見つかりません。 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)
そしてエラーは:
Makefile:181:***エラー:現在のLinuxカーネルのソースが見つかりません。 KERN_DIR =を指定して、再度Makeを実行してください。やめる
このエラーとは何ですか?
必ず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)
編集:
たまたま自分のサーバーにもインストールする必要があり、debianリポジトリでvirtualboxを使おうとしたときに同じエラーが出ました。私は先に行き、VirtualBoxレポを追加し、そこからインストールしました。最新のものであるため、これはより優れています。
ルートとして
$ nano /etc/apt/sources.list
絞り込むために以下の行を追加
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
VirtualBox Hostカーネルモジュールが最新であることを確認するためにdkmsパッケージをインストールします。
apt-get install dkms
行ってもいいはずです。現時点では停止しているようですが、リンクはVirtualBoxのLinux用Webサイトから取得しました。 https://www.virtualbox.org/wiki/Linux_Downloads
まず、インストールしたパッケージ(特にカーネル)が最新であることを確認してください。
$ Sudo yum update
カーネルのバージョンが更新されたら、uname -r
が/usr/src/kernels/
のディレクトリ名と一致するように再起動する必要があります。それから
$ 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
このコンパイル後、VirtualBoxカーネルモジュールは問題なく動作するはずです。
出典:
@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
をインストールしなければなりません。
apt-get add
は存在しません。 apt-get
をapt-key
に置き換えます。
試してください:
yum install kernel* dkms gcc
それから
yum install kernel-uek-devel
それからあなたのマシンを再起動します
CentOSでKERN_DIRエラーが発生しました。シェルインストールスクリプトを確認したところ、KERN_DIRが/ usr/src/kernelsに設定されていることがわかりました。それから、 "uname -r"は、/ usr/src/kernelsの下のソースコードよりも低いバージョンのカーネルを実行していたことを示していました。
/boot/grub/menu.lst ...を見て、カーネルの不一致を確認しました。変です。
だから修正した... "yum - yアップデートカーネル"、その後再起動します。 VMWareツールがインストールされました。
どのOSでも、必要なパッケージがすべてインストールされていることを確認する必要があります。私のDebianの場合、パッケージdkmsとlinux-headers-genericがありませんでした。
#apt-get install dkms build-essential linux-headers-generic linux-headers-$(uname -r)
詳しい手順については、こちら VirtualBoxフォーラムの投稿 を参照してください。
エラーはvboxdrv
/vboxadd
があなたのカーネルソースを見つけることができないことを意味します。
スクリプトは/lib/modules/$(uname -r)/build
フォルダがkernelrelease
タスクを実行できるMakefileがあるはずの/usr/src/kernels/$(uname -r)
を指すことを期待しているので、現在インストールされているカーネルのバージョン(uname -r
)と比較することができます。
そのため、このコマンドが失敗した場合:
make -C /usr/src/kernels/$(uname -r)/build kernelrelease
次のようにしてLinuxヘッダをインストールしてください。
Sudo apt-get install linux-headers-$(uname -r)
詳しくはこちら の投稿 をご覧ください。