-
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, name it for e.g. "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" (
cd installer
) -
Make few other scripts executable:
chmod +x installer.* *.sh prl_*
- 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 (
rm prl_mod.tar.gz
)
- 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
- 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
- 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);
}
Change it to:
void thaw_timer_fn(unsigned long data)
{
struct work_struct *work = (struct work_struct *)data;
schedule_work(work);
}
void thaw_timer_fn_new_kernel(struct timer_list *data)
{
struct work_struct *work = data->expires;
schedule_work(work);
}
Then change a line 220 from:
DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));
to
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
DEFINE_TIMER(thaw_timer, thaw_timer_fn_new_kernel);
#else
DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));
#endif
- Go to kmods directory (
cd ~/Desktop/parallels_fixed/kmods
) and zip:tar -zcvf prl_mod.tar.gz . dkms.conf Makefile.kmods
- Now you should see "prl_mod.tar.gz" file in this directory
- Go one level up (
cd ../
orcd ~/Desktop/parallels_fixed
) and install it by runningsudo ./install
In case of problems with Sharing Folder try to sudo chmod +x /usr/bin/prlfsmountd
. (Suggested by @macdoor - Thanks!)
First two changes are hacks, changing licensing type and i cannot post complete, built package. Third file change was needed as backward incompatible changes were released in version 4.15 of the Linux kernel, on November 2017 by Linus. https://github.com/torvalds/linux/blob/master/include/linux/time.h
If someone also get errors below:
and further error:
or something like that:
you can ref these two links to solve:
https://gist.github.com/mag911/1a5583a766467d6023584d738cee0d98
acooks/tn40xx-driver#9