ErmaC Posted March 22, 2015 Share Posted March 22, 2015 (edited) Salve a tutti.Posto una semplice procedura (che ritengo veramente utile) facendo una premessa:PREMESSA >>Non mi prendo assolutamente nessun merito per la procedura in quanto non sono l'autore,le informazioni raccolte in questo topic provengono da qui-> https://wiki.archlinux.org/index.php/VMwareho semplicemente trascritto in italiano la procedura. FINE PREMESSATESTATO e FUNZIONANTE con VMware Workstation 11.0.0 (2305329) e VMware Workstation 11.1.0 (2496824) Se siete utilizzatori di VMWare su Linux e avete recentemente aggiornato il vostro Kernel alla versione 3.19+ oppure volete installare VMWare sul nuovo ubuntu 15.04 ad esempio (che ora viene di serie con il kernel 3.19+) vi ritroverete con il problema come mostrato in figura... seguito da Seguendo ed applicando la patch consigliate sono riuscito a compilare i moduli di VMWare ed utilizzare nuovamente VMWare Workstation. Apriamo il terminale: Diamo i privilegi di root sudo -E -s Cambiamo cartella cd /usr/lib/vmware/modules/source Scompattiamo il file vmnet.tar tar -xf vmnet.tar Creiamo il file da usare come patch (vmnet-3.19.patch) che verrà creato nella cartella /temp cat << EOF > /tmp/vmnet-3.19.patch 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 } EOF Applichiamo la patch patch -p0 -i /tmp/vmnet-3.19.patch Ricomprimiamo vmnet-only tar -cf vmnet.tar vmnet-only Eliminiamo la cartella generata dalla decompressione rm -r *-only Ricompiliamo i moduli vmware-modconfig --console --install-all Usciamo da root exit Finalmente!!! Prova unlocker 2.0.4 su VMware Workstation 11.1.0 (2496824) su kernel 3.19 appena ripristinato per avvio OS X Perfetto! Buona virtualizzazione.ErmaC Edited March 24, 2015 by ErmaC Aggiornamento 2 Link to comment Share on other sites More sharing options...
Recommended Posts