ไม่สามารถเรียกใช้ VMware - ไม่สามารถสร้าง vmnet


25

ฉันไม่สามารถเรียกใช้ vmware และด้านล่างนี้เป็นบันทึกข้อผิดพลาดว่าทำไม

ความคิดใด ๆ แม้ว่าและข้อเสนอแนะได้รับการชื่นชม ขอขอบคุณ.

2014-02-03T16:32:00.904+08:00| vthread-3| I120: Log for VMware Workstation pid=5707 version=10.0.1 build=build-1379776 option=Release
2014-02-03T16:32:00.904+08:00| vthread-3| I120: The process is 64-bit.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host codepage=UTF-8 encoding=UTF-8
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host is Linux 3.13.0-031300-generic Ubuntu 13.10
2014-02-03T16:32:00.903+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.903+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2014-02-03T16:32:00.903+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.903+08:00| vthread-3| I120: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/config": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Optional preferences file not found at /root/.vmware/config. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Unable to check permissions for preferences file.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/preferences": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Failed to load user preferences.
2014-02-03T16:32:00.904+08:00| vthread-3| W110: Logging to /tmp/vmware-root/vmware-modconfig-5707.log
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Created new pathsHash.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:00.950+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:00.950+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmmon module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmnet module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmblock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmci module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vsock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Setting vsock to depend on vmci.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Invoking modinfo on "vmmon".
2014-02-03T16:32:01.203+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.203+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:01.210+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.210+08:00| vthread-3| I120: Invoking modinfo on "vmblock".
2014-02-03T16:32:01.214+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.215+08:00| vthread-3| I120: Invoking modinfo on "vmci".
2014-02-03T16:32:01.220+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.220+08:00| vthread-3| I120: Invoking modinfo on "vsock".
2014-02-03T16:32:01.225+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.252+08:00| vthread-3| I120: to be installed: vmnet status: 0
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.289+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.289+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Kernel header path retrieved from FileEntry: /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Update kernel header path to /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.528+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.542+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.542+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.546+08:00| vthread-3| I120: Found compiler at "/usr/bin/gcc"
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.553+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Using user supplied compiler "/usr/bin/gcc".
2014-02-03T16:32:01.562+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.563+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.572+08:00| vthread-3| I120: Trying to find a suitable PBM set for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.572+08:00| vthread-3| I120: No matching PBM set was found for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.573+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.587+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.588+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:02.909+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:02.910+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.910+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.929+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Using temp dir "/tmp".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.995+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.995+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:03.237+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:03.245+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:06.212+08:00| vthread-3| I120: Setting destination path for vmnet to "/lib/modules/3.13.0-031300-generic/misc/vmnet.ko".
2014-02-03T16:32:06.241+08:00| vthread-3| I120: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Successfully extracted the vmnet source.
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Building module with command "/usr/bin/make -j2 -C /tmp/modconfig-mjoI0c/vmnet-only auto-build HEADER_DIR=/lib/modules/3.13.0-031300-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2014-02-03T16:32:19.531+08:00| vthread-3| W110: Failed to build vmnet.  Failed to execute the build command.

เพียงแค่ต้องการที่จะกล่าวถึงว่าแพทช์นี้ทำงานได้สำหรับฉันใน Ubuntu 14.04 และ VMWare Player 6.0.1 ออกจากกล่อง ขอบคุณ

1
การแก้ปัญหานี้ยังนำไปใช้กับข้อผิดพลาดประเภท 'VNetFilterHookFn' ในวันที่ 10.0.1 เมื่อ 14.04
RobotHumans

3
เพียงแค่แสดงความคิดเห็นเนื่องจากเป็นที่นิยมมากใน google แต่ล้าสมัยและคำตอบยอดนิยมใช้ไม่ได้ ในการรับ ubuntu 15.04 และเวิร์กสเตชัน 11.1.0 (และอาจเก่ากว่า) ทำงานเพียงทำตามคำแนะนำเหล่านี้: wiki.archlinux.org/index.php/VMware#3.19_kernels_and_up
Rqomey

