Parallels tools installed but prlctl not found

Waleed

Bit poster
I am installing ubuntu 20.04 arm on a VM using packer on mac m1. The VM works fine but after I installed parallels tools on the VM I cannot find the prlctl command which is required to mount drives later on vagrant. Here is the log:

Code:
parallels-iso.ubuntu-pa: Started installation of Parallels Guest Tools version '17.1.1.51537'
    parallels-iso.ubuntu-pa: modprobe: FATAL: Module prl_tg not found in directory /lib/modules/5.4.0-100-generic
    parallels-iso.ubuntu-pa:
    parallels-iso.ubuntu-pa: Sat Feb 19 03:07:44 UTC 2022
    parallels-iso.ubuntu-pa: Start installation or upgrade of Guest Tools
    parallels-iso.ubuntu-pa: In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:23:
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out':
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:179:7: warning: assignment to 'long unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
    parallels-iso.ubuntu-pa:   179 |  port += dev->base_addr;
    parallels-iso.ubuntu-pa:       |       ^~
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:183:17: warning: passing argument 2 of 'iowrite64' makes pointer from integer without a cast [-Wint-conversion]
    parallels-iso.ubuntu-pa:   183 |  iowrite64(val, port);
    parallels-iso.ubuntu-pa:       |                 ^~~~
    parallels-iso.ubuntu-pa:       |                 |
    parallels-iso.ubuntu-pa:       |                 long unsigned int
    parallels-iso.ubuntu-pa: In file included from ./arch/arm64/include/asm/io.h:195,
    parallels-iso.ubuntu-pa:                  from ./include/linux/io.h:13,
    parallels-iso.ubuntu-pa:                  from ./include/linux/pci.h:39,
    parallels-iso.ubuntu-pa:                  from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:7:
    parallels-iso.ubuntu-pa: ./include/asm-generic/io.h:745:64: note: expected 'volatile void *' but argument is of type 'long unsigned int'
    parallels-iso.ubuntu-pa:   745 | static inline void iowrite64(u64 value, volatile void __iomem *addr)
    parallels-iso.ubuntu-pa:       |                                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~
    parallels-iso.ubuntu-pa: In file included from ./include/linux/printk.h:7,
    parallels-iso.ubuntu-pa:                  from ./include/linux/kernel.h:15,
    parallels-iso.ubuntu-pa:                  from ./include/linux/list.h:9,
    parallels-iso.ubuntu-pa:                  from ./include/linux/module.h:9,
    parallels-iso.ubuntu-pa:                  from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:5:
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_probe_common':
    parallels-iso.ubuntu-pa: ./include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'void *' [-Wformat=]
    parallels-iso.ubuntu-pa:     5 | #define KERN_SOH "\001"  /* ASCII Start Of Header */
    parallels-iso.ubuntu-pa:       |                  ^~~~~~
    parallels-iso.ubuntu-pa: ./include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    parallels-iso.ubuntu-pa:    14 | #define KERN_INFO KERN_SOH "6" /* informational */
    parallels-iso.ubuntu-pa:       |                   ^~~~~~~~
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:516:9: note: in expansion of macro 'KERN_INFO'
    parallels-iso.ubuntu-pa:   516 |  printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
    parallels-iso.ubuntu-pa:       |         ^~~~~~~~~
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:516:47: note: format string is defined here
    parallels-iso.ubuntu-pa:   516 |  printk(KERN_INFO "detected %s, base addr %08lx, IRQ %d\n",
    parallels-iso.ubuntu-pa:       |                                           ~~~~^
    parallels-iso.ubuntu-pa:       |                                               |
    parallels-iso.ubuntu-pa:       |                                               long unsigned int
    parallels-iso.ubuntu-pa:       |                                           %08p
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c: In function 'prl_tg_init_module':
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c:642:6: warning: unused variable 'rc' [-Wunused-variable]
    parallels-iso.ubuntu-pa:   642 |  int rc;
    parallels-iso.ubuntu-pa:       |      ^~
    parallels-iso.ubuntu-pa: In file included from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c:11:
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h: In function 'tg_out':
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:179:7: warning: assignment to 'long unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
    parallels-iso.ubuntu-pa:   179 |  port += dev->base_addr;
    parallels-iso.ubuntu-pa:       |       ^~
    parallels-iso.ubuntu-pa: /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_common.h:183:17: warning: passing argument 2 of 'iowrite64' makes pointer from integer without a cast [-Wint-conversion]
    parallels-iso.ubuntu-pa:   183 |  iowrite64(val, port);
    parallels-iso.ubuntu-pa:       |                 ^~~~
    parallels-iso.ubuntu-pa:       |                 |
    parallels-iso.ubuntu-pa:       |                 long unsigned int
    parallels-iso.ubuntu-pa: In file included from ./arch/arm64/include/asm/io.h:195,
    parallels-iso.ubuntu-pa:                  from ./include/linux/io.h:13,
    parallels-iso.ubuntu-pa:                  from ./include/linux/pci.h:39,
    parallels-iso.ubuntu-pa:                  from /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c:7:
    parallels-iso.ubuntu-pa: ./include/asm-generic/io.h:745:64: note: expected 'volatile void *' but argument is of type 'long unsigned int'
    parallels-iso.ubuntu-pa:   745 | static inline void iowrite64(u64 value, volatile void __iomem *addr)
    parallels-iso.ubuntu-pa:       |                                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~
    parallels-iso.ubuntu-pa: Start installation of prl_tg kernel module
    parallels-iso.ubuntu-pa: Start installation of prl_fs kernel module
    parallels-iso.ubuntu-pa: Start installation of prl_fs_freeze kernel module
    parallels-iso.ubuntu-pa: Start installation of prl_notifier kernel module
    parallels-iso.ubuntu-pa: DKMS modules were added successfully
    parallels-iso.ubuntu-pa: DKMS modules for kernel 5.4.0-100-generic were built successfully
    parallels-iso.ubuntu-pa: DKMS modules for kernel 5.4.0-100-generic were installed successfully
    parallels-iso.ubuntu-pa: Parallels Guest Tools were installed successfully!
I am currently using parallels trial so not sure if that is the reason it is missing?
 
prlctl does not come with parallels tools. It is utility that comes with Parallels Desktop itself. So it can be found on the macOS side, not in VM.
 
Thanks @mmika! I see prlctl is installed on my mac. I was confused how the vagrant parallels provider is checking the existence of the Guest tools.

However, I installed the tools via packer but when I use the packed box with Vagrant, the vagrant provider is unable to see the guest tools:
Code:
> /usr/local/bin/prlctl list deeff1b1-281a-4b4d-853c-18547d6d8857 --info --no-header --json                                                                                                12:26:00
[
    {
        "ID": "deeff1b1-281a-4b4d-853c-18547d6d8857",
        "Description": "",
        "Type": "VM",
        "State": "running",
        "OS": "ubuntu",
        "Template": "no",
        "Uptime": "407",
        "GuestTools": {
            "state": "not_installed"
        },

But if I manually ssh into the box and reinstall the tools, the provider is able to see it. Any idea why it is happening?
 
Back
Top