首先VMware 11的支持名单中还没有Ubuntu Kylin 15.04,实质上该版本不支持Linux 3.19内核,下面有网友给出解决方法,碰到这个问题的请试一试。
解决方法:
$ cd /usr/lib/vmware/modules/source
$ sudo tar -xvf vmnet.tar
修改 driver.c 和 userif.c:
在 vmnet-only/driver.c 267 行
把:
if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
}
return ret;
}
变为:
#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
}
在 1194 行把:
if (filp && filp->f_dentry) {
inode = filp->f_dentry->d_inode;
}
err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
return 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
在 vmnet-only/userif.c – 526 行把:
return skb_copy_datagram_iovec(skb, 0, &iov, 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
$ sudo tar -cvf vmnet.tar vmnet-only/
$ sudo rm -rf vmnet-only/
$ sudo vmware-modconfig –console –install-all
解决Ubuntu15.04中VMware workstaion无法打开:http://www.linuxdiyf.com/linux/11979.html
安装Ubuntu Kylin VM虚拟机并安装VMware tools:http://www.linuxdiyf.com/linux/11814.html