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.