カーネルディレクトリは空ですが、カーネルヘッダーはインストールされています


19

ホスト-Windows 7

ゲスト-CentOS

インストール中に3.10.0-229.7.2.e17.x86_64のカーネルヘッダーファイルへのパスを求めるメッセージが表示されるためkernel-headersを使用してインストールしようとしていますyumvmware-tools

実行yum install kernel-headersすると、パッケージkernel-headers-3.10.0-229.7.2.e17.x86_64が既にインストールされ、最新バージョンが返されます。ただし、ディレクトリ/usr/src/kernelsは空です。

カーネルヘッダーは別の場所にインストールされていますか?それとも、yum何か他のものをインストールするように求めるべきですか?

カーネルヘッダー用にvmware-toolsに提供されるパス

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.
Would you like to change it? [yes]

パス/usr/include/linuxを指定すると、再び同じ応答が返されますが、「」は指定されたパスに置き換えられます。


1
の出力を確認してくださいrpm -ql kernel-headers。/ usr / include / linuxにファイルを置くと思いますが、私は時代遅れかもしれません。vmware-toolsインストーラーに指定するパスと、それが報告するものを指定できると便利です。
ジェフシャラー

回答:


8

カーネルモジュールの構築に必要なすべての依存関係をインストールするための正しいパッケージkernel-develは次のとおりです(詳細については、CentOSのドキュメントを参照してください)。

ヘッダーはにはインストールされませんが/usr/src/kernels、以下のいくつかのディレクトリ/usr/include(Cヘッダーファイルのデフォルトの場所)にインストールされます。以下kernel-headersを使用して、インストールしたパッケージの内容をリストできます。

rpm -ql kernel-headers

それでした。私は以前にそのページに行きましたが、「完全なソース必要な場合はkernel-develを使用する必要がある」と誤解していました。ありがとう
-Kvothe

23

同じ問題がありました。多くのグーグルの後、このソリューションは私のために働いた。まず、インストールされているカーネルのバージョンを確認し、その正確なバージョンを使用してカーネルヘッダーパッケージをインストールします。

sudo yum install "kernel-devel-uname-r == $(uname -r)"

これはSurface BookとVMWareの構成で機能しました。
-ThinkCode

Centos 7で動作し、2時間以上前に過ごしました。ありがとう!
h0x91B

最後に... CentOS7で作業しました。
どうも

出来た。ありがとう。カーネルヘッダーがこの開発の一部であるかどうかはわかりません。
ムラリモプル

4

以下に示すCentOSバージョン7では、カーネルヘッダーのパスです。

/lib/modules/3.10.0-327.36.2.el7.x86_64/build/include

yum install kernel-headers(最新に更新された)2回実行した後、問題は修正されました。実行中のカーネルバージョンとカーネルヘッダーバージョンが同じであることを確認します。私のカーネルバージョンは3.10.0-327.36.2.el7.x86_64


このように簡単な回答は、より多くの賛成票に値します。
WesternGun

2

私は同じ問題を抱えていましたが、上記の解決策はうまくいきませんでした。私が使用しているCentOS 7のビルドかもしれません。
これが私にとって問題を解決したものです...

カーネルヘッダーをインストールする

yum -y install kernel-devel

vmwareツールがversion.hを見つけられるようにシンボリックリンクを設定します

export kernel_headers=`ls -hd /usr/src/kernels/3*`
sudo ln -s ${kernel_headers}/include/generated/uapi/linux/version.h ${kernel_headers}/include/linux/version.h

2

kernel-develパッケージをインストールしましたが、ヘッダーがインスタンスで実行されていたカーネルバージョンとは異なるカーネルバージョン用であることがわかりました。問題を解決するために、私は走った

sudo yum upgrade

再起動し、vmware-toolsを大騒ぎせずにインストールしました。


2

私はまったく同じ問題を抱えています。

私の場合、kernel-dev *を削除して、再度インストールする必要がありました。

yum -y remove kernel-devel*
yum -y install kernel-devel*

0

これに対する回避策を見つけたと思います。

VMWareツールではなくopen-vm-toolsのインストールを推奨する提案を(VMWareのWebサイトでも)読んでいます。

yum install open-vm-tools

もちろん、いくつかの注意事項があります。インストール後、仮想マシンを再起動することを忘れないでください。

また、vSphereで通常表示される緑色のチェックマークの代わりに、灰色の「?」が表示されるようになりました。ただし、ツールが実行されていることを認識し、IPアドレス、実行中のOS、および「実行中(サードパーティ/独立)」画面を表示します。

うまくいけば、これが誰かを助けるでしょう。私はこれに2日間を費やし、最終的にこの答えを見つけました。そして、ゲストOSとしてCentOS 7.2でESXi 5.1とvCenterを実行しました。


open-vm-toolsは、特定の場合にはvmwareツールの実際の代替ではありません。例えば。open-vm-toolsは、ゲストとホスト間でファイルを共有するためのhgfsをサポートしていません。Vmwareは、centos 7でhgfsをサポートします。
Gaurav

0

質問に答えるために、カーネルソースは/ usr / src / kernels /にインストールされます。kernel-develはインストールするパッケージです。

問題の解決策を提供するために、問題の理由は、インストールされているカーネルが古く、kernel-develがリポジトリに更新されていることです。そのため、kernel-develをインストールすると、新しいカーネルのソースがインストールされるため、vmwareツールの構成スクリプトはソースを見つけられません。2つの解決策があります。

  1. kernelとkernel-develの両方が新しいようにカーネルを更新します。

    sudo yum upgrade

新しいカーネルが読み込まれるように再起動してから、vmware tools configスクリプトを実行します。

  1. カーネルの更新は常に実行可能とは限りません。その場合は、インストールされているカーネルバージョンと同じカーネル開発バージョンをインストールしてください。

    sudo yum install "kernel-devel-uname-r == $(uname -r)"

0

これが、私にとって新鮮な最小Centosのインストールで機能したものです。

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.