Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save ntamvl/77a6126027ae161aed22f80b029598b9 to your computer and use it in GitHub Desktop.

Select an option

Save ntamvl/77a6126027ae161aed22f80b029598b9 to your computer and use it in GitHub Desktop.
Parallels Tools fix for Ubuntu 18.04 and other Linux distributions with Kernel version >= 4.15

Preparation

  • In open Ubuntu 18.04 machine click Parallels Actions -> "Install Parallels Tools"

  • A "Parallels Tools" CD will popup on your Ubuntu desktop.

  • Open it by double mouse click, copy all the content to a new, empty directory on a desktop, let's name it "parallels_fixed"

  • Open terminal, change directory to parallels_fixed (cd ~/Desktop/parallels_fixed)

  • Make command line installer executable (chmod +x install)

  • Change directory to "installer" now (cd installer)

  • Run this command to make few scripts executable: "chmod +x installer.* .sh prl_"

We have to modifiy some files, let's prepare:

  • Go to kmods directory (cd ~/Desktop/parallels_fixed/kmods) and extract the files (tar -xzf prl_mod.tar.gz)
  • Remove prl_mod.tar.gz file from that directory.

Changing file 1/3

  • Go to "prl_eth/pvmnet/" (cd ~/Desktop/parallels_fixed/kmods/prl_eth/pvmnet) directory
  • Open "pvmnet.c" file in a text editor
  • Edit line 438:
  MODULE_LICENSE("Parallels");

to MODULE_LICENSE("GPL");

  • Save

Changing file 2/3

  • Go to "prl_tg/Toolgate/Guest/Linux/prl_tg/" (cd ~/Desktop/parallels_fixed/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg) directory
  • Open "prltg.c" file in a text editor
  • Edit line 1535: MODULE_LICENSE("Parallels"); to MODULE_LICENSE("GPL");
  • Save

Changing file 3/3

  • Go to "prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/" (cd ~/Desktop/parallels_fixed/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze)

  • Open "prl_fs_freeze.c" file in a text editor

  • in line 212 you will find a function "thaw_timer_fn": ` void thaw_timer_fn(unsigned long data) { struct work_struct *work = (struct work_struct *)data;

    schedule_work(work); } `

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment