Cài đặt VMware vào ngày 18.04: Không thể xây dựng vmmon


10

Tôi đang cố gắng cài đặt VMware với các hướng dẫn tại https://help.ubfox.com/community/VMware/Player

Tôi nhận được một lỗi yêu cầu tôi xem xét một tệp nhật ký, trong đó có:

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.

Để tìm ra chính xác những gì sai, tôi đã chạy vmware-modconfig --console --install-alltrên dòng lệnh và nó đã tiết lộ những lỗi này:

./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

Làm thế nào để sửa nó, hoặc làm cho khai báo hàm-hàm ẩn và các kiểu con trỏ không tương thích không được coi là lỗi?
Hoặc có phương pháp nào dễ dàng hơn để cài đặt VMware mới nhất vào ngày 18.04 không?

Lưu ý: Lỗi khác với VMWare Workstation Pro 12 trên Ubuntu 16.04 không thể biên dịch vmmon


bạn có thể thử các giải pháp tại đây
ptetteh227

Câu trả lời:


6

Cài đặt phiên bản mới nhất 14.1.2 . Lỗi đã được sửa. Xem ở đây . Đây là liên kết tải xuống.


15

Tôi đã tìm thấy một giải pháp và tạo một tập tin kịch bản dựa trên các nguồn github của mkucebek .

Bạn phải tạo một tệp có nội dung này và chạy nó mỗi khi cần (Thông thường khi bạn cài đặt kernel mới):

#!/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

Sau đó, bạn chỉ cần khởi chạy VMware Workstation mà không cần xây dựng các mô-đun.


Xin chào Charly, chào mừng bạn đến hỏi Ubuntu! Vui lòng thêm các liên kết trong bài tiếp theo của bạn.
abu_bua

Phiên bản không khớp với mô-đun vmmon: mong đợi 329.0, có 309.0. Bạn có một phiên bản không chính xác của mô-đun hạt nhân 'vmmon'. Hãy thử cài đặt lại VMware Workstation.
altagir

1
Giải pháp này hoạt động hoàn hảo với tôi trên Ubuntu 19.04 và Workstation 15.0.4
Lukas Bradley

Tôi gặp vấn đề tương tự với 'VMware Workstation 15.0.4', đã giải quyết bằng cách biên dịch và cài đặt 'vmware-host-module' Nếu bạn sử dụng phiên bản VMWare khác, hãy tìm hiểu phiên bản phù hợp git branch -avà kiểm tra git checkout. loại bỏ và liên kết libz.so.1và khởi động lại dịch vụ vmware là không cần thiết đối với tôi.
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

Cái này hoạt động với tôi trên Fedora 30 và Workstation 15.1.0


1
Bạn có thể thêm một số chi tiết về những gì kịch bản đang làm và cách?
Simon Sudler

nó là phiên bản tương tự của tập lệnh được hiển thị ở trên, nhưng "phát hiện" phiên bản đã cài đặt của máy trạm vmware
Raul Peñaloza

làm việc cho openSuSE Tumbleweed
blissini
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.