เกิดข้อผิดพลาดในการติดตั้ง Vmware Workstation บน Ubuntu


14

ฉันพยายามติดตั้ง vmware workstation 10.1 บน Ubuntu 14.04 และฉันพบข้อผิดพลาด

ฉันจะแก้ไขได้อย่างไร

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

นี่คือการดำเนินการที่ชัดเจนที่สุดของการแก้ปัญหานี้ที่ฉันได้เจอขอบคุณ สำหรับฉันบรรทัดสุดท้าย udosudo chown -R $ USER: $ USER .vmware¨จะสร้างข้อผิดพลาดนี้ การใช้ ~ / แก้ไขว่า root @ me: / usr / lib / vmware / modules / source # sudo chown -R $ USER: $ USER .vmware chown: ไม่สามารถเข้าถึง '.vmware': ไม่มีไฟล์หรือไดเรกทอรีราก @ me: / usr / lib / vmware / modules / source # sudo chown -R $ USER: $ USER ~ / .vmware
user298928

คำตอบ:


21

ในการแก้ไขปัญหานี้เราจะต้องใช้ตัวปะแก้นี้กับ filter.c ในแหล่งโมดูล VMware Player

ขั้นตอนที่ 1

สร้างไฟล์ในชื่อไดเรกทอรี tmp filter.c.diff และคัดลอกวางรหัสต่อไปนี้ init

นาโน /tmp/filter.c.diff

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

ขั้นตอนที่ 2

sudo -E -s

cd /usr/lib/vmware/modules/source/ 

cp vmnet.tar vmnet.tar.original

tar xvf vmnet.tar vmnet-only/filter.c

patch vmnet-only/filter.c < /tmp/filter.c.diff

tar -uvf vmnet.tar vmnet-only/filter.c

rm -rf vmnet-only/

หลังจากนั้นเพียงแค่เรียกใช้ vmware และมันจะทำงานได้ดี

   Starting VMware services:
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done
   Shared Memory Available                                             done

หมายเหตุ: คุณต้อง chown ไดเรกทอรี. vmware มิฉะนั้นการเปลี่ยนแปลง vmware ของคุณจะไม่ถูกบันทึก

ตัวอย่าง

sudo chown -R one:one .vmware

ที่หนึ่งคือชื่อผู้ใช้ของฉันและที่หนึ่งคือกลุ่มของฉันsudo chown -R $USER:$USER .vmware

ช่วยด้วย


แต่มันใช้ไม่ได้กับ Ubuntu 32 บิต 14.04 LTS ของฉัน
Vasu Dev Garg

จะไม่ทำงานบน Ubuntu 15.04
ubuntico

1
@ubuntico นี่เก่ามากตรวจสอบ wiki บน archlinux สำหรับ vmware workstation ผมหวังว่ามันจะช่วยให้คุณ
ซิม

2
tar: vmnet-only / filter.c: ไม่พบในไฟล์เก็บถาวร tar: ออกจากสถานะความล้มเหลวเนื่องจากข้อผิดพลาดก่อนหน้านี้
Mahdi Rashidi

2
filter.c ไม่มีอยู่สำหรับฉันtar: vmnet-only/filter.c: Not found in archive tar: Exiting with failure status due to previous errors
Katz

4

เพื่อแก้ไขปัญหาบน Ubuntu 14.10 kernel 3.17.2

ขั้นตอนที่ 1

curl http://pastie.org/pastes/9636106/download -o /tmp/vmware-3.17.patch

ขั้นตอนที่ 2

การสร้างโมดูลขึ้นใหม่ดึงข้อมูลที่มาของโมดูล:

cd /usr/lib/vmware/modules/source
for i in vmci vmmon vmnet vsock; do tar -xf $i.tar; done

ขั้นตอนที่ 3

ใช้แพทช์:

 patch -p1 -i /tmp/vmware-3.17.patch

ขั้นตอนที่ 4

สร้างคลังข้อมูลใหม่:

for i in *-only; do tar -cf ${i/-only}.tar $i; done

ขั้นตอนที่ 5

ลบสิ่งที่เหลืออยู่:

rm -r *-only

ขั้นตอนที่ 6

สร้างโมดูลใหม่:

vmware-modconfig --console --install-all

ช่วยด้วย


1
คำตอบที่น่าอัศจรรย์ใจทำงานได้อย่างสมบูรณ์ใน 3.18.0
Trevor Rudolph


3

ในการแก้ไขปัญหาบน Ubuntu 14.x kernel 3.19.x ให้รันขั้นตอนต่อไปนี้ในฐานะรูท (ในเทอร์มินัล):

  1. เข้าสู่ระบบในฐานะ root (เช่น sudo -s)

  2. ป้อนรหัสผ่านรูทของคุณ

  3. ป้อนคำสั่งเหล่านี้:

curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
cd / usr / lib / vmware / modules / source
tar -xf vmnet.tar
patch -p0 -i /tmp/vmnet-3.19.patch
mv vmnet.tar vmnet.tar.SAVED
tar -cf vmnet.tar vmnet-only
rm -r vmnet เท่านั้น
vmware-modconfig - พื้นรองเท้า - ติดตั้ง - ทั้งหมด

ทำงานได้ดีบน Ubuntu 15.04
ubuntico

พบปัญหาเดียวกันบน Ubuntu 16.04 และพยายามใช้โปรแกรมแก้ไข แต่ไม่สำเร็จ ตามที่ปรากฎว่า VM Workstation Pro รุ่นล่าสุด (รุ่น 12.1.1) มีการเปลี่ยนแปลงจากโปรแกรมแก้ไขที่ใช้งานอยู่userif.cแล้วและdriver.cไม่มีสิ่งใดที่ตรงกับรหัสโปรแกรมแก้ไข ฉันดาวน์โหลดตัวติดตั้งล่าสุดแล้วจึงรันซึ่งเพิ่งจบลงด้วยข้อความว่าทุกอย่างเป็นปัจจุบันอยู่แล้ว อย่างไรก็ตามนั่นหยุดบริการและฉันก็สามารถเริ่มต้นขึ้นและมีโมดูลรวบรวม
iisisrael

2

ฉันเพิ่งมีปัญหาเดียวกันนี้ คุณสามารถสร้างสคริปต์ที่มีสิ่งนี้:

#!/bin/bash

cat << EOF > /tmp/filter.c.patch
--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c 2013-12-21 20:15:15.000000000 -0500
@@ -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,12 @@

     /* 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;
EOF

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 < /tmp/filter.c.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
#delete the previous working directory
rm -rf vmnet-only

เพียงให้แน่ใจว่าคุณเรียกใช้มันเป็นราก จากนั้นเริ่มต้น VMWARE อีกครั้งและควรรวบรวมและเรียกใช้อีกครั้ง

ขอบคุณhttp://fazlearefin.blogspot.ca/2014/03/vmware-workstation-10-not-working-on.htmlสำหรับการสร้างสคริปต์นี้


1

นี่เป็นปัญหาในซอร์สโค้ดโมดูลเคอร์เนลที่จัดส่งพร้อมกับ VMware Player 6.0.1 เมื่อทำงานบน Linux 3.3.13

VMware ได้แก้ไขปัญหาในวันที่ 17 เมษายนใน VMware Player 6.0.2 ( https://www.vmware.com/support/player60/doc/player-602-release-notes.html ) และ VMware Workstation 10.02 ( https: // www.vmware.com/support/ws10/doc/workstation-1002-release-notes.html )

การอัพเกรดเป็นรีลีสข้างต้นจะเพิ่มการรองรับ Ubuntu 14.04 เป็น VMware

มิคเคล

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