"อาจเก่ากว่า" - ใช้งานไม่ได้ฉันลองกับ Ubuntu 15.04 และเวิร์กสเตชัน 10.0.2 สร้าง 1744117 :(
Yevgeniy Afanasyev

คำตอบ:


29

ฉันสามารถแก้ไขปัญหาสำหรับเคอร์เนล 3.13 โดยใช้วิธีนี้

ผู้เขียนแนะนำให้แก้ไขแหล่ง vmnet:

สร้างไฟล์vmnet313.patchในโฮมไดเร็กทอรีของคุณด้วยเนื้อหาต่อไปนี้:

205a206
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
206a208,210
> #else
> VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
> #endif
255c259,263
<    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
---
>    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
>       transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
>    #else
>       transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
>    #endif

อีกทางเลือกหนึ่งดาวน์โหลดแพทช์นี้vmnet313.patchไปยังไดเรกทอรีบ้านของคุณและเปลี่ยนชื่อเป็น ตัวอย่างเช่น:

wget "http://pastebin.com/raw.php?i=p3bkbAMu" -O vmnet313.patch

ถัดไปดำเนินการคำสั่งต่อไปนี้:

# Change directory into the vmware module source directory
cd /usr/lib/vmware/modules/source
# untar the vmnet modules
tar -xvf vmnet.tar
# run a the patch you should have just saved earlier
patch vmnet-only/filter.c < ~/vmnet313.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
# delete the previous working directory
rm -r vmnet-only
# run the vmware module build program. (alternatively just run the GUI app)
/usr/lib/vmware/bin/vmware-modconfig --console --install-all

คำสั่งสุดท้าย (หรือvmplayer) ควรจะทำงานได้สำเร็จ


5
แพทช์ที่ระบุไว้ในaskubuntu.com/questions/414783/…พร้อมการอัปเดตสำหรับความผิดพลาดได้ผลสำหรับฉัน
speeves

Linux xxx-OptiPlex-7010 3.13.0-32-generic # 57 ~ precision1-Ubuntu SMP อังคาร 15 ก.ค. 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux; vmware: VMware® Workstation 10.0.0 build-1295980 แพทช์นี้เป็น PASS
QJGui

การแก้ปัญหายังนำไปใช้กับข้อผิดพลาดประเภท 'VNetFilterHookFn' ในวันที่ 10.0.1 เมื่อ 14.04
RobotHumans

2
/usr/lib/vmware/bin/vmware-modconfig --console --install-allบอกว่า--consoleไม่รองรับสำหรับฉัน Failed to parse options. Unknown option --console. ฉันเพิ่งรัน vmware เพื่อเสร็จสิ้นการสร้าง
phyatt

อันนี้ใช้ได้อย่างไม่มีที่ติสำหรับฉัน อันแรกไม่อนุญาตให้แพทช์ทำงานได้สำเร็จ ขอบคุณสำหรับความเข้าใจของคุณ!
อีไล

9

การใช้ vmnet313.patch นี้รวมถึงการแก้ไขการพิมพ์ผิด (ดูคำตอบของ @ nonsleepr) แก้ไขปัญหาของฉันด้วยการอัพเกรดด้วยการอัพเกรด 9.0.2 ถึง 9.02.4 บน Ubuntu 14.04.4 LTS 64-bit Desktop

ตัวอย่างนี้เป็นเนื้อหาของpastebin.com/raw.php?i=p3bkbAMu ; แต่มีการพิมพ์ผิด 2 ที่ท้ายมาก

--- vmnet-only/filter.c 2013-10-18 23:11:55.000000000 +0400
+++ vmnet-only/filter.c 2013-12-03 04:16:31.751352170 +0400
@@ -27,6 +27,7 @@
 #include "compat_module.h"
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
+#include <linux/version.h>
 #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
 #   include <linux/module.h>
 #else
@@ -203,7 +204,11 @@
 #endif

 static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 VNetFilterHookFn(unsigned int hooknum,                 // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
+#endif
 #ifdef VMW_NFHOOK_USES_SKB
                  struct sk_buff *skb,                  // IN:
 #else
@@ -252,7 +257,14 @@

    /* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
    /* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
-   transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+    transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+#endif
+    packetHeader = compat_skb_network_header(skb);
+    ip = (struct iphdr*)packetHeader;

ตัวอย่างด้านบนนี้เป็นเนื้อหาของ " pastebin.com/raw.php?i=p3bkbAMu " แต่มีการพิมพ์ผิด 2 ประเภทที่ท้ายสุด การใช้ vmnet313.patch นี้แก้ไขปัญหาของฉันด้วยการอัพเกรดเป็น 9.0.2 ถึง 9.02.4 อัพเกรดบน Ubuntu 14.04.4 LTS เดสก์ท็อป 64 บิต
user298928

อันนี้ใช้ได้สำหรับฉันเช่นกัน ฉันจะเพิ่มความคิดเห็นภายใต้โพสต์ที่เกี่ยวข้องเพื่อชี้คนที่นี่
speeves

สิ่งนี้ยังใช้ไม่ได้กับฉันบน Ubuntu 14.04 LTS นี่เป็นข้อผิดพลาดของฉัน: ทำให้ [1]: *** [_module_ / tmp / vmware-root / modules / vmnet-only] ข้อผิดพลาด 2 ทำให้ [1]: ออกจากไดเรกทอรี/usr/src/linux-headers-3.13.0-37-generic' make: *** [vmnet.ko] Error 2 make: Leaving directory / tmp / vmware-root / modules / vmnet-only ' ไม่สามารถติดตั้ง vmnet
hsnm

ฉันได้รับ "Hunk # 3 สำเร็จที่ 257 ด้วย fuzz 2" แต่ข้อผิดพลาดยังคงเกิดขึ้น ดูเหมือนว่ามีบางสิ่งเปลี่ยนแปลงไปตั้งแต่คุณโพสต์โปรแกรมแก้ไขนี้ ฉันใช้เคอร์เนล 3.13.0-37-generic
cxrodgers

5

ฉันพบปัญหาเดียวกันทั้งหมดแล้ว (Linux Mint 17, เคอร์เนล 3.17 )

วิธีแก้ปัญหาที่พบคือ:

# - as root user
$ cd /usr/lib/vmware/modules/source
$ tar -xvf vmnet.tar
# - edit the file vmnet-only/netif.c and replace the line that looks like
    dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
to
    dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);
$ tar -cvf vmnet.tar vmnet-only/
$ rm -rf vmnet-only/

จากนั้นเรียกใช้ vmplayer อีกครั้ง

แหล่ง


ขอบคุณนี่เป็นเคล็ดลับสำหรับฉันใน Ubuntu 15.04 เคอร์เนล 3.19.0-15
Fabio Gomes

ทำงานให้ฉันขอบคุณ! Ubuntu 15.04, เคอร์เนล 3.19.0-20-generic
scristalli

ไม่ทำงานกับลินุกซ์มิ้นต์
Damir Olejar

4

VMware จำเป็นต้องสร้างโมดูลบางตัวเนื่องจากตัวติดตั้งไม่ได้มีรุ่นที่ถูกต้องสำหรับระบบของคุณ

ติดตั้งการสร้างที่จำเป็น

sudo apt-get install build-essential

สิ่งนี้จะติดตั้งคอมไพเลอร์และความต้องการอื่น ๆ ทั้งหมด รีบูตและลองเรียกใช้ vmware อีกครั้งสิ่งนี้ควรแก้ไข


ด้วยเหตุผลแยกอื่น ๆ ฉันติดตั้งอูบุนตูแล้วพร้อมกับเครื่องเล่น vmware แต่ตอนนี้ทุกครั้งที่ฉันเรียกใช้เดสก์ท็อป GNOME ของฉันก็จะพัง มีความคิดใดว่าเหตุใดและควรสร้างไฟล์บันทึกใดที่นี่ ขอบคุณ ~
harayz

3

หากคุณอัพเกรด 12.04 Hardware Enablement Stack เป็นเวอร์ชั่น 14.04 โดยไม่ต้องอัพเกรดทั้งระบบให้สมบูรณ์โมดูล vmnet อาจไม่สามารถคอมไพล์สำหรับ vmplayer 6.0.1 ได้ ทางออกของฉันคือการอัพเกรดเป็น 6.0.3 vmplayer ล่าสุด ไม่มีปัญหาหลังจากนั้น


1

ฉันอัพเดตเคอร์เนลอิมเมจเป็น "linux-image-3.13.0-43-generic" สำหรับเวอร์ชัน 3.13.0 บน 64 บิต x86 SMP ในขณะที่ใช้งาน Ubuntu Precise 12.04 ด้วย "linux-image-3.8.0-44-generic" (.. .but ไม่ได้อัพเกรด Ubuntu!)

หลังจากนั้นในขณะที่เริ่ม VMPlayer 6.0 หนึ่งในข้อความแสดงข้อผิดพลาดที่บันทึกโดย VMPLayer แสดงขึ้น "ล้มเหลวในการสร้าง vmnet.Failed เพื่อดำเนินการคำสั่ง build" และ VMPlayer ไม่สามารถเริ่มต้นได้

ฉันย้อนกลับเคอร์เนลอิมเมจโดยลบอันที่อัปเดตแล้ว

apt-get remove 3.13.0-43-generic

ลบส่วนหัวลินุกซ์ที่ปรับปรุงแล้วด้วย

sudo apt-get autoremove

ตอนนี้เคอร์เนลอิมเมจกลับไปเป็นอันก่อนหน้า:

cat / proc / version: รุ่น Linux 3.8.0-44-generic (buildd @ tipua) (รุ่น gcc 4.6.3 (Ubuntu / Linaro 4.6.3-1ubuntu5)) # 66 ~ precision1-Ubuntu SMP อังคาร 15 ก.ค. 04:01 : 04 UTC 2014

หลังจากนั้น VMPlayer 6.0 กลับมาเป็นปกติและตอนนี้ทำงานได้อย่างถูกต้อง


1

ทางออกก็คือการเปลี่ยนกับการทำงานอย่างใดอย่างหนึ่งที่นำมาจาก/usr/lib/vmware/modules/source/vmnet.tar VMware-Player-7.1.bundleคุณไม่ต้องรอให้ตัวติดตั้งเสร็จสิ้นเพียงแค่คัดลอกไฟล์ไปที่อื่นแล้วยกเลิก เรียกใช้ถัดไปVMware-Workstation10.bundle(ในกรณีของฉัน) แทนที่vmnet.tarและเรียกใช้เวิร์กสเตชันที่ทำงานของคุณ


1

vmware รุ่นของฉันไม่ได้รวม filter.c; ฉันพบว่าฉันจำเป็นต้องแก้ไข vmnet โดยใช้โปรแกรมแก้ไขที่ระบุไว้ที่นี่:

https://communities.vmware.com/message/2531821

diff -ur vmnet-only.a/driver.c vmnet-only/driver.c
--- vmnet-only.a/driver.c    2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/driver.c    2015-02-09 15:40:10.916640592 -0500
@@ -265,10 +265,17 @@
 {
    int ret = -ENOTTY;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
       ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
    }
    return ret;
+#else
+   if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+      ret = VNetFileOpIoctl(filp->f_path.dentry->d_inode, filp, iocmd, ioarg);
+   }
+   return ret;
+#endif
 }


@@ -1191,11 +1198,19 @@
    struct inode *inode = NULL;
    long err;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_dentry) {
       inode = filp->f_dentry->d_inode;
    }
    err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
    return err;
+#else
+   if (filp && filp->f_path.dentry) {
+      inode = filp->f_path.dentry->d_inode;
+   }
+   err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+   return err;
+#endif
 }
 #endif

diff -ur vmnet-only.a/userif.c vmnet-only/userif.c
--- vmnet-only.a/userif.c    2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/userif.c    2015-02-09 15:41:02.150847338 -0500
@@ -523,7 +523,13 @@
       .iov_base = buf,
       .iov_len  = len,
    };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    return skb_copy_datagram_iovec(skb, 0, &iov, len);
+#else
+   struct iov_iter to;
+   iov_iter_init(&to, READ, &iov, 1, len);
+   return skb_copy_datagram_iter(skb, 0, &to, len);
+#endif
 }

1

สำหรับฉันการแก้ปัญหาเหล่านี้ไม่ได้ผล ฉันใช้อูบุนตู 14 ดังนั้นฉันไปในการสืบเสาะและพบว่าการแก้ปัญหาที่นี่

คำสั่งดังต่อไปนี้:

sudo apt-get install build-essential linux-headers-`uname -r`

ภายใต้ระบบ 32 บิตคุณสามารถติดตั้ง VMware Player ด้วยคำสั่งต่อไปนี้:

mkdir ~/VMware && cd ~/VMware 
wget -c http://goo.gl/kkfRJg -O VMware-Player-i386.bundle.tar 
tar -xvf VMware-Player-i386.bundle.tar 
chmod +x VMware-Player-6.0.1-1379776.i386.bundle  
sudo sh VMware-Player-6.0.1-1379776.i386.bundle
mkdir ~/VMware && cd ~/VMware 
wget -c http://goo.gl/Uxia2s -O VMware-Player-x86_64.bundle.tar 
tar -xvf VMware-Player-x86_64.bundle.tar 
chmod +x VMware-Player-6.0.1-1379776.x86_64.bundle 
sudo sh VMware-Player-6.0.1-1379776.x86_64.bundle

หลังจากการติดตั้งทุกอย่างทำงานได้ดีและฉันก็สามารถเมานต์ Windows XP VM ด้วยปัญหาที่น้อยที่สุด ฉันต้องอัปเดตไดรเวอร์อีกสองสามตัว แต่ก็ทำได้โดยไม่มีปัญหา VMWare Player 6 น่าจะเป็นอันที่ทำงานได้ดีที่สุดกับ Ubuntu เวอร์ชันของฉัน


สำหรับแพ็คเกจ linux-headers มี metapackage "linux-headers-amd64" ซึ่งจะติดตั้งรุ่นล่าสุดโดยไม่จำเป็นต้องระบุรุ่นเคอร์เนลคงที่ด้วยตนเอง
พื้นฐาน 6

0

สิ่งนี้ใช้ได้กับฉันใน lubuntu 18.04 LTS ฉันใช้ vmware-player-14.0.0-6661328.x86_64.bundle หลังจากดาวน์โหลดและติดตั้ง vmplayer เมื่อฉัน lauch มันพยายามสร้างโมดูล แต่ล้มเหลว ที่จะแก้ไขได้คุณต้องดาวน์โหลดแพทช์จาก braunch นี้: https://github.com/mkubecek/vmware-host-modules/tree/player-14.1.1 อย่าดาวน์โหลดต้นแบบเนื่องจาก:

ไม่สามารถใช้ "มาสเตอร์" ของสาขาเพื่อสร้างโมดูลได้ แต่จะมีเฉพาะไฟล์ทั่วไปเพื่อให้การเปลี่ยนแปลงนั้นสามารถรวมเข้ากับสาขาอื่น ๆ ทั้งหมดได้อย่างง่ายดาย หากต้องการรับแหล่งข้อมูลที่แท้จริงให้ชำระเงินที่สาขา "ของจริง"

หลังจากดาวน์โหลดแกะและซีดีลงใน dir ที่แยกแล้วและทำ

make
sudo make install

ตอนนี้เริ่ม vmplayer และควรจะทำงาน

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