[SOLVED] Parallels Tools Fail to Install in Oracle Linux VM

Discussion in 'Parallels Desktop on a Mac with Apple silicon' started by StefanH28, Jan 9, 2024.

  1. StefanH28

    StefanH28 Bit poster

    Messages:
    2
    Hello, I'm on a Mac Mini M2 Pro, trying out Parallels. I have an Ubuntu 22.04.2 ARM64 VM which works fine; installing Parallels Tools was just a click.
    On the other VM, Oracle Linux 8, I can't get it to work. The installation log (see attached screenshot; sorry for not pasting the text, because I can't copy it from the VM due to the lack of Parallels Tools :() seems to indicate that the Parallels Tools installer uses the Red Hat compiler, while the kernel was compiled with GCC. The Red Hat compiler (CC) seems to choke on a couple of command-line options.
    What to do to overcome that issue?
     

    Attached Files:

  2. Mitch2

    Mitch2 Bit poster

    Messages:
    1
    Here's what I did after much frustration:

    Install gcc-12 and some of its parts:
    yum install gcc-aarch64-linux-gnu.aarch64 gcc-c++-aarch64-linux-gnu.aarch64 gcc-toolset-12.aarch64 gcc-toolset-12-runtime.aarch64 gcc-toolset-12-gcc-c++.aarch64

    Then went into /usr/bin and temporarily renamed the gcc binary to gcc-8. The gcc-12 install didn't replace the gcc binaries in /usr/bin. Symlinked the new gcc to /usr bin/gcc:

    mv gcc gcc-8
    ln -s /opt/rh/gcc-toolset-12/root/usr/bin/gcc gcc

    ran the tools installer and it completed. Then nuked the symlink and put the old gcc binary back.

    It appears to be working. This is on OEL8.9

    Hope this helps?
     
  3. StefanH28

    StefanH28 Bit poster

    Messages:
    2
    Thanks much, Mitch2! Amazingly, this actually worked, and has saved me a lot of the frustration you had!
     
    Mitch2 likes this.
  4. VincentH13

    VincentH13 Junior Member

    Messages:
    11
    Thanks for the workaround. Worked for me with Oracle 8.10 ARM, but not with Oracle 9.
     
  5. ButW

    ButW Bit poster

    Messages:
    2
    I got this working on Oracle Linux 9 & Parallels 20.2.0.55872

    The issue for us is as follows:

    Confirmed fix for EL 8. Regarding EL 9:

    My team need to use the DLM kernel module.

    On Oracle 9 aarch64 the DLM kernel module is only distributed with the Oracle UEK kernel (5.15.0) and not the RHCK (5.14.0). Of course, this is different on x86_64 where the DLM module is distributed with both, and the problem does not exist!

    Regrettably, parallels tools will only build on the red hat compatible kernel, not the UEK. Why? Well, in the UEK kernel there is a change to include/linux/arm-smccc.h which breaks the build:

    `ERROR: modpost: GPL-incompatible module prl_notifier.ko uses GPL-only symbol 'arm_smccc_smc'`

    The easiest thing to do is just down grade to the RHCK, but then we do not get the DLM module. Of course we could build our own kernel, maintain it moving forwards and keep ourselves busy for an infinite period of time. So that's never a good idea.
    The solution was actually trivial:

    `[/root]# cp /usr/src/kernels/5.14.0-503.el9.aarch64/include/linux/arm-smccc.h /usr/src/kernels/5.15.0-304.171.4.el9uek.aarch64/include/linux/arm-smccc.h`

    This will probably need to be repeated whenever you see a kernel update coming in from the repositories.

    It would be terribly nice if Parallels could look in to this and fix it before it drives everyone up the wall.
     
    DerekA5 likes this.
  6. ButW

    ButW Bit poster

    Messages:
    2
    Oh, BTW there is a typo in the dkms.conf file (missing a quote on the first line):

    /usr/lib/parallels-tools/kmods/dkms.conf: line 34: unexpected EOF while looking for matching `"'
    /usr/lib/parallels-tools/kmods/dkms.conf: line 35: syntax error: unexpected end of file
    dkms.conf: Error! No 'PACKAGE_NAME' directive specified.
    dkms.conf: Error! No 'PACKAGE_VERSION' directive specified.
    dkms.conf: Warning! Zero modules specified.

    Error! Bad conf file.
    File: /usr/lib/parallels-tools/kmods/dkms.conf does not represent a valid dkms.conf file.
     
  7. SebastianG4

    SebastianG4 Junior Member

    Messages:
    11
    I think I do have a solution for Oracle Linux 8, 9 and 10. Here is what you need to do:

    1. Backup your existing VM in case something goes wrong a do not blame me afterwards if you did not do so :)
    2. Update Oracle Linux to the latest version. As user root this can be done with
    yum update -y

    Solution for Oracle Linux 8
    ================
    Make Oracle Linux use the latest version of gcc and as. As root user do the following:
    cd /usr/bin
    Backup the old versions of gcc and as:
    mv gcc gcc-old
    mv as as-old
    Now create symbolic links to the new versions:
    ln -s /opt/rh/gcc-toolset-12/root/bin/gcc gcc
    ln -s /opt/rh/gcc-toolset-12/root/bin/as as
    check if gcc --version returns a version number 12 or higher
    check if as --version returns a version number 2.38 or higher
    Now run the installer as usual from the Parallels Host Menu. Installation should be fine.
    Finally you may remove the symbolic links created before and rename gcc-old and as-old back to gcc and as

    Solution for Oracle Linux 9
    ================
    Verify the versions of gcc and as with:
    gcc --version
    as -- version
    gcc should be 11.5 or higher
    as should be 2.35 or higher
    Proceed with normal installation from Parallels Host Menu. Everything should be fine

    Solution for Oracle Linux 10
    =================
    This is definitely the toughest one!
    Choose the Host Menu Option Parallels Tools installation as if you wanted to install the tools like usual, but do not start the installation in Oracle Linux 10
    As user root copy the parallels tools too a directory /temp
    Should be something like
    cd /
    mkdir temp
    cd /run/media/<your username>/Parallels Tools
    cp -pr * /temp
    change the ownership of all files in the /temp directory to root with something like
    chown -R root *
    Change the permissions on all files too 777 (not the proper way of doing this in linux, but to shortcut things it is the fastest way)
    chmod -R 777 *
    Now find the file pre_mod.tar.gz it should be here: /temp/kmods/prl_mod.tar.gz
    uncompressed this file as user root
    tar -xzvf prl_mod.tar.gz
    now find the Makifile for the client tools. It should be here: /temp/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/Makefile
    Use a text editor to add the following line in the Makefile and add the following line:
    EXTRA_CFLAGS += -Wno-error=attribute-warning
    Save the Makefile and run the installer as root from the temp directory:
    cd /temp
    ./install
    Sit back and be patient, but installation should go fine, at least it did it for me
    Parallels should eventually update their Guest Tools for new kernels, but until then these hacks are needed...
    Hope that helps
     

Share This Page