Unable to reinstall parallels tools on Debian Bullseye

gaoc

Bit poster
Trying to reinstall parallels tools by following https://kb.parallels.com/en/124805, select upgrade tools on prompt, then installation crashes.

Error in /var/log/parallels-tools-install.log

Code:
Register service to install new Guest Tools
Perform installation into the /usr/lib/parallels-tools directory
make: Entering directory '/usr/lib/parallels-tools/kmods'
Will use compiler CC="cc".
Compiler version "cc (Debian 9.3.0-11) 9.3.0"
cd prl_eth/pvmnet && make CC=cc
make[1]: Entering directory '/usr/lib/parallels-tools/kmods/prl_eth/pvmnet'
make -C /lib/modules/5.6.0-1-amd64/build M=/usr/lib/parallels-tools/kmods/prl_eth/pvmnet CC=cc
make[2]: Entering directory '/usr/src/linux-headers-5.6.0-1-amd64'
  AR      /usr/lib/parallels-tools/kmods/prl_eth/pvmnet/built-in.a
  CC [M]  /usr/lib/parallels-tools/kmods/prl_eth/pvmnet/pvmnet.o
  LD [M]  /usr/lib/parallels-tools/kmods/prl_eth/pvmnet/prl_eth.o
  MODPOST 1 modules
  CC [M]  /usr/lib/parallels-tools/kmods/prl_eth/pvmnet/prl_eth.mod.o
  LD [M]  /usr/lib/parallels-tools/kmods/prl_eth/pvmnet/prl_eth.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.6.0-1-amd64'
make[1]: Leaving directory '/usr/lib/parallels-tools/kmods/prl_eth/pvmnet'
cd prl_tg/Toolgate/Guest/Linux/prl_tg && make CC=cc
make[1]: Entering directory '/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg'
1: /lib/modules/5.6.0-1-amd64/build
2: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg
3: 20200508
4: 1.7.0
Start compile prl_tg...
make -C /lib/modules/5.6.0-1-amd64/build M=/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg SRCROOT=/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg CC=cc modules
make[2]: Entering directory '/usr/src/linux-headers-5.6.0-1-amd64'
1: /lib/modules/5.6.0-1-amd64/build
2: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg
3: 20200508
4: 1.7.0
  CC [M]  /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o
/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prltg_proc_create_data':
/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:405:46: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
  405 |  return proc_create_data(name, mode, parent, fops, data);
      |                                              ^~~~
      |                                              |
      |                                              struct file_operations *
In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:10:
/usr/src/linux-headers-5.6.0-1-common/include/linux/proc_fs.h:59:31: note: expected 'const struct proc_ops *' but argument is of type 'struct file_operations *'
   59 | extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
      |                               ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-5.6.0-1-common/scripts/Makefile.build:273: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o] Error 1
make[3]: *** [/usr/src/linux-headers-5.6.0-1-common/Makefile:1696: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-5.6.0-1-amd64'
make[2]: *** [/usr/src/linux-headers-5.6.0-1-common/Makefile:180: sub-make] Error 2
make[1]: Leaving directory '/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg'
make[1]: *** [Makefile:42: prl_tg] Error 2
make: Leaving directory '/usr/lib/parallels-tools/kmods'
make: *** [Makefile.kmods:31: compile] Error 2
Error: could not build kernel modules
Error during report about failed installation of parallels tools.
Error: failed to upgrade Parallels Guest Tools!
2020-05-08T10:10:04+0800: Started installation of Parallels Guest Tools version '15.1.4.47270'
Error during report about start installation of parallels tools.

Fri May 8 10:09:53 CST 2020
Start installation or upgrade of Guest Tools
Remove tools according to /var/lib/parallels-tools/.backup/.tools.list file
rmdir: failed to remove '/etc/prltools': No such file or directory
Removing of X server configuration is skipped.
DKMS modules were removed successfully
Start removal of prl_eth kernel module
Error: could not unload prl_eth kernel module
Start removal of prl_tg kernel module
Error: could not unload prl_tg kernel module
Start removal of prl_vid kernel module
Error: could not unload prl_vid kernel module
Start removal of prl_fs kernel module
Error: could not unload prl_fs kernel module
Start removal of prl_fs_freeze kernel module
Error: could not unload prl_fs_freeze kernel module
Remove kernel modules according to /var/lib/parallels-tools/.backup/.kmods.list file
/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prltg_proc_create_data':
/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:405:46: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
  405 |  return proc_create_data(name, mode, parent, fops, data);
      |                                              ^~~~
      |                                              |
      |                                              struct file_operations *
In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:10:
/usr/src/linux-headers-5.6.0-1-common/include/linux/proc_fs.h:59:31: note: expected 'const struct proc_ops *' but argument is of type 'struct file_operations *'
   59 | extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
      |                               ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-5.6.0-1-common/scripts/Makefile.build:273: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o] Error 1
