Parallels tools installed but prlctl not found

Discussion in 'Parallels Desktop on a Mac with Apple silicon' started by Waleed, Feb 18, 2022.

  1. Waleed

    Waleed Bit poster

    Messages:
    7
    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?
     
  2. mmika

    mmika Pro

    Messages:
    488
    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.
     
  3. Waleed

    Waleed Bit poster

    Messages:
    7
    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?
     
  4. Waleed

    Waleed Bit poster

    Messages:
    7
    Never mind it was vagrant cached box that was being launched.
     

Share This Page