Parallels Tools 15.1.2.47123 Failed to Install on RHEL 8.1

Granville

Junior Member
Tried to install Parallels Tools (version 15.1.2.47123) on a guest OS: Red Hat Enterprise Linux 8.1 (kernel version 4.18.0-147.0.3.el8_1.x86_64), using the following command:

Code:
dkms build parallels-tools/15.1.2.47123 -k 4.18.0-147.0.3.el8_1.x86_64

But failed with the following message:

Code:
/var/lib/dkms/parallels-tools/15.1.2.47123/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c:46:43: error: implicit declaration of function 'radix_tree_exceptional_entry'; did you mean 'radix_tree_exception'? [-Werror=implicit-function-declaration]
 #define prlfs_page_cache_invalid_entry(x) radix_tree_exceptional_entry(x)
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/parallels-tools/15.1.2.47123/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c:66:7: note: in expansion of macro 'prlfs_page_cache_invalid_entry'
   if (prlfs_page_cache_invalid_entry(cur_page))
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:313: /var/lib/dkms/parallels-tools/15.1.2.47123/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.o] Error 1
make[2]: *** [Makefile:1547: _module_/var/lib/dkms/parallels-tools/15.1.2.47123/build/prl_fs/SharedFolders/Guest/Linux/prl_fs] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.18.0-147.0.3.el8_1.x86_64'
make[1]: *** [Makefile:36: all] Error 2
make[1]: Leaving directory '/var/lib/dkms/parallels-tools/15.1.2.47123/build/prl_fs/SharedFolders/Guest/Linux/prl_fs'
make: *** [Makefile.kmods:31: compile] Error 2

Detailed build log attached. Please help! Thanks!
 

Attachments

Replace line 42 in <....>/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c:
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) || defined(PRLFS_RHEL_8_1_GE)
 
Hi Alexander,

After copying and pasting your revised code line, the exact same error still shows up unfortunately.
 
Just found out that another source file also needs to be updated:

/usr/src/parallels-tools-15.1.2.47123/prl_fs/SharedFolders/Guest/Linux/prl_fs/prlfs.h:

The following three lines need to inserted right after the line #47:

#if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 1)
#define PRLFS_RHEL_8_1_GE
#endif

Then the modules were built correctly. Thanks for your hints!
 
Just found out that another source file also needs to be updated:

/usr/src/parallels-tools-15.1.2.47123/prl_fs/SharedFolders/Guest/Linux/prl_fs/prlfs.h:

The following three lines need to inserted right after the line #47:

#if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 1)
#define PRLFS_RHEL_8_1_GE
#endif

Then the modules were built correctly. Thanks for your hints!

You are right.
I forgot about this define, but you did it anyway :)
 
I made all the changes and I an error. Your kernel headers for kernel 4.18.0-147.0.3.el8_1.x86_64 can not be found at /lib/modules/4.18.0-147.0.3.el8_1.x86_64/build or
/lib/modules/4.18.0-147.0.3.el8_1.x86_64/source. kernel-devel and kernel-headers are installed.
 
dkms build parallels-tools/15.1.2.47123 -k 4.18.0-147.0.3.el8_1.x86_64

Error! echo

Your kernel headers for kernel 4.18.0-147.0.3.el8_1.x86_64 cannot be found at

/lib/modules/4.18.0-147.0.3.el8_1.x86_64/build or /lib/modules/4.18.0-147.0.3.el8_1.x86_64/source.
 
H
dkms build parallels-tools/15.1.2.47123 -k 4.18.0-147.0.3.el8_1.x86_64

Error! echo

Your kernel headers for kernel 4.18.0-147.0.3.el8_1.x86_64 cannot be found at

/lib/modules/4.18.0-147.0.3.el8_1.x86_64/build or /lib/modules/4.18.0-147.0.3.el8_1.x86_64/source.

Have you installed the kernel development RPM yet: kernel-level-[version number]?
 
