* [Buildroot] [PATCH] package/linux-tools: add hv_vss_daemon @ 2019-12-05 15:44 Pascal de Bruijn 2019-12-05 20:55 ` Thomas Petazzoni 0 siblings, 1 reply; 2+ messages in thread From: Pascal de Bruijn @ 2019-12-05 15:44 UTC (permalink / raw) To: buildroot hyperv integration services for snapshotting a running vm hv_vss_daemon facilitates a FIFREEZE initiated from the hypervisor Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl> --- package/linux-tools/Config.in | 5 ++++ package/linux-tools/linux-tool-hv_vss_daemon.mk.in | 34 ++++++++++++++++++++++ .../linux-tools/linux-tool-hv_vss_daemon.service | 11 +++++++ 3 files changed, 50 insertions(+) create mode 100644 package/linux-tools/linux-tool-hv_vss_daemon.mk.in create mode 100644 package/linux-tools/linux-tool-hv_vss_daemon.service diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in index ab8cc38..4b750e2 100644 --- a/package/linux-tools/Config.in +++ b/package/linux-tools/Config.in @@ -116,4 +116,9 @@ config BR2_PACKAGE_LINUX_TOOLS_TMON tmon is a terminal-based tool (using curses) that allows the user to access thermal information about the system. +config BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON + bool "hv_vss_daemon" + select BR2_PACKAGE_LINUX_TOOLS + help + HyperV VSS snapshot daemon endmenu diff --git a/package/linux-tools/linux-tool-hv_vss_daemon.mk.in b/package/linux-tools/linux-tool-hv_vss_daemon.mk.in new file mode 100644 index 0000000..2de13a7 --- /dev/null +++ b/package/linux-tools/linux-tool-hv_vss_daemon.mk.in @@ -0,0 +1,34 @@ +################################################################################ +# +# hv_vss_daemon +# +################################################################################ + +LINUX_TOOLS += hv_vss_daemon + +HV_VSS_DAEMON_MAKE_OPTS = CROSS=$(TARGET_CROSS) + +define HV_VSS_DAEMON_BUILD_CMDS + $(Q)if test ! -f $(LINUX_DIR)/tools/hv/hv_vss_daemon.c ; then \ + echo "Your kernel version is too old and does not have the HyperV VSS daemon tool." ; \ + exit 1 ; \ + fi + + $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/hv \ + $(HV_VSS_DAEMON_MAKE_OPTS) \ + hv_vss_daemon +endef + +define HV_VSS_DAEMON_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/hv/hv_vss_daemon \ + $(TARGET_DIR)/usr/sbin/hv_vss_daemon +endef + +define HV_VSS_DAEMON_INSTALL_INIT_SYSTEMD + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + $(INSTALL) -m 0644 -D package/linux-tools/linux-tool-hv_vss_daemon.service \ + $(TARGET_DIR)/usr/lib/systemd/system/hv_vss_daemon.service + ln -sf ../../../../usr/lib/systemd/system/hv_vss_daemon.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service +endef + diff --git a/package/linux-tools/linux-tool-hv_vss_daemon.service b/package/linux-tools/linux-tool-hv_vss_daemon.service new file mode 100644 index 0000000..f653f7b --- /dev/null +++ b/package/linux-tools/linux-tool-hv_vss_daemon.service @@ -0,0 +1,11 @@ +[Unit] +Description=HyperV VSS daemon +After=syslog.target +ConditionVirtualization=microsoft + +[Service] +Type=simple +ExecStart=/usr/sbin/hv_vss_daemon --no-daemon + +[Install] +WantedBy=multi-user.target -- 2.7.4 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH] package/linux-tools: add hv_vss_daemon 2019-12-05 15:44 [Buildroot] [PATCH] package/linux-tools: add hv_vss_daemon Pascal de Bruijn @ 2019-12-05 20:55 ` Thomas Petazzoni 0 siblings, 0 replies; 2+ messages in thread From: Thomas Petazzoni @ 2019-12-05 20:55 UTC (permalink / raw) To: buildroot Hello Pascal, On Thu, 5 Dec 2019 16:44:28 +0100 Pascal de Bruijn <p.debruijn@unilogic.nl> wrote: > hyperv integration services for snapshotting a running vm > > hv_vss_daemon facilitates a FIFREEZE initiated from the hypervisor > > Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl> Thanks for the patch, but I believe it was insufficiently tested :-/ > diff --git a/package/linux-tools/linux-tool-hv_vss_daemon.mk.in b/package/linux-tools/linux-tool-hv_vss_daemon.mk.in > new file mode 100644 > index 0000000..2de13a7 > --- /dev/null > +++ b/package/linux-tools/linux-tool-hv_vss_daemon.mk.in > @@ -0,0 +1,34 @@ > +################################################################################ > +# > +# hv_vss_daemon > +# > +################################################################################ > + > +LINUX_TOOLS += hv_vss_daemon > + > +HV_VSS_DAEMON_MAKE_OPTS = CROSS=$(TARGET_CROSS) This is not sufficient, with just this, the user-space program is compiled with the host compiler, and therefore the build fails with: ERROR: architecture for "/usr/sbin/hv_vss_daemon" is "Advanced Micro Devices X86-64", should be "ARM" To fix this, don't pass CROSS=, but just pass $(LINUX_MAKE_FLAGS), just like most other linux-tools makefiles are doing. > +define HV_VSS_DAEMON_INSTALL_INIT_SYSTEMD This cannot work, as it will never be called: hv-vss-daemon is not a package from the point of view of Buildroot. What is a package is "linux-tools". The reason why HV_VSS_DAEMON_INSTALL_TARGET_CMDS works is because we have some special logic in package/linux-tools/linux-tools.mk: LINUX_TOOLS_POST_INSTALL_TARGET_HOOKS += $(foreach tool,$(LINUX_TOOLS),\ $(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\ $(call UPPERCASE,$(tool))_INSTALL_TARGET_CMDS)) but there is nothing like this for _INSTALL_INIT_SYSTEMD, so I don't see how this variable could have ever been called. Did you actually test this, and verified that the systemd unit was installed as expected ? Thanks, Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-12-05 20:55 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-12-05 15:44 [Buildroot] [PATCH] package/linux-tools: add hv_vss_daemon Pascal de Bruijn 2019-12-05 20:55 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox