Você não deve instalar pacotes com o sufixo .src.rpm
. Pacotes com este sufixo necessários para construir pacotes RPM no próprio sistema.
Ferramentas VMware (também ferramentas VBox) criam módulos para o seu kernel. Portanto, ele precisa de ferramentas: compilador, cabeçalhos de kernel e ambiente de criação (Makefiles com macros predefinidas específicas e alguns scripts).
O compilador fornece por gcc-<version>
package. Você deve assegurar que a versão do compilador do kernel em execução ( cat /proc/version
= > gcc version
) e o pacote de compilador gcc-<version>
estejam iguais.
No pacote Centos, 7 kernel-devel-$(uname -r)
fornece cabeçalhos de kernel com o ambiente de criação.
Isso é tudo o que você precisa para criar ferramentas VMware (ou ferramentas VBox).
UPD:
Sobre open-vm-tools
no Centos 7 e construindo o Centos 7. O Centos 7 já possui open-vm-tools
no repositório. Ele contém 2 serviços systemd ( vgauthd
e vmtoolsd
), vmware-<something>
programas e documentação.
Eu baixei open-vm-tools
( yumdownloader --source open-vm-tools
) para ver no arquivo spec
como ele é criado. Em %build
macro contém estas instruções:
%configure \
--without-kernel-modules \
--enable-xmlsec1 \
--disable-static
Portanto, o pacote exatamente não fornece módulos. Onde estão os módulos? Em o github open-vm-tools README.md escreveu:
The open-vm-tools packages available with Linux distributions do not include Linux drivers because Linux drivers are available as part of Linux kernel itself.
É verdade. Eu verifiquei no meu 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
Eu baixei a sua versão do kernel ( 3.10.0-693.2.2.el7.centos.plus.i686 ) e examine seu conteúdo:
$ 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
Módulos e ferramentas fornecem por repositório. Você pode recriar ferramentas, mas com --without-kernel-modules
. Se você quiser reconstruir módulos (duvido que seja necessário) você deve reconstruir o pacote do kernel. Instrução detalhada presente em Wiki do Centos .
UPD2:
Configuração de serviços. Depois que as ferramentas compiladas com sucesso foram instaladas, é necessário criar dois arquivos de serviço em /usr/lib/systemd/system
com o seguinte conteúdo:
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
Quando eles forem criados, você precisará recarregar as dependências dos módulos com systemctd daemon-reload
. Depois, você poderá iniciar os serviços chamando systemctl start vmtoolsd
ou systemctl start vgauthd
.