ในการแก้ไขปัญหานี้เราจะต้องใช้ตัวปะแก้นี้กับ 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
ช่วยด้วย