Parallels Tools do not install on RHEL9

Discussion in 'Linux Virtual Machine' started by DariusS1, May 27, 2022.

  1. SantoshC

    SantoshC Bit poster

    Messages:
    3
    Anyone found the solution to this problem?
     
    GuillermoS2 likes this.
  2. lasse@christiansens.net

    lasse@christiansens.net Member

    Messages:
    42
    Also waiting for a solution. It happens on both RHEL9, Rocky9 and Alma9 (for pretty obvious reasons) :)
     
    LokalerA and GuillermoS2 like this.
  3. LokalerA

    LokalerA Bit poster

    Messages:
    3
    We are having the same problem here. Alma Linux 9, Parallels 18.0.2, running on Mac OS Big Sur 11.6.7, Intel Mac
     
  4. RobertE18

    RobertE18 Bit poster

    Messages:
    1
    We are also having the same problem. Alma Linux 9, Parallels 18.0.2, Running Mac OS Monterey 12.6, Intel Mac
     
  5. MaximM3

    MaximM3 Bit poster

    Messages:
    1
    Hello everyone. Have the same problem with Parallels Tools installation on RHEL-9.0 (Kernel: Linux 5.14.0-70.26.1.el9_0.x86_64)
     

    Attached Files:

  6. maumbo

    maumbo Bit poster

    Messages:
    3
    Same problem for me on Rocky Linux 9
     
  7. AlanS18

    AlanS18 Bit poster

    Messages:
    5
    Same problem here, with the latest version of Parallels installed. This seems unacceptable as the issue has been around for a long time. Can someone from Parallels fix this please?
     
  8. PaulM64

    PaulM64

    Messages:
    1
    I'm also having this issue when using Bento to generate a AlmaLinux 9 parallels vagrant box:

    Code:
    parallels-iso: Provisioning with shell script: ~/Documents/Code/bento/packer_templates/almalinux/../_common/parallels.sh
    ==> parallels-iso: + HOME_DIR=/home/vagrant
    ==> parallels-iso: + case "$PACKER_BUILDER_TYPE" in
    ==> parallels-iso: ++ awk -F. '{print $1}'
    ==> parallels-iso: ++ sed 's/^.\+ release \([.0-9]\+\).*/\1/' /etc/redhat-release
    ==> parallels-iso: + major_version=9
    ==> parallels-iso: + '[' 9 -ge 10 ']'
    ==> parallels-iso: + mkdir -p /tmp/parallels
    ==> parallels-iso: ++ uname -m
    ==> parallels-iso: + '[' aarch64 = aarch64 ']'
    ==> parallels-iso: + mount -o loop /home/vagrant/prl-tools-lin-arm.iso /tmp/parallels
    ==> parallels-iso: mount: /tmp/parallels: WARNING: source write-protected, mounted read-only.
    ==> parallels-iso: ++ cat /tmp/parallels/version
    ==> parallels-iso: + VER=18.1.0.53311
        parallels-iso: Parallels Tools Version: 18.1.0.53311
    ==> parallels-iso: + echo 'Parallels Tools Version: 18.1.0.53311'
    ==> parallels-iso: + /tmp/parallels/install --install-unattended-with-deps
        parallels-iso: Started installation of Parallels Guest Tools version '18.1.0.53311'
        parallels-iso: modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-70.30.1.el9_0.aarch64
        parallels-iso:
        parallels-iso: Tue Nov 15 22:16:39 UTC 2022
        parallels-iso: Start installation or upgrade of Guest Tools
        parallels-iso: Skipping BTF generation for /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko due to unavailability of vmlinux
        parallels-iso: Skipping BTF generation for /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/prl_fs.ko due to unavailability of vmlinux
        parallels-iso: Skipping BTF generation for /usr/lib/parallels-tools/kmods/prl_notifier/Installation/lnx/prl_notifier/prl_notifier.ko due to unavailability of vmlinux
        parallels-iso: Skipping BTF generation for /usr/lib/parallels-tools/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.ko due to unavailability of vmlinux
        parallels-iso: Start installation of prl_tg kernel module
        parallels-iso: Start installation of prl_fs kernel module
        parallels-iso: Start installation of prl_fs_freeze kernel module
        parallels-iso: Start installation of prl_notifier kernel module
        parallels-iso: Failed to resolve typeattributeset statement at /var/lib/selinux/targeted/tmp/modules/400/prltimesync/cil:35
        parallels-iso: Failed to resolve AST
        parallels-iso: semodule:  Failed!
        parallels-iso: Failed to resolve typeattributeset statement at /var/lib/selinux/targeted/tmp/modules/400/prltoolsd/cil:51
        parallels-iso: Failed to resolve AST
        parallels-iso: semodule:  Failed!
        parallels-iso: cp: cannot create regular file '/usr/share/icons/hicolor/48x48/apps/parallels-tools.png': No such file or directory
        parallels-iso: Parallels Guest Tools were installed successfully!
    I think the main issue may be this one: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-70.30.1.el9_0.aarch64
     
  9. 刘一谦

    刘一谦 Bit poster

    Messages:
    2
    Same issue here with CentOS Stream 9 on an M1 Pro macOS 13.0 host with PD 18.1.0(53311)
     

    Attached Files:

  10. sbarnea

    sbarnea Junior Member

    Messages:
    13
    I find it hilarious that Parallels claims via https://www.parallels.com/blogs/parallels-desktop-18-1/ that in 18.1.0 they fixed installation on M1 for CentOS 9 Stream, when everyone around here knows that that is not the case. The code still fails to compile with parallel tools 18.1.0.53311

    I opened a support ticket but got a reply with links about how to install parallel tools on Windows! Reopened the ticket and linked to this thread, hopefully we would have it fixed.
     
  11. WaldemarJ

    WaldemarJ Bit poster

    Messages:
    2
    18.1.53311 the problem persists with CentOS 9 Stream. Any suggestion?
     
  12. Chappy84

    Chappy84 Bit poster

    Messages:
    3
    Tried running on the latest Rocky Linux 9.1, with kernel 5.14.0-162.6.1.el9_1.0.1.x86_64, and it's not compiling, same prl_tg errors as usual:
    Code:
    2022-12-28T20:49:35+0000: 
    
    Parallels Tools 17.1.6-51584 Installer started.
    2022-12-28T20:49:35+0000: Failed to setup console printk level.
    2022-12-28T20:49:37+0000: execCmd: ./install --check [0]
    2022-12-28T20:49:37+0000: execCmd: ./installer/detect-xserver.sh -v >/dev/null 2>&1 [163]
    2022-12-28T20:49:37+0000: execCmd: ./installer/pm.sh --check gtools [0]
    Started installation of Parallels Guest Tools version '17.1.6.51584'
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    
    Wed Dec 28 20:49:37 GMT 2022
    Start installation or upgrade of Guest Tools
    Installed Guest Tools were not found
    Register service to install new Guest Tools
    Perform installation into the /usr/lib/parallels-tools directory
    make: Entering directory '/usr/lib/parallels-tools/kmods'
    awk: cmd. line:1: warning: regexp escape sequence `\#' is not a known regexp operator
    Will use compiler CC="cc".
    Compiler version "cc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2)"
    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.14.0-162.6.1.el9_1.0.1.x86_64/build
    2: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg
    3: 20221228
    4: 1.10.0
    Start compile prl_tg...
    make -C /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64/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/kernels/5.14.0-162.6.1.el9_1.0.1.x86_64'
    1: /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64/build
    2: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg
    3: 20221228
    4: 1.10.0
      CC [M]  /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_in32':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:154:32: warning: passing argument 1 of 'inl' makes integer from pointer without a cast [-Wint-conversion]
      154 |         x = inl(dev->base_addr + port);
          |                 ~~~~~~~~~~~~~~~^~~~~~
          |                                |
          |                                void *
    In file included from ./include/linux/io.h:13,
                     from ./include/linux/pci.h:39,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:7:
    ./arch/x86/include/asm/io.h:267:41: note: expected 'int' but argument is of type 'void *'
      267 | static inline unsigned type in##bwl(int port)                           \
          |                                     ~~~~^~~~
    ./arch/x86/include/asm/io.h:322:1: note: in expansion of macro 'BUILDIO'
      322 | BUILDIO(l, , int)
          | ^~~~~~~
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out32':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:169:34: warning: passing argument 2 of 'outl' makes integer from pointer without a cast [-Wint-conversion]
      169 |         outl(val, dev->base_addr + port);
          |                   ~~~~~~~~~~~~~~~^~~~~~
          |                                  |
          |                                  void *
    In file included from ./include/linux/io.h:13,
                     from ./include/linux/pci.h:39,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:7:
    ./arch/x86/include/asm/io.h:261:54: note: expected 'int' but argument is of type 'void *'
      261 | static inline void out##bwl(unsigned type value, int port)              \
          |                                                  ~~~~^~~~
    ./arch/x86/include/asm/io.h:322:1: note: in expansion of macro 'BUILDIO'
      322 | BUILDIO(l, , int)
          | ^~~~~~~
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:179:14: warning: assignment to 'long unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
      179 |         port += dev->base_addr;
          |              ^~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_write':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:255:30: error: implicit declaration of function 'PDE_DATA'; did you mean 'NODE_DATA'? [-Werror=implicit-function-declaration]
      255 |         struct tg_dev *dev = PDE_DATA(FILE_DENTRY(filp)->d_inode);
          |                              ^~~~~~~~
          |                              NODE_DATA
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:255:30: warning: initialization of 'struct tg_dev *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    In file included from ./include/linux/printk.h:7,
                     from ./include/linux/kernel.h:20,
                     from ./include/linux/list.h:9,
                     from ./include/linux/module.h:12,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:5:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_probe_common':
    2022-12-28T20:49:38+0000: Started installation of Parallels Guest Tools version '17.1.6.51584'
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    
    Wed Dec 28 20:49:37 GMT 2022
    Start installation or upgrade of Guest Tools
    awk: cmd. line:1: warning: regexp escape sequence `\#' is not a known regexp operator
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_in32':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:154:32: warning: passing argument 1 of 'inl' makes integer from pointer without a cast [-Wint-conversion]
      154 |         x = inl(dev->base_addr + port);
          |                 ~~~~~~~~~~~~~~~^~~~~~
          |                                |
          |                                void *
    In file included from ./include/linux/io.h:13,
                     from ./include/linux/pci.h:39,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:7:
    ./arch/x86/include/asm/io.h:267:41: note: expected 'int' but argument is of type 'void *'
      267 | static inline unsigned type in##bwl(int port)                           \
          |                                     ~~~~^~~~
    ./arch/x86/include/asm/io.h:322:1: note: in expansion of macro 'BUILDIO'
      322 | BUILDIO(l, , int)
          | ^~~~~~~
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out32':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:169:34: warning: passing argument 2 of 'outl' makes integer from pointer without a cast [-Wint-conversion]
      169 |         outl(val, dev->base_addr + port);
          |                   ~~~~~~~~~~~~~~~^~~~~~
          |                                  |
          |                                  void *
    In file included from ./include/linux/io.h:13,
                     from ./include/linux/pci.h:39,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:7:
    ./arch/x86/include/asm/io.h:261:54: note: expected 'int' but argument is of type 'void *'
      261 | static inline void out##bwl(unsigned type value, int port)              \
          |                                                  ~~~~^~~~
    ./arch/x86/include/asm/io.h:322:1: note: in expansion of macro 'BUILDIO'
      322 | BUILDIO(l, , int)
          | ^~~~~~~
    In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:179:14: warning: assignment to 'long unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
      179 |         port += dev->base_addr;
          |              ^~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_write':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:255:30: error: implicit declaration of function 'PDE_DATA'; did you mean 'NODE_DATA'? [-Werror=implicit-function-declaration]
      255 |         struct tg_dev *dev = PDE_DATA(FILE_DENTRY(filp)->d_inode);
          |                              ^~~~~~~~
          |                              NODE_DATA
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:255:30: warning: initialization of 'struct tg_dev *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    In file included from ./include/linux/printk.h:7,
                     from ./include/linux/kernel.h:20,
                     from ./include/linux/list.h:9,
                     from ./include/linux/module.h:12,
                     from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:5:
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In functio./include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'void *' [-Wformat=]
        5 | #define KERN_SOH        "\001"          /* ASCII Start Of Header */
          |                         ^~~~~~
    ./include/linux/kern_levels.h:14:25: note: in expansion of macro 'KERN_SOH'
       14 | #define KERN_INFO       KERN_SOH "6"    /* informational */
          |                         ^~~~~~~~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:520:16: note: in expansion of macro 'KERN_INFO'
      520 |         printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
          |                ^~~~~~~~~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:520:54: note: format string is defined here
      520 |         printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
          |                                                  ~~~~^
          |                                                      |
          |                                                      long unsigned int
          |                                                  %08p
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_init_module':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:646:13: warning: unused variable 'rc' [-Wunused-variable]
      646 |         int rc;
          |             ^~
    cc1: some warnings being treated as errors
    make[3]: *** [scripts/Makefile.build:295: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o] Error 1
    make[2]: Leaving directory '/usr/src/kernels/5.14.0-162.6.1.el9_1.0.1.x86_64'
    make[2]: *** [Makefile:1915: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg] Error 2
    make[1]: Leaving directory '/usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg'
    make[1]: *** [Makefile:43: prl_tg] Error 2
    make: Leaving directory '/usr/lib/parallels-tools/kmods'
    make: *** [Makefile.kmods:47: compile] Error 2
    Error: could not build kernel modules
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    Error: failed to install Parallels Guest Tools!
    2022-12-28T20:49:38+0000: n 'prl_tg_probe_common':
    ./include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'void *' [-Wformat=]
        5 | #define KERN_SOH        "\001"          /* ASCII Start Of Header */
          |                         ^~~~~~
    ./include/linux/kern_levels.h:14:25: note: in expansion of macro 'KERN_SOH'
       14 | #define KERN_INFO       KERN_SOH "6"    /* informational */
          |                         ^~~~~~~~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:520:16: note: in expansion of macro 'KERN_INFO'
      520 |         printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
          |                ^~~~~~~~~
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:520:54: note: format string is defined here
      520 |         printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
          |                                                  ~~~~^
          |                                                      |
          |                                                      long unsigned int
          |                                                  %08p
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_init_module':
    /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:646:13: warning: unused variable 'rc' [-Wunused-variable]
      646 |         int rc;
          |             ^~
    cc1: some warnings being treated as errors
    make[3]: *** [scripts/Makefile.build:295: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o] Error 1
    make[2]: *** [Makefile:1915: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg] Error 2
    make[1]: *** [Makefile:43: prl_tg] Error 2
    make: *** [Makefile.kmods:47: compile] Error 2
    Error: could not build kernel modules
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.14.0-162.6.1.el9_1.0.1.x86_64
    Error: failed to install Parallels Guest Tools!
    2022-12-28T20:49:38+0000: execCmd: ./install --install [167]
    2022-12-28T20:49:39+0000: Exiting with code 1
    
    
    I'm Using Parallels Tools 17.1.6.51584.
    Have tried previous patches, but not working unfortunately. Anyone been able to get it working?
    I'm on an old Mac that didn't get MacOS 13, so no point me buying Parallels Desktop 18, as it's only partially supported on MacOS 12, but would be great if someone had a fix for 17.1.6 working with the latest RHEL release & derivatives
     
  13. Chappy84

    Chappy84 Bit poster

    Messages:
    3
    I played around running make with the Makefile.kmods file, and this diff got 17.1.6.51584 compiling, installing, and the OS booting for me.

    Code:
    diff -u -r parallels-tools-17.1.6.51584.orig/kmods/prl_eth/pvmnet/pvmnet.c parallels-tools-17.1.6.51584/kmods/prl_eth/pvmnet/pvmnet.c
    --- parallels-tools-17.1.6.51584.orig/kmods/prl_eth/pvmnet/pvmnet.c    2022-12-01 09:23:05.000000000 +0000
    +++ parallels-tools-17.1.6.51584/kmods/prl_eth/pvmnet/pvmnet.c    2022-12-28 22:03:33.620305885 +0000
    @@ -418,6 +418,8 @@
     #if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5) && \
         RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8, 0)
        .extended.ndo_change_mtu = eth_change_mtu,
    +#elif RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9, 0)
    +        .ndo_change_mtu = dev_set_mtu,
     #else
        .ndo_change_mtu = eth_change_mtu,
     #endif
    diff -u -r parallels-tools-17.1.6.51584.orig/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c parallels-tools-17.1.6.51584/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c
    --- parallels-tools-17.1.6.51584.orig/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c    2022-12-01 09:23:09.000000000 +0000
    +++ parallels-tools-17.1.6.51584/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c    2022-12-28 21:51:27.640987278 +0000
    @@ -249,7 +249,7 @@
        size_t nbytes, loff_t *ppos)
     {
        int ret = 0;
    -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
        struct tg_dev *dev = pde_data(FILE_DENTRY(filp)->d_inode);
     #else
        struct tg_dev *dev = PDE_DATA(FILE_DENTRY(filp)->d_inode);
    
    I'm not a C programmer, I can't guarantee all functionality will work, and I know for a fact that the patch for prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c will break some installs using kernel 5.14.0, as obviously RHEL 9.0 used 5.14.0-70, and the old PDE_DATA worked with that. I unfortunately can't quickly with a search online find a function to compare to that low a linux kernel version to make it work for both. Having said that it works with the kernel version I'm running with (5.14.0-162.6.1.el9_1.0.1.x86_64), so I'm sticking with it for now. If anyone else has a better fix, please do update it to sort this out for both versions. :)
     
    (GalaxyMaster) likes this.
  14. AltitudeDashboard

    AltitudeDashboard Junior Member

    Messages:
    12
    Best Answer
    Can you please detail how to apply the fix? I am hitting the same issue with RHEL 9.1 5.14.0-162.6.1.el9_1.aarch64
     
  15. AltitudeDashboard

    AltitudeDashboard Junior Member

    Messages:
    12
    Today I reinstalled RHEL 9.1 and I was able to install Parallel Tools using the GUI installer. So it seems they fixed it.
     
  16. xu_10

    xu_10 Bit poster

    Messages:
    1
    Same problem here. Parallels Dsektop 18 bussiness + CentOS 9 stream(kernel 5.14) + MacOS Monterey 12.6.6 M1
     
  17. Chappy84

    Chappy84 Bit poster

    Messages:
    3
    Just tried to get version 17.1.7.51588 working on kernel 5.14.0-284.25.1.el9_2.x86_64 , (RHEL 9.2)
    This patch got it working:

    Code:
    diff -u -r parallels-tools-17.1.7.51588.orig/kmods/prl_eth/pvmnet/pvmnet.c parallels-tools-17.1.7.51588/kmods/prl_eth/pvmnet/pvmnet.c
    --- parallels-tools-17.1.7.51588.orig/kmods/prl_eth/pvmnet/pvmnet.c     2023-08-27 16:09:33.534056800 +0100
    +++ parallels-tools-17.1.7.51588/kmods/prl_eth/pvmnet/pvmnet.c  2023-08-27 16:07:29.120106527 +0100
    @@ -419,9 +419,11 @@
         RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8, 0)
            .extended.ndo_change_mtu = eth_change_mtu,
     #else
    +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0)
            .ndo_change_mtu = eth_change_mtu,
     #endif
     #endif
    +#endif
     };
     #endif
    
    diff -u -r parallels-tools-17.1.7.51588.orig/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c parallels-tools-17.1.7.51588/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c
    --- parallels-tools-17.1.7.51588.orig/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c     2023-08-27 16:09:33.539056597 +0100
    +++ parallels-tools-17.1.7.51588/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c  2023-08-27 16:07:29.118106608 +0100
    @@ -16,6 +16,9 @@
     #include <linux/pagemap.h>
     #include <linux/namei.h>
     #include <linux/cred.h>
    +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0))
    +#include <linux/writeback.h>
    +#endif
    
     #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 40)) && \
         (LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0))
    @@ -56,7 +59,9 @@
            return (unsigned long *)&(de->d_fsdata);
     }
    
    -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0)
    +#define prl_uaccess_kernel() (false)
    +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
     #define prl_uaccess_kernel() uaccess_kernel()
     #else
     #define prl_uaccess_kernel() segment_eq(get_fs(), KERNEL_DS)
    @@ -954,7 +959,11 @@
            .writepage              = prlfs_writepage,
            .write_begin    = simple_write_begin,
            .write_end      = prlfs_write_end,
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
    +        .dirty_folio    = filemap_dirty_folio,
    +#else
            .set_page_dirty = __set_page_dirty_nobuffers,
    +#endif
     };
    
    
    diff -u -r parallels-tools-17.1.7.51588.orig/kmods/prl_fs/Toolgate/Guest/Linux/prl_tg/prltg.c parallels-tools-17.1.7.51588/kmods/prl_fs/Toolgate/Guest/Linux/prl_tg/prltg.c
    --- parallels-tools-17.1.7.51588.orig/kmods/prl_fs/Toolgate/Guest/Linux/prl_tg/prltg.c  2023-08-27 16:09:33.536056719 +0100
    +++ parallels-tools-17.1.7.51588/kmods/prl_fs/Toolgate/Guest/Linux/prl_tg/prltg.c       2023-08-27 16:07:29.124106365 +0100
    @@ -249,7 +249,7 @@
            size_t nbytes, loff_t *ppos)
     {
            int ret = 0;
    -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
            struct tg_dev *dev = pde_data(FILE_DENTRY(filp)->d_inode);
     #else
            struct tg_dev *dev = PDE_DATA(FILE_DENTRY(filp)->d_inode);
    diff -u -r parallels-tools-17.1.7.51588.orig/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.c parallels-tools-17.1.7.51588/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.c
    --- parallels-tools-17.1.7.51588.orig/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.c       2023-08-27 16:09:33.535056760 +0100
    +++ parallels-tools-17.1.7.51588/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.c    2023-08-27 16:07:29.122106446 +0100
    @@ -328,7 +328,11 @@
            char buf[BDEVNAME_SIZE];
    
            fsb = list_entry((struct list_head*)data, struct frozen_sb, list);
    +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0)
    +       snprintf(buf, sizeof(buf), "%pg", fsb->sb->s_bdev);
    +#else
            bdevname(fsb->sb->s_bdev, buf);
    +#endif
            seq_printf(file, "%s\n", buf);
            return 0;
     }
    I got the fix for the removed bdevname from here: https://forum.parallels.com/threads...nel-6-0-2-parallel-tools-18-0-2-53077.358750/
    Otherwise, the fixes were available in previously posted patches by other users.
    Again, as I noted on the last patch I posted:
    I'm not a C programmer, I can't guarantee all functionality will work, and I know for a fact that the patch for prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c will break some installs using kernel 5.14.0, as obviously RHEL 9.0 used 5.14.0-70, and the old PDE_DATA worked with that. I unfortunately can't quickly with a search online find a function to compare to that low a linux kernel version to make it work for both. Having said that it works with the kernel version I'm running with (5.14.0-284.25.1.el9_2.x86_64), so I'm sticking with it for now. If anyone else has a better fix, please do update it to sort this out for both versions. :)
     
  18. GarthS

    GarthS Junior Member

    Messages:
    15
    This seems pretty improbable on its face, but here we are a whole release later (Parallels 19.0.0 on an M1 Mac, tools version 19.0.0.54570), and Red Hat (9.2) is still completely broken as a guest operating system. Is there something I'm missing?
     
  19. Sven G

    Sven G Member

    Messages:
    66
    Same problem with the newly released Mageia 9 (today's Mandriva Linux): Parallels Tools won't install, with the usual errors; let's hope that this will be fixed in the near future...
     
  20. GarthS

    GarthS Junior Member

    Messages:
    15
    This is not the solution to the OP's specific problem, but do note that RHEL 9.2 and bug-for-bug compatible duplicates such as Rocky Linux 9.2 ship with an older kernel than is supported by the current kernel-devel* packages. Be sure to do a sudo dnf update before trying to install Parallels Tools, and make sure the kernel package is included in the updates.
     

Share This Page