Configure Yocto Project* and VTune Profiler with the Integration Layer
Intel® VTune™ Profiler can collect and analyze performance data on embedded Linux* devices running Yocto Project*. This topic provides an example of setting up the VTune Profiler to collect performance data on an embedded device with Yocto Project 1.8 installed using the Intel VTune Profiler integration layer provided with the product installation files. The process integrates the VTune Profiler product drivers with the target package and includes them in the embedded device image. Root access to the kernel is required.
VTune Profiler is able to collect some performance data without installing the VTune Profiler drivers. To collect driverless event-based sampling data, installing the drivers and root access is not required. For full capabilities, install the VTune Profiler drivers as described here.
Select the Target Package
VTune Profiler provides two Yocto Project recipes in the following packages:
The vtune_profiler_target_sep_x86_64.tgz package includes the intel-vtune-sep-driver recipe, which enables performance data collection using hardware event-based sampling. Attempting to collect stacks when using this recipe will automatically switch to driverless collection mode. This recipe has minimal requirements for Linux kernel configuration.
The vtune_profiler_target_x86_64.tgz package includes the intel-vtune-drivers recipe, which enables the full performance data capabilities using hardware event-based sampling. This recipe has additional requirements for Linux kernel configuration. The intel-vtune-drivers recipe is a superset of the intel-vtune-sep-driver recipe.
Only one recipe can be used at a time. There is no difference between the x86 and x86_64 target packages for building recipes within Yocto Project. Both can be used on either 32 bit or 64 bit systems.
Download the VTune Profiler target package or locate the package in the <install-dir>/target/linux directory on the host system where VTune Profiler is installed.
Copy the selected target package to a location on the Yocto Project build system.
Prepare the Integration Layer
On the Yocto Project build system, extract the vtune_profiler_target_sep_x86_64.tgz or vtune_profiler_target_x86_64.tgz archive to a writeable location.
cd $HOME tar xvzf vtune_profiler_target_x86_64.tgz
(Optional) Modify the $HOME/vtune_profiler_<version>/sepdk/vtune-layer/conf/user.conf file to specify user settings.
If the VTune Profiler recipe has been split from the target package, specify one of the following paths:
Path to unzipped target package: VTUNE_TARGET_PACKAGE_DIR = "$HOME/vtune_profiler_<version>"
Path to VTune Profiler: VTUNE_PROFILER_2020_DIR = "/opt/intel/vtune_profiler"
To integrate the SEP driver during system boot:
Specify ADD_TO_INITD = "y" for init-based Yocto systems;
Or specify ADD_TO_SYSTEMD = "y" for systemd-based Yocto systems.
In the Yocto Project development environment, add the path to the layer to the bblayer.conf file. For example:
vi conf/bblayers.conf BBLAYERS = "$HOME/vtune_profiler_<version>/sepdk/vtune-layer\"
Your file should look similar to the following:
BBLAYERS ?= " \ $HOME/source/poky/meta \ $HOME/source/poky/meta-poky \ $HOME/source/poky/meta-yocto-bsp \ $HOME/source/poky/meta-intel \ $HOME/vtune_profiler/sepdk/vtune-layer \ "
Specify the Intel VTune Profiler recipe in conf/local.conf. In this example, the intel-vtune-drivers is used.
vi "conf/local.conf" IMAGE_INSTALL_append = " intel-vtune-drivers"NOTE:
You cannot add both intel-vtune-drivers and intel-vtune-sep-driver at the same time.
Build and Flash the Target Operating System
Build the target operating system. For example:
If you modified the kernel configuration options, make sure the kernel is recompiled.
- Flash the operating system to the embedded device.
Configure and Run Remote Analysis
Use the following steps on the host system to set up and launch the analysis on the embedded device:
Set up a password-less SSH access to the target using RSA keys.
Start the analysis.