N: Pascal de Bruijn <p.debruijn@unilogic.nl>
F: package/libargon2/
+F: package/linux-tools/S10hyperv
+F: package/linux-tools/hyperv*.service
+F: package/linux-tools/linux-tool-hv.mk.in
N: Pascal Huerst <pascal.huerst@gmail.com>
F: package/google-breakpad/
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
+ bool "hv"
+ depends on BR2_i386 || BR2_x86_64
+ select BR2_PACKAGE_LINUX_TOOLS
+ select BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON if !BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
+ help
+ Microsoft HyperV integration services
+
+ Relevant kernel configuration options: CONFIG_HYPERV,
+ CONFIG_HYPERV_UTILS.
+
+if BR2_PACKAGE_LINUX_TOOLS_HV
+
+config BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
+ bool
+
+config BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON
+ bool "hypervkvpd (hv_kvp_daemon)"
+ help
+ HyperV uses hypervkvpd (Key/Value Pair daemon) to retrieve
+ status information from your virtualized guest OS
+
+config BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON
+ bool "hypervfcopyd (hv_fcopy_daemon)"
+ select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
+ help
+ HyperV uses hypervfcopyd (File Copy daemon) to easily transfer
+ files to and from your virtualized guest OS
+
+config BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON
+ bool "hypervvssd (hv_vss_daemon)"
+ select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
+ help
+ HyperV uses hypervvssd (Volume Snapshot Service daemon) to
+ freeze your filesystems during snapshots and backups
+
+endif # BR2_PACKAGE_LINUX_TOOLS_HV
+
endmenu
--- /dev/null
+#!/bin/sh
+
+PROGS="@PROGS@"
+PIDDIR="/var/run"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/hyperv" ] && . "/etc/default/hyperv"
+
+start_one() {
+ printf 'Starting %s: ' "$1"
+ # shellcheck disable=SC2086 # we need the word splitting
+ start-stop-daemon -b -m -S -q -p "$PIDDIR/$1.pid" -x "/sbin/$1" -- -n
+ status=$?
+ if [ "$status" -eq 0 ]; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ return $status
+}
+
+start() {
+ # shellcheck disable=SC2086 # we need the word splitting
+ for prog in ${PROGS}; do
+ start_one "${prog}" || ret=$?
+ done
+ return $ret
+}
+
+stop_one() {
+ printf 'Stopping %s: ' "$1"
+ start-stop-daemon -K -q -p "$PIDDIR/$1.pid"
+ status=$?
+ if [ "$status" -eq 0 ]; then
+ rm -f "$PIDDIR/$1.pid"
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ return $status
+}
+
+stop() {
+ # shellcheck disable=SC2086 # we need the word splitting
+ for prog in ${PROGS}; do
+ stop_one "${prog}" || ret=$?
+ done
+ return $ret
+}
+
+restart() {
+ stop
+ sleep 1
+ start
+}
+
+case "$1" in
+ start|stop|restart)
+ "$1";;
+ reload)
+ # Restart, since there is no true "reload" feature.
+ restart;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload}"
+ exit 1
+esac
--- /dev/null
+[Unit]
+Description=HyperV FCopy daemon
+After=syslog.target
+ConditionVirtualization=microsoft
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/hypervfcopyd -n
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+[Unit]
+Description=HyperV KVP daemon
+After=syslog.target
+ConditionVirtualization=microsoft
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/hypervkvpd -n
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+[Unit]
+Description=HyperV VSS daemon
+After=syslog.target
+ConditionVirtualization=microsoft
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/hypervvssd -n
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+################################################################################
+#
+# hv_fcopy_daemon
+#
+################################################################################
+
+LINUX_TOOLS += hv
+
+# The programs to build, as known by the kernel:
+HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON) += hv_kvp_daemon
+HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON) += hv_fcopy_daemon
+HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON) += hv_vss_daemon
+
+# Give each tools the name most distros install them as:
+HV_hv_kvp_daemon = hypervkvpd
+HV_hv_fcopy_daemon = hypervfcopyd
+HV_hv_vss_daemon = hypervvssd
+
+HV_MAKE_OPTS = CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)"
+
+define HV_BUILD_CMDS
+ $(Q)for prog in $(HV_PROGS_y); do \
+ if test ! -f $(LINUX_DIR)/tools/hv/$${prog}.c ; then \
+ printf "Your kernel version is too old and does not have the HyperV %s tool." "$${prog}" ; \
+ exit 1 ; \
+ fi; \
+ done
+
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/hv \
+ $(HV_MAKE_OPTS) \
+ $(HV_PROGS_y)
+endef
+
+ifeq ($(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON),y)
+define HV_KVP_HELPER
+ @mkdir -p $(TARGET_DIR)/usr/libexec/hypervkvpd
+ $(Q)ln -sf /bin/true $(TARGET_DIR)/usr/libexec/hypervkvpd/hv_set_ifconfig
+endef
+endif
+
+define HV_INSTALL_TARGET_CMDS
+ $(foreach prog,$(HV_PROGS_y), \
+ $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/hv/$(prog) \
+ $(TARGET_DIR)/usr/sbin/$(HV_$(prog))
+ )
+ $(HV_KVP_HELPER)
+endef
+
+define HV_INSTALL_INIT_SYSTEMD
+ $(foreach prog,$(HV_PROGS_y), \
+ $(INSTALL) -m 0644 -D package/linux-tools/$(HV_$(prog)).service \
+ $(TARGET_DIR)/usr/lib/systemd/system/$(HV_$(prog)).service
+ )
+endef
+
+define HV_INSTALL_INIT_SYSV
+ $(INSTALL) -m 0755 -D package/linux-tools/S10hyperv \
+ $(TARGET_DIR)/etc/init.d/S10hyperv
+ $(SED) 's/@PROGS@/$(foreach prog,$(HV_PROGS_y),$(HV_$(prog)))/' \
+ $(TARGET_DIR)/etc/init.d/S10hyperv
+endef