make[3]: *** [/usr/src/linux-headers-5.6.0-1-common/Makefile:1696: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg] Error 2
make[2]: *** [/usr/src/linux-headers-5.6.0-1-common/Makefile:180: sub-make] Error 2
make[1]: *** [Makefile:42: prl_tg] Error 2
make: *** [Makefile.kmods:31: compile] Error 2
Error: could not build kernel modules
Error during report about failed installation of parallels tools.
Error: failed to upgrade Parallels Guest Tools!
2020-05-08T10:10:04+0800: execCmd: ./install --install [167]
2020-05-08T10:10:04+0800: Error: An error occurred when installing Parallels Tools. Please go to /var/log/parallels-tools-install.log for more information.

After failed installation, system hangs in booting process.
Screen Shot 2020-05-08 at 10.17.59.png
 
I am using Mac Parallels Version 15.1.4 (47270) and installing Parallels Tools for Kali Linux 5.6 (2020-05-12) fails using the article here.
This is due to changes in the kernel v5.6 by commits 97a32539b9568bb653683349e5a76d02ff3c3e2c and d56c0d45f0e27f814e87a1676b6bdccccbc252e9, where include/linux/proc_fs.h changes "file_operations" to "proc_ops" in the arguments of proc_create and proc_create_data.
To fix the issues we need to:
  1. Mount Parallels Tools CD using Parallels Menu
  2. Create directories and copy installer to local disk:
    Code:
    mkdir pt
    mkdir ptmod
    cd pt
    cp -r /media/cdrom0/* .
  3. Unpack prl_mod.tar.gz to a "Work directory" (ptmod):
    Code:
    cd ptmod
    tar -xzf ../pt/kmods/prl_mod.tar.gz .
  4. Enter work directory (ptmod) and edit files in the following directories:
    prl_fs/SharedFolders/Guest/Linux/prl_fs/
    - prlfs_compat.h
    - super.c
    prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze
    - prl_fs_freeze.c
    - prlfs_freeze_compat.h
    prl_tg/Toolgate/Guest/Linux/prl_tg
    - prltg_common.h
    - prltg.c
    prl_vid/Video/Guest/Linux/kmod
    - prlvtg.c
    To check we have a successful edit, in each directory build by:
    Code:
    make
    Then clean the directory, before leaving
    make clean
  5. When finished editing, check that all builds by:
    Code:
    cd ptmod
    make -f Makefile.kmods
    Then clean the directory
    make -f Makefile.kmods clean
  6. Repackage the files in "Work directory" (ptmod):
    Code:
    tar -zcvf prl_mod.tar.gz .
  7. Copy prl_mod.tar.gz to pt/kmods replacing the original
    Code:
    sudo mv prl_mod.tar.gz ../pt/kmods/.
  8. Install Parallels Tools
    Code:
    cd pt
    sudo ./install
To save you the work of doing the same edits, I would love to upload my modified prl_mod.tar.gz. However, due to forum restrictions and Parallels Copyright in the files, I can't. Hopefully, Parallels will issue an update which fixes the issue.
 
  1. Enter work directory (ptmod) and edit files in the following directories:
    prl_fs/SharedFolders/Guest/Linux/prl_fs/
    - prlfs_compat.h
    - super.c
    prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze
    - prl_fs_freeze.c
    - prlfs_freeze_compat.h
    prl_tg/Toolgate/Guest/Linux/prl_tg
    - prltg_common.h
    - prltg.c
    prl_vid/Video/Guest/Linux/kmod
    - prlvtg.c
    To check we have a successful edit, in each directory build by:
    Code:
    make
    Then clean the directory, before leaving
    make clean
What did you mean with "edit files" - what should I edit? Means the "-" that I should delete the files?
 
I am using Mac Parallels Version 15.1.4 (47270) and installing Parallels Tools for Kali Linux 5.6 (2020-05-12) fails using the article here.
This is due to changes in the kernel v5.6 by commits 97a32539b9568bb653683349e5a76d02ff3c3e2c and d56c0d45f0e27f814e87a1676b6bdccccbc252e9, where include/linux/proc_fs.h changes "file_operations" to "proc_ops" in the arguments of proc_create and proc_create_data.
To fix the issues we need to:
Thank you very much for this - I used it to get tools running on Arch Linux 2020.05.01, which has kernel 5.6.8.
To add a bit more info for anyone else trying this: the file edits consist of making two changes: (1) "file_operations" becomes "proc_ops" in all the .c and .h files listed, and (2) updating a struct initializer in each of the .c files listed.
The struct initializers change as follows:
  • Delete ".owner = THIS_MODULE" because the field no longer exists
  • llseek -> proc_lseek
  • unlocked_ioctl -> proc_ioctl
  • For anything else, just prepend "proc_" - e.g., foo -> proc_foo
 
I am using Mac Parallels Version 15.1.4 (47270) and installing Parallels Tools for Kali Linux 5.6 (2020-05-12) fails using the article here.
This is due to changes in the kernel v5.6 by commits 97a32539b9568bb653683349e5a76d02ff3c3e2c and d56c0d45f0e27f814e87a1676b6bdccccbc252e9, where include/linux/proc_fs.h changes "file_operations" to "proc_ops" in the arguments of proc_create and proc_create_data.
To fix the issues we need to:
  1. Mount Parallels Tools CD using Parallels Menu
  2. Create directories and copy installer to local disk:
    Code:
    mkdir pt
    mkdir ptmod
    cd pt
    cp -r /media/cdrom0/* .
  3. Unpack prl_mod.tar.gz to a "Work directory" (ptmod):
    Code:
    cd ptmod
    tar -xzf ../pt/kmods/prl_mod.tar.gz .
  4. Enter work directory (ptmod) and edit files in the following directories:
    prl_fs/SharedFolders/Guest/Linux/prl_fs/
    - prlfs_compat.h
    - super.c
    prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze
    - prl_fs_freeze.c
    - prlfs_freeze_compat.h
    prl_tg/Toolgate/Guest/Linux/prl_tg
    - prltg_common.h
    - prltg.c
    prl_vid/Video/Guest/Linux/kmod
    - prlvtg.c
    To check we have a successful edit, in each directory build by:
    Code:
    make
    Then clean the directory, before leaving
    make clean
  5. When finished editing, check that all builds by:
    Code:
    cd ptmod
    make -f Makefile.kmods
    Then clean the directory
    make -f Makefile.kmods clean
  6. Repackage the files in "Work directory" (ptmod):
    Code:
    tar -zcvf prl_mod.tar.gz .
  7. Copy prl_mod.tar.gz to pt/kmods replacing the original
    Code:
    sudo mv prl_mod.tar.gz ../pt/kmods/.
  8. Install Parallels Tools
    Code:
    cd pt
    sudo ./install
To save you the work of doing the same edits, I would love to upload my modified prl_mod.tar.gz. However, due to forum restrictions and Parallels Copyright in the files, I can't. Hopefully, Parallels will issue an update which fixes the issue.

I tried to modify all the files you mentioned, but when I try
Code:
 make
, it failed, e.g. in the directory prl_fs/SharedFolders/Guest/Linux/prl_fs/, the errors say:
Screen Shot 2020-05-31 at 20.22.50.png
then I search "call_tg_sync", it appears in several files
Screen Shot 2020-05-31 at 20.24.22.png
I go the file directory where it is defined and
Code:
 make
again, here no errors
Screen Shot 2020-05-31 at 20.25.25.png
The test is under openSUSE tumbleweek with kernel 5.6.14-1. I also did test on Fedora 32 with kernel 5.6.6-300 which also failed. Can you share the prl_mod.tar.gz in your github? Thank you.
 
I tried to modify all the files you mentioned, but when I try
Code:
 make
, it failed, e.g. in the directory prl_fs/SharedFolders/Guest/Linux/prl_fs/, the errors say:

Looks like you messed up editing the files in prl_fs/SharedFolders/Guest/Linux/prl_fs.

To save you the work of doing the same edits, I would love to upload my modified prl_mod.tar.gz. However, due to forum restrictions and Parallels Copyright in the files, I can't. Hopefully, Parallels will issue an update which fixes the issue.

Damn, MacDog is doing free work for the Parallels team and they won't even accept his contribution. It's not worth the annual fee for Parallels Pro if I have to not only search for the solution for this problem but also have to edit multiple files. Perhaps MacDog could have published a diff patch and a one-liner to fix everything for us, but I wouldn't encourage him to let a for-profit company benefit from his free labor. But thank you MacDog and PeteB2 for both posting a solution, it worked for me.

I wonder if VMware users have to deal with this. This is not the first time I've been unable to install Parallels Tools on a new Linux kernel. Previously I've had to wait a month or more for them to issue an update. I'm considering buying VMware Workstation for my Windows Bootcamp and just running the macOS partition as the guest... oh, look at that, my Parallels license renews tomorrow.
 
mhzhao, I had the same problem as you with not finding call_tg_sync. I found the answer in this post: #11 which allowed the compilation to continue and it was successful.

æsc, VMware Fusion has not exhibited these problems in my experience. I've been using it in parallel with Parallels (pun intended) for two of the kernel updates now that broke parallels tools and VMware tools were unaffected. The biggest drawback for me is VMware Fusion's lack of integration with Time Machine, meaning every change to the VM causes a full backup of the virtual hard drive every time. This is why I still use Parallels Desktop.
 
I am using Mac Parallels Version 15.1.4 (47270) and installing Parallels Tools for Kali Linux 5.6 (2020-05-12) fails using the article here.
This is due to changes in the kernel v5.6 by commits 97a32539b9568bb653683349e5a76d02ff3c3e2c and d56c0d45f0e27f814e87a1676b6bdccccbc252e9, where include/linux/proc_fs.h changes "file_operations" to "proc_ops" in the arguments of proc_create and proc_create_data.
To fix the issues we need to:
  1. Mount Parallels Tools CD using Parallels Menu
  2. Create directories and copy installer to local disk:
    Code:
    mkdir pt
    mkdir ptmod
    cd pt
    cp -r /media/cdrom0/* .
  3. Unpack prl_mod.tar.gz to a "Work directory" (ptmod):
    Code:
    cd ptmod
    tar -xzf ../pt/kmods/prl_mod.tar.gz .
  4. Enter work directory (ptmod) and edit files in the following directories:
    prl_fs/SharedFolders/Guest/Linux/prl_fs/
    - prlfs_compat.h
    - super.c
    prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze
    - prl_fs_freeze.c
    - prlfs_freeze_compat.h
    prl_tg/Toolgate/Guest/Linux/prl_tg
    - prltg_common.h
    - prltg.c
    prl_vid/Video/Guest/Linux/kmod
    - prlvtg.c
    To check we have a successful edit, in each directory build by:
    Code:
    make
    Then clean the directory, before leaving
    make clean
  5. When finished editing, check that all builds by:
    Code:
    cd ptmod
    make -f Makefile.kmods
    Then clean the directory
    make -f Makefile.kmods clean
  6. Repackage the files in "Work directory" (ptmod):
    Code:
    tar -zcvf prl_mod.tar.gz .
  7. Copy prl_mod.tar.gz to pt/kmods replacing the original
    Code:
    sudo mv prl_mod.tar.gz ../pt/kmods/.
  8. Install Parallels Tools
    Code:
    cd pt
    sudo ./install
To save you the work of doing the same edits, I would love to upload my modified prl_mod.tar.gz. However, due to forum restrictions and Parallels Copyright in the files, I can't. Hopefully, Parallels will issue an update which fixes the issue.

Thanks for this. It worked. I've uploaded the .tar.gz here: https://drive.google.com/file/d/1G_dR3wB4hTX4Kj2KBtnZE3GvZ_W9bQEO/view?usp=sharing
 
Back
Top