Parallels Tools 11.1.3 incompatible with Linux 4.5.1

Discussion in 'Linux Guest OS Discussion' started by CharlesF3, Apr 19, 2016.

  1. CharlesF3

    CharlesF3 Bit Poster

    Messages:
    3
    I'm running Arch Linux with Linux kernel version 4.5.1 and I can't install Parallels Tools 11.1.3-32521. It seems that the Parallels Tools file system (prl_fs) is incompatible with the kernel headers.

    From the installer logs:

    Code:
      CC [M]  /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.o
    /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:737:2: error: unknown field 'follow_link' specified in initializer
      .follow_link = prlfs_follow_link,
      ^
    /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:737:17: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
      .follow_link = prlfs_follow_link,
                     ^
    
    Has anyone else met this issue?
     
  2. mikem7

    mikem7 Bit Poster

    Messages:
    1
    Hi Charles,

    I had the same problem. The issue seems to be related to some changes in the file system structures in the Linux kernel. Here is what I tried:

    1, Follow the instructions here (https://forum.parallels.com/threads...04-tools-will-not-install.336252/#post-802886) to copy and extract the source for Parallels Tools. Don't apply patch or changes suggested there, just extract everything.

    2, Edit prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c. There is only one change to make, around line 737. I suppose that the field .follow_link has been renamed to .get_link. See line 1577 here (http://lxr.free-electrons.com/diff/include/linux/fs.h?diffvar=v;diffval=4.0) to notice the change.

    After making this change, repack (tar -czvf) all of the files back into their archive and run the install again. For me, it seemed to pass the error, although I ran into other problems later related to xorg that you may or may not have.

    Good luck!
     
  3. CharlesF3

    CharlesF3 Bit Poster

    Messages:
    3
    Hi mikem,

    Thanks for the answer. I actually found that part yesterday and forgot to update this post. But since Arch Linux has a couple of other differences, I was currently working on them.

    Namely, Arch uses `systemd` instead of `init`. So I was looking to adapt the install scripts.
    Also HAL has been deprecated in Arch, and I wanted to make sure the `udev` rules were compatible.

    But now, my X server won't run anymore. :( If I develop a full patch to make Parallels run on Arch Linux, I'll post it up somewhere.
     
  4. JakubF1

    JakubF1 Bit Poster

    Messages:
    1
    Did you solve the problem with X? I have most likely the same error. Last error in Xorg.0.log is "PRLVIDEO: Cannot map frame buffer".
     
  5. CharlesF3

    CharlesF3 Bit Poster

    Messages:
    3
    Not yet. I didn't have time to look into it yet. I'll post on here as soon as I get it fixed.

    In the meantime, I installed Ubuntu which isn't my favorite flavor of Linux, but at least runs perfectly on Parallels.
     
  6. DavidN5

    DavidN5 Bit Poster

    Messages:
    1
    I found a solution on a completely unrelated forum, it has to do with the kernel iomem settings that were changed in 4.5.1+

    I tested this with 4.6.2-1-ARCH and it works.

    https://bbs.archlinux.org/viewtopic.php?id=211331

    Steps as posted on the forum [by user lyndon]

    For those who stumble across this who have never changed their kernel parameters before like me (and are using GRUB) all I did was:

    Edit /etc/default/grub and append

    iomem=relaxed
    to the GRUB_CMDLINE_LINUX_DEFAULT variable so mine now looks like this:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet iomem=relaxed"
    Then I ran:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
     
    KyleG likes this.
  7. KyleG

    KyleG Bit Poster

    Messages:
    9
    This solution works for me on the most recent Fedora 23 kernel, the exception that for the last part I needed to run:
    grub2-mkconfig -o /boot/grub2/grub.cfg
     

Share This Page