32ビットCentos 7用のvmwareツールを構築してみてください。次のうちエラーが発生しました./configure
。
インクルードディレクトリは/lib/modules/3.10.0-693.2.2.el7.centos.plus.i686にありません。
このディレクトリを取得するにはrpmをインストールする必要がありますか?私も必要があることがわかりました。 カーネルプラス-3.10.0-693.2.2.el7.centos.plus.src.rpm。しかし、私はこれがより多くのRPMをインストールする必要がある他のより一般的なパッケージの一部にすぎないと思います。
このようなエラーが発生した場合は、何をインストールするのかを知るためにどのロジックに従う必要がありますか?私の場合、そのパッケージは何ですか?
アップデート#1
$ gcc --version
...4.8.5 20150323
$ cat /proc/version
Linux version 3,10,0 ...
gcc version 4.8.5 20150323
注文する
$ sudo yum install kernel-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package kernel-devel-3.10.0-693.21.1.el7.centos.plus.i686 already installed and latest version
Nothing to do
注文する
$ ls /lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/
build modules.builtin modules.modesetting source
extra modules.builtin.bin modules.networking updates
kernel modules.dep modules.order weak-updates
modules.alias modules.dep.bin modules.softdep
modules.alias.bin modules.devname modules.symbols
modules.block modules.drm modules.symbols.bin
答え1
サフィックスを含むパッケージをインストールしないでください.src.rpm
。自分のシステムでRPMパッケージを構築するには、このサフィックス付きのパッケージが必要です。
VMware Tools(VBox Toolsとも呼ばれます)はカーネル用のモジュールを構築します。そのため、コンパイラ、カーネルヘッダ、ビルド環境(特定の定義済みマクロ、複数のスクリプトを含むMakefile)などのツールが必要です。
コンパイラはパッケージとして提供されますgcc-<version>
。実行中のカーネルのコンパイラバージョン(cat /proc/version
=> gcc version
)がインストールされているコンパイラパッケージと同じであることを確認する必要がありますgcc-<version>
。
kernel-devel-$(uname -r)
ビルド環境を含むカーネルヘッダーはCentos 7パッケージにあります。
これはVMwareツール(またはVBoxツール)を構築するために必要なすべてです。
修正する:
Centos 7の紹介open-vm-tools
とCentos 7の構築。 Centos 7はすでにopen-vm-tools
リポジトリにあります。これには、2つのシステムサービス(vgauthd
およびvmtoolsd
)、vmware-<something>
プログラム、および文書が含まれています。
open-vm-tools
()ファイルをダウンロードし、どのようにビルドされたかをyumdownloader --source open-vm-tools
ファイルで確認しました。マクロspec
に次のディレクティブが含まれています。%build
%configure \
--without-kernel-modules \
--enable-xmlsec1 \
--disable-static
したがって、パッケージはモジュールをまったく提供しません。モジュールはどこにありますか?存在するgithub open-vm-tools README.md書いた:
Linuxディストリビューションが提供するopen-vm-toolsパッケージにはLinuxドライバは含まれていません。LinuxドライバはLinuxカーネル自体の一部として提供されるため。
これは本当です。 Centos 7(x86_64)で確認しました。
find /lib/modules/$(uname -r) -name 'vm*'
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/crypto/vmac.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/gpu/drm/vmwgfx
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/misc/vmw_balloon.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/misc/vmw_vmci
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/net/vmxnet3
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/scsi/vmw_pvscsi.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/net/vmw_vsock
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/net/vmw_vsock/vmw_vsock_virtio_transport.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko.xz
/lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko.xz
あなたのカーネルバージョンをダウンロードしました(3.10.0-693.2.2.el7.centos.plus.i686)内容を確認してください。
$ ls kernel-3.10.0-693.2.2.el7.centos.plus.i686.rpm
kernel-3.10.0-693.2.2.el7.centos.plus.i686.rpm
$ rpm2cpio kernel-3.10.0-693.2.2.el7.centos.plus.i686.rpm | cpio -idm # content will be extracted to boot and lib directories in this directory
$ find ./lib/ -name 'vm*'
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/crypto/vmac.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/gpu/drm/vmwgfx
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/misc/vmw_balloon.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/misc/vmw_vmci
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/net/vmxnet3
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/net/vmxnet3/vmxnet3.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/drivers/scsi/vmw_pvscsi.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/net/vmw_vsock
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/net/vmw_vsock/vmw_vsock_virtio_transport.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko
./lib/modules/3.10.0-693.2.2.el7.centos.plus.i686/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko
だから。モジュールとツールはリポジトリから提供されます。ツールを再構築することはできますが、--without-kernel-modules
モジュールを再構築するには(必要なのか疑問です)、カーネルパッケージを再構築する必要があります。詳細な手順については、次を参照してください。セントースウィキ。
アップデート2:
サービス設定。コンパイルツールを正常にインストールしたら、/usr/lib/systemd/system
次のコンテンツを含む2つのサービスファイルを作成する必要があります。
vmtoolsd.service:
[Unit]
Description=Service for virtual machines hosted on VMware
Documentation=http://github.com/vmware/open-vm-tools
ConditionVirtualization=vmware
Requires=vgauthd.service
After=vgauthd.service
[Service]
ExecStart=/usr/local/bin/vmtoolsd
TimeoutStopSec=5
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Also=vgauthd.service
vgauthd.service:
[Unit]
Description=VGAuth Service for open-vm-tools
Documentation=http://github.com/vmware/open-vm-tools
ConditionVirtualization=vmware
PartOf=vmtoolsd.service
[Service]
ExecStart=/usr/local/bin/VGAuthService -s
TimeoutStopSec=5
PrivateTmp=true
[Install]
RequiredBy=vmtoolsd.service
.reloadモジュールの依存関係を作成するときに使用する必要がありますsystemctd daemon-reload
。その後、またはsystemctl start vmtoolsd
を呼び出してサービスを開始できますsystemctl start vgauthd
。