I did install kernel-devel-$(uname -r). When I try to download kernel-level-$(Unami -r) it say could not find a match.
 
Ok I got the kernel-headers issue resolved. Is there another command that I need to run before the dkms command?
 
Ok I got the kernel-headers issue resolved. Is there another command that I need to run before the dkms command?

Assuming the parallels tools source tree have been installed to /usr/src/parallels-tools-15.1.2.47123, then:

dkms add parallels-tools/15.1.2.47123 -k [kernel version]
dkms build parallels-tools/15.1.2.47123 -k [kernel version]
dkms install parallels-tools/15.1.2.47123 -k [kernel version]
 
Assuming the parallels tools source tree have been installed to /usr/src/parallels-tools-15.1.2.47123, then:

dkms add parallels-tools/15.1.2.47123 -k [kernel version]
dkms build parallels-tools/15.1.2.47123 -k [kernel version]
dkms install parallels-tools/15.1.2.47123 -k [kernel version]
Sorry for so many questions I've never done this before. How do you install the source tree. That maybe my issue I am running into now bc it basically says that is is missing the prl_env/ something directory. So maybe if I install the src tree it will see all of it then. I really appreciate your help.
 
Sorry for so many questions I've never done this before. How do you install the source tree. That maybe my issue I am running into now bc it basically says that is is missing the prl_env/ something directory. So maybe if I install the src tree it will see all of it then. I really appreciate your help.
I have copied the files from the iso to that folder parallels-tools. I can run the other commands but still not sure about installing the parallel-tools source tree?
 
dkms add parallels-tools/15.1.2.47123 -k 4.18.0-147.3.1.el8_1.x86_64

Error! DKMS tree already contains: parallels-tools-15.1.2.47123

You cannot add the same module/version combo more than once.
 
ok I think I know what the issue is. I have a different kernel installed. So I think the change in file.c and prlfs.h need to be changed. I just do not know what they need to change too. Here is my kernel.
4.18.0-147.3.1.el8_1.x86_64

[root@nrmnokslm55 src]# dkms add parallels-tools/15.1.2.47123 -k 4.18.0-147.3.1.el8_1.x86_64


Creating symlink /var/lib/dkms/parallels-tools/15.1.2.47123/source ->

/usr/src/parallels-tools-15.1.2.47123


DKMS: add completed.

[root@nrmnokslm55 src]# dkms build parallels-tools/15.1.2.47123 -k 4.18.0-147.3.1.el8_1.x86_64


Kernel preparation unnecessary for this kernel. Skipping...


Building module:

cleaning build area...(bad exit status: 2)

make -j2 KERNELRELEASE=4.18.0-147.3.1.el8_1.x86_64 -f Makefile.kmods KSRC=/lib/modules/4.18.0-147.3.1.el8_1.x86_64/build KVER=4.18.0-147.3.1.el8_1.x86_64...(bad exit status: 2)

Error! Bad return status for module build on kernel: 4.18.0-147.3.1.el8_1.x86_64 (x86_64)

Consult /var/lib/dkms/parallels-tools/15.1.2.47123/build/make.log for more information.

[root@nrmnokslm55 prl_fs]# cat /var/lib/dkms/parallels-tools/15.1.2.47123/build/make.log

DKMS make.log for parallels-tools-15.1.2.47123 for kernel 4.18.0-147.3.1.el8_1.x86_64 (x86_64)

Mon Dec 30 22:49:17 CST 2019

make: Makefile.kmods: No such file or directory

make: *** No rule to make target 'Makefile.kmods'. Stop.
 
I tried to install Parallels Tools (version 16.1.0.48950) on a guest OS: Fedora Linux 33 (kernel version .9.11-200.fc33.x86_64).
Same error as on top:
/usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:58:31: error: implicit declaration of function 'segment_eq' [-Werror=implicit-function-declaration]
58 | bd->user = (user == 0) ? 0 : segment_eq(get_fs(), USER_DS) ? 1 : 0;
 
Back
Top