Jump to content

VMWare Workstation 11.x e Kernel 3.19.x


ErmaC
 Share

1 post in this topic

Recommended Posts

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/VMware
ho semplicemente trascritto in italiano la procedura. FINE PREMESSA

TESTATO 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...
 
001.png
seguito da
002.png
003.png


 
Seguendo ed applicando la patch consigliate sono riuscito a compilare i moduli di VMWare ed utilizzare nuovamente VMWare Workstation.
  • Apriamo il terminale:

    004.png
  • Diamo i privilegi di root
    sudo -E -s
    005.png
  • Cambiamo cartella
    cd /usr/lib/vmware/modules/source
    006.png
  • Scompattiamo il file vmnet.tar
    tar -xf vmnet.tar
    007.png
  • 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

    008.png

  • Applichiamo la patch
    patch -p0 -i /tmp/vmnet-3.19.patch
    009.png
  • Ricomprimiamo vmnet-only
    tar -cf vmnet.tar vmnet-only
    010.png
  • Eliminiamo la cartella generata dalla decompressione
    rm -r *-only
    011.png
  • Ricompiliamo i moduli
    vmware-modconfig --console --install-all
    012.png
  • Usciamo da root
    exit
    013.png

Finalmente!!!
014.png


 

Prova unlocker 2.0.4 su VMware Workstation 11.1.0 (2496824) su kernel 3.19 appena ripristinato per avvio OS X

015.png

 

Perfetto!

016.png

 


 

Buona virtualizzazione.

ErmaC

Edited by ErmaC
Aggiornamento
  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...