kumquat-buildroot/package/linux-tools/Config.in
Pascal de Bruijn 2703383c72 package/linux-tools: add hyperv integration services
The hyperv integration services offer convenience features for guest
operating systems running on the microsoft hyperv virtualization
platform. They roughly are for HyperV what openvmtools are for VMWare.

The installed binary names are derived from what seems common in large
distros like RedHat:

  linux kernel source name -> installed binary name
             hv_vss_daemon -> hypervvssd
             hv_kvp_daemon -> hypervkvpd
           hv_fcopy_daemon -> hypervfcopyd

Each tool was introduced at different points in the kernel history, so
we need to check each of them.

We provide a single init script that is responsible for starting all
enabled programs. The global status will be the status of the last
program to fail to start, or empty (i.e. success) if they all started
successfuly.

However, we provide one systemd unit per program, because it is not easy
to use a single unit to start (and monitor) more than one executable.
Additionally, we do not provide a template that is filled at tinstall
time either, because it does not gain much (three simple units vs. a
template and some replacement code in the .mk).

Finally, the key-value daemon uses a few helper scripts to get/set the
network config. All are optional (their presence is checked before
running them), but one, hv_set_ifconfig. However, it is not strictly
speaking required either, so we just symlink it to /bin/true to avoid
any warning at runtime. Providing actual helpers is left to the end
user, to adapt to their own environment.

Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl>
[yann.morin.1998@free.fr:
  - aggregate all three tools in a single sub-package
  - introduce the main HV option, use a sub-option for each tool
  - aggregate the three init scripts into one
  - don't install the helpers; symlink the mandatory one
  - don't create symlinks for systemd units (systemctl preset-all does
    it for us now)
  - expand commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-01-04 16:08:34 +01:00

158 lines
4.8 KiB
Plaintext

menu "Linux Kernel Tools"
# No prompt, this is sourced by linux/Config.in as this
# is no real package and really belongs to the kernel.
config BR2_PACKAGE_LINUX_TOOLS
bool
config BR2_PACKAGE_LINUX_TOOLS_CPUPOWER
bool "cpupower"
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_PCIUTILS
help
cpupower is a collection of tools to examine and tune power
saving related features of your processor.
config BR2_PACKAGE_LINUX_TOOLS_GPIO
bool "gpio"
select BR2_PACKAGE_LINUX_TOOLS
help
gpio is a collection of tools to get information about,
control and monitor gpios present on system.
These tools use new gpio ABI which will deprecate sysfs gpio
interface in the future.
These tools are available only from kernel version 4.8.
config BR2_PACKAGE_LINUX_TOOLS_IIO
bool "iio"
select BR2_PACKAGE_LINUX_TOOLS
help
iio is a collection of tools to get information about,
control and monitor iio devices present on system.
These tools are available only from kernel version 4.7.
config BR2_PACKAGE_LINUX_TOOLS_PCI
bool "pci"
select BR2_PACKAGE_LINUX_TOOLS
help
pcitest is a tool for testing capabilities related to a
PCI Endpoint (only works with specific Endpoints).
These tools are available only from kernel version 4.20.
config BR2_PACKAGE_LINUX_TOOLS_PERF
bool "perf"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
select BR2_PACKAGE_LINUX_TOOLS
help
perf (sometimes "Perf Events" or perf tools, originally
"Performance Counters for Linux") - is a performance
analyzing tool in Linux, available from kernel version
2.6.31. User-space controlling utility, called 'perf' has
git-like interface with subcommands. It is capable of
statistical profiling of entire system (both kernel and user
code), single CPU or severals threads.
This will build and install the userspace 'perf'
command.
Your kernel must have CONFIG_PERF_EVENTS enabled to use perf
profiling. Buildroot automatically enables this in the kernel
configuration.
https://perf.wiki.kernel.org/
if BR2_PACKAGE_LINUX_TOOLS_PERF
config BR2_PACKAGE_LINUX_TOOLS_PERF_TUI
bool "enable perf TUI"
depends on BR2_USE_MMU # slang
select BR2_PACKAGE_SLANG
help
Enable the TUI interface for perf which requires a TTY and
enables zooming into DSOs and threads as well as other
features.
endif
config BR2_PACKAGE_LINUX_TOOLS_SELFTESTS
bool"selftests"
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
depends on BR2_USE_MMU # bash
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_BASH # runtime
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_NCURSES_TARGET_PROGS # runtime (tput)
select BR2_PACKAGE_KMOD
select BR2_PACKAGE_KMOD_TOOLS # runtime (modprobe -n)
select BR2_PACKAGE_POPT
select BR2_PACKAGE_LIBCAP_NG
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS # runtime (taskset)
help
Build and install (to /usr/lib/kselftests) kernel selftests.
Use of this option implies you know the process of using and
compiling the kernel selftests. The Makefile to build and
install these is very noisy and may appear to cause your
build to fail for strange reasons.
This is very much a use at your risk option and may not work
for every setup or every architecture.
comment "selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dynamic library"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS || BR2_STATIC_LIBS
config BR2_PACKAGE_LINUX_TOOLS_TMON
bool "tmon"
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_NCURSES
help
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