FS#55579 - [linux-tools-meta][hyperv] Distribution-specific scripts are not found
Attached to Project:
Community Packages
Opened by Andrii Melnykov (zoidberg_md) - Sunday, 10 September 2017, 18:09 GMT
Last edited by Sébastien Luttringer (seblu) - Sunday, 14 July 2019, 23:56 GMT
Opened by Andrii Melnykov (zoidberg_md) - Sunday, 10 September 2017, 18:09 GMT
Last edited by Sébastien Luttringer (seblu) - Sunday, 14 July 2019, 23:56 GMT
|
Details
Description:
[root@arch ~]$ hv_kvp_daemon -n sh: /usr/libexec/hypervkvpd/hv_get_dns_info: No such file or directory sh: /usr/libexec/hypervkvpd/hv_get_dhcp_info: No such file or directory sh: /usr/libexec/hypervkvpd/hv_get_dns_info: No such file or directory sh: /usr/libexec/hypervkvpd/hv_get_dhcp_info: No such file or directory Additional info: * hyperv-4.13-1 Steps to reproduce: - pacman -Sy hyperv - hv_kvp_daemon -n - open the VM in Hyper-V Manager - go to "networking properties" tab (the other tabs are Summary and Memory) Expected behaviour: nothing happens in the log Actual behaviour: the 4 messages are emitted I think the fix is - to patch the code to change the folder to more appropriate one (there's no /usr/libexec on arch, so /usr/lib/hyperv seems more appropriate) - to actually supply these scripts (the prototypes are already in the tools/hv folder, and they do work on Arch) |
This task depends upon
Closed by Sébastien Luttringer (seblu)
Sunday, 14 July 2019, 23:56 GMT
Reason for closing: Won't fix
Sunday, 14 July 2019, 23:56 GMT
Reason for closing: Won't fix
Also the scripts in question exist in the same directory, but there is no make install target upstream so they were presumably overlooked.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/hv/hv_get_dhcp_info.sh#n14
# Each Distro is expected to implement this script in a distro specific
# fashion. For instance on Distros that ship with Network Manager enabled,
# this script can be based on the Network Manager APIs for retrieving DHCP
# information.
So they are not installed because they are not supposed to work out of the box.
CFLAGS+=" -DKVP_SCRIPTS_PATH=/usr/lib/hypervkvpd/" make -C tools/ hv hv_install should in theory work. At least the kernel Makefile wizardry seems to imply it should work, I'm not positive it was implemented.
At the very least using the tools/ Makefile should simplify the build.
That sucks horribly, it isn't exactly hard to write a script which is capable of checking a couple information sources. Also Arch lets you pick and choose between different tools available to the Linux community.
The package creates /usr/lib/hyperv/kvpscripts/ folder but it's empty and the scripts are still searched in libexec.
Upd: I did some more testing and found that now, although the messages are displayed, the Hyper-V host displays the ips in the panel if kvm daemon is running, including ipv6
The kvp daemons scripts are directly from the upstream.
They are still not altered to match the distro
since it's kind of complicate in Arch Linux that the package for networking may vary.
It is not perfect but does not affect the basic functionality of kvp daemon.
Is it possible to merge it to the current repository?
Thanks.
hv_kvp_daemon works now without scripts, so this bug can be closed. At least it reports the IP addresses and doesn't say that the scripts were not found.
iproute2 dependency is fine for me.
The .service files are good additions. As for the udev rules, I have no idea why they are needed or how they work, so I can't comment.
Andy
Those udev rules are trying to load the service when a specific integration service is enabled on Hyper-V settings,
in which case a device under /dev/vmbus/* will be created to communicate with Hyper-V VMBus.
These rules are implemented in Azure Linux kernel changes as well.
Those KVP scripts are invoked when receiving requests from VMBus.
They're no longer needed for most of time in a desktop environment.
I'm not sure for a hosted environment like Azure they will be needed somehow which I would need to find out more details.
Thanks,
Zhongcheng