- Last edited 7 months ago ago
How to build Linux kernel user space tools
Contents
1 Article purpose[edit]
This article provides the basic information needed to build the user space tools available on the Linux® kernel.
2 Introduction[edit]
The Linux kernel provides some user-space tools that are available in the tools directory [1] of the source tree.
These tools are not compiled by default when compiling the Linux kernel for the target board. They can be compiled independently, depending on the user's needs.
3 Installing the trace and debug tool on your target board[edit]
3.1 Using the STM32MPU Embedded Software distribution[edit]
3.1.1 Developer Package[edit]
Prerequisites, please ensure:
The available user space tools can be listed by using the following commands in the Linux kernel source root path:
cd <Linux_kernel_source_path> make tools/help O="<Linux_kernel_build_dir>" (optional) Possible targets: acpi - ACPI tools cgroup - cgroup tools cpupower - a tool for all things x86 CPU power firewire - the userspace part of nosy, an IEEE-1394 traffic sniffer freefall - laptop accelerometer program for disk protection gpio - GPIO tools hv - tools used when in Hyper-V clients iio - IIO tools kvm_stat - top-like utility for displaying kvm statistics leds - LEDs tools liblockdep - user-space wrapper for kernel locking-validator bpf - misc BPF tools perf - Linux performance measurement and analysis tool selftests - various kernel selftests spi - spi tools objtool - an ELF object analysis tool tmon - thermal monitoring and tuning tool turbostat - Intel CPU idle stats and freq reporting tool usb - USB testing tools virtio - vhost test module vm - misc vm tools wmi - WMI interface examples x86_energy_perf_policy - Intel energy policy tool
Note: some tools are made for specific platforms (ARM, x86, RISC, and so on), so cannot be used on STM32MPU systems
The following basic steps must be done :
- Compiling the application:
- - Refer to <Linux kernel installation directory>/README.HOW_TO.txt helper file to know how to compile (the latest version of this helper file is also available in GitHub: README.HOW_TO.txt ).
- - Ensure at least that the kernel configuration file is generated (.config) (information available in README.HWO_TO file previously mentioned)
- - Compile the expected tool (i.e. iio, spi...)
cd <Linux_kernel_source_path>/tools make <tool> [O=<Linux_kernel_build_dir>]
Note: The 'O' option can be used to specify the output directory
- Deploying the application on a board:
- -The binary is generated in the directory path <Linux_kernel_build_dir>/<tool>
- -Push it onto the board.
scp <tool_binary> root@<board ip address>:/<dest_path>
PS: please ensure that the <dest_path> is known in the $PATH to execute the tool binary from anywhere on the target board.
3.1.2 Distribution Package[edit]
There is currently no recipe to build the Linux kernel user space tools, so the Developer package has to be used.