Unable to reinstall parallels tools on Debian Bullseye

Discussion in 'Linux Virtual Machine' started by gaoc, May 7, 2020.

  1. gaoc

    gaoc Bit poster

    Messages:
    1
    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
     
  2. cpdpa

    cpdpa Bit poster

    Messages:
    2
    yep, I have the same issue. Parallels Tools is not compatible with latest Debian Bullseye.
     
  3. MichaelL40

    MichaelL40 Bit poster

    Messages:
    1
    I have exact same issue but with Fedora 32.
     
    VitK likes this.
  4. -Overlord-

    -Overlord- Bit poster

    Messages:
    8
    I have the same issue with Kali 2020.2.
     
  5. MacDog

    MacDog Bit poster

    Messages:
    4
    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.
     
    cellsheet, VitK, æsc and 1 other person like this.
  6. -Overlord-

    -Overlord- Bit poster

    Messages:
    8
    What did you mean with "edit files" - what should I edit? Means the "-" that I should delete the files?
     
  7. -Overlord-

    -Overlord- Bit poster

    Messages:
    8
    Can't edit this - think I found it in the two links from your post ;)
     
  8. MacDog

    MacDog Bit poster

    Messages:
    4
    Then you are on the right track. The files listed under each directory (- filename) is the ones you need to change.
     
  9. PeteB2

    PeteB2 Bit poster

    Messages:
    1
    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
     
    PaulL12 likes this.
  10. mhzhao

    mhzhao Bit poster

    Messages:
    3
    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.
     
  11. æsc

    æsc Bit poster

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

    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.
     
  12. TrustedComputer

    TrustedComputer Member

    Messages:
    25
    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.
     
  13. AsutoshS

    AsutoshS Bit poster

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

Share This Page