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
.