การติดตั้ง VMware บน 18.04: ไม่สามารถสร้าง vmmon


10

ฉันกำลังพยายามติดตั้ง VMware ด้วยคำแนะนำที่https://help.ubuntu.com/community/VMware/Player

ฉันพบข้อผิดพลาดที่บอกให้ฉันดูไฟล์บันทึกซึ่งประกอบด้วย:

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

วิธีการแก้ไขหรือทำการประกาศโดยนัยฟังก์ชั่นฟังก์ชั่นและตัวชี้ที่เข้ากันไม่ได้ประเภทจะไม่ถือว่าเป็นข้อผิดพลาด?
หรือวิธีใดที่ง่ายกว่าในการติดตั้ง VMware ล่าสุดบน 18.04

หมายเหตุ: ข้อผิดพลาดที่แตกต่างจากVMWare Workstation Pro 12 บน Ubuntu 16.04 ไม่สามารถคอมไพล์ vmmon ได้


คุณสามารถลองวิธีแก้ปัญหาที่นี่
ptetteh227

คำตอบ:



15

ผมพบว่าวิธีการแก้ปัญหาและสร้างไฟล์สคริปต์บนพื้นฐานของแหล่งที่มาของ GitHub mkucebek

คุณต้องสร้างไฟล์ที่มีเนื้อหานี้และเรียกใช้ทุกครั้งที่จำเป็น (โดยปกติเมื่อคุณติดตั้งเคอร์เนลใหม่):

#!/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 15.0.4
Lukas Bradley

ผมได้รับปัญหาเดียวกันกับ VMware Workstation 15.0.4 'แก้ไขได้ด้วยการรวบรวมและติดตั้ง 'VMware เจ้าภาพโมดูล' หากคุณใช้รุ่นของ VMWare อื่นหารุ่นที่เหมาะสมกับ และเช็คเอาท์ด้วยgit branch -a git checkoutลบและเชื่อมโยงlibz.so.1และรีสตาร์ทบริการ vmware ไม่จำเป็นสำหรับฉัน
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

มันเป็นเวอร์ชั่นเดียวกันของสคริปต์ที่แสดง obove แต่ "ตรวจจับ" เวอร์ชันที่ติดตั้งของเวิร์กสเตชัน vmware
Raul Peñaloza

ทำงานให้กับ openSuSE Tumbleweed
blissini
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.