18.04에 VMware 설치 : vmmon을 빌드하지 못했습니다.


10

https://help.ubuntu.com/community/VMware/Player 의 지침에 따라 VMware를 설치하려고합니다.

다음을 포함하는 로그 파일을 살펴 보라는 오류가 발생합니다.

Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
Successfully extracted the vmmon source.
Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-GoVdrH/vmmon-only auto-build HEADER_DIR=/lib/modules/4.15.0-22-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
Failed to build vmmon.  Failed to execute the build command.

무엇이 잘못되었는지 정확히 파악하기 vmware-modconfig --console --install-all위해 명령 행에서 실행 한 결과 다음과 같은 오류가 나타났습니다.

./arch/x86/include/asm/processor-flags.h:39:0: note: this is the location of the previous definition
 #define CR3_PCID_MASK 0xFFFull

                      ^
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:256:12: error: ‘struct timer_list’ has no member named ‘data’
    tscTimer.data     = 0;
    unsigned int lockedPages = global_page_state(NR_PAGETABLE) +
                               ^~~~~~~~~~~~~~~~~
                               global_numa_state
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c: In function ‘init_module’:
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:338:4: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
    init_timer(&tscTimer);
    ^~~~~~~~~~
    init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c: In function ‘HostIF_InitUptime’:
    init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c:1754:31: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
    uptimeState.timer.function = HostIFUptimeResyncMono;
 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
 ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o' failed
make[2]: *** [/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o] Error 1
Makefile:110: recipe for target 'vmmon.ko' failed
make: *** [vmmon.ko] Error 2

수정하거나 암시 적 함수 선언 및 호환되지 않는 포인터 유형을 오류로 간주하지 않는 방법은 무엇입니까?
아니면 18.04에 최신 VMware를 설치하는 더 쉬운 방법이 있습니까?

참고 : Ubuntu 16.04의 VMWare Workstation Pro 12와 다른 오류로 인해 vmmon을 컴파일 할 수 없습니다


당신은 여기
— ptetteh227

답변:



15

해결책을 찾았고 mkucebek의 github 소스를 기반으로 스크립트 파일을 작성했습니다 .

이 내용으로 파일을 작성하고 필요할 때마다 (보통 새 커널을 설치할 때) 파일을 실행해야합니다.

#!/bin/bash
VMWARE_VERSION=workstation-12.5.9
TMP_FOLDER=/tmp/patch-vmware
rm -fdr $TMP_FOLDER
mkdir -p $TMP_FOLDER
cd $TMP_FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $TMP_FOLDER/vmware-host-modules
git checkout $VMWARE_VERSION
git fetch
make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 
/usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo /etc/init.d/vmware restart

그런 다음 모듈을 구축하지 않고 VMware Workstation을 시작하면됩니다.


Charly 안녕하세요, askubuntu에 오신 것을 환영합니다! 다음 게시물에 링크를 추가하십시오.
— abu_bua

vmmon 모듈과의 버전 불일치 : 329.0 예상 309.0 'vmmon'커널 모듈의 버전이 잘못되었습니다. VMware Workstation을 다시 설치하십시오.
— altagir

1
이 솔루션은 Ubuntu 19.04 및 Workstation
— Lukas Bradley

난 당신이 적절한과 버전을 확인, VM웨어의 다른 버전을 사용하는 경우 'VM웨어 - 호스트 모듈을'컴파일 해결할 설치, 'VM웨어 워크 스테이션 15.0.4'와 같은 문제를 가지고 git branch -a와, 체크 아웃을 git checkout. libz.so.1vmware 서비스를 제거했다가 다시 연결 하지 않아도됩니다.
— soroosh

3
#!/bin/bash
VMWARE_VERSION=`vmware-installer -l |grep workstat|awk '{print $2}' |awk 'BEGIN {FS="."}{print "workstation-"$1"."$2"."$3}'`
echo $VMWARE_VERSION
TMP_FOLDER=/tmp/patch-vmware
rm -fdr $TMP_FOLDER
mkdir -p $TMP_FOLDER
cd $TMP_FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $TMP_FOLDER/vmware-host-modules
git checkout $VMWARE_VERSION
git fetch
make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 
/usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo /etc/init.d/vmware restart

이것은 Fedora 30 및 Workstation 15.1.0에서 작동합니다.


1
스크립트가 수행하는 작업과 방법에 대한 자세한 내용을 추가 할 수 있습니까?
— Simon Sudler 2016 년

그것은 동일한 버전의 스크립트 였지만, 설치된 vmware 워크 스테이션 버전을 "감지"했습니다
— Raul Peñaloza

오픈 수세 다니지 근무
— blissini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.