* [PATCH v2 0/2] linux-custom: add linux-tools package and perf
@ 2025-11-26 13:02 'Isaac True' via isar-users
2025-11-26 13:02 ` [PATCH v2 1/2] linux-custom: add linux-tools package and build perf 'Isaac True' via isar-users
2025-11-26 13:02 ` [PATCH v2 2/2] doc: custom_kernel: add perf and linux-tools 'Isaac True' via isar-users
0 siblings, 2 replies; 4+ messages in thread
From: 'Isaac True' via isar-users @ 2025-11-26 13:02 UTC (permalink / raw)
To: isar-users; +Cc: Isaac True
Modify the linux-custom recipe to additionally generate a linux-tools
package, build the perf binary, and add this binary to the new package.
This is useful for profiling application and kernel performance on
targets.
Changes since v1:
- Make generation of the linux-tools package configurable. If the
`KERNEL_BUILD_TOOLS` variable is set to `"1"`, perf will be built
and the package will be generated.
Isaac True (2):
linux-custom: add linux-tools package and build perf
doc: custom_kernel: add perf and linux-tools
doc/custom_kernel.md | 9 +++++----
meta/recipes-kernel/linux/files/debian/control.tmpl | 10 ++++++++++
meta/recipes-kernel/linux/files/debian/isar/build.tmpl | 3 +++
.../recipes-kernel/linux/files/debian/isar/common.tmpl | 2 ++
.../linux/files/debian/isar/install.tmpl | 7 +++++++
meta/recipes-kernel/linux/files/debian/rules.tmpl | 2 +-
meta/recipes-kernel/linux/linux-custom.inc | 10 ++++++++++
7 files changed, 38 insertions(+), 5 deletions(-)
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251126130534.3484253-2-itrue%40emlix.com.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] linux-custom: add linux-tools package and build perf
2025-11-26 13:02 [PATCH v2 0/2] linux-custom: add linux-tools package and perf 'Isaac True' via isar-users
@ 2025-11-26 13:02 ` 'Isaac True' via isar-users
2025-11-27 7:22 ` 'Jan Kiszka' via isar-users
2025-11-26 13:02 ` [PATCH v2 2/2] doc: custom_kernel: add perf and linux-tools 'Isaac True' via isar-users
1 sibling, 1 reply; 4+ messages in thread
From: 'Isaac True' via isar-users @ 2025-11-26 13:02 UTC (permalink / raw)
To: isar-users; +Cc: Isaac True
Add an additional package to the linux-custom recipe which can be used
to deliver tools built from the kernel sources.
Additionally, build the perf tool as part of the kernel build process
and add it to the linux-tools package, allowing users to install it to
their target rootfs.
Signed-off-by: Isaac True <itrue@emlix.com>
---
meta/recipes-kernel/linux/files/debian/control.tmpl | 10 ++++++++++
meta/recipes-kernel/linux/files/debian/isar/build.tmpl | 3 +++
.../recipes-kernel/linux/files/debian/isar/common.tmpl | 2 ++
.../linux/files/debian/isar/install.tmpl | 7 +++++++
meta/recipes-kernel/linux/files/debian/rules.tmpl | 2 +-
meta/recipes-kernel/linux/linux-custom.inc | 10 ++++++++++
6 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-kernel/linux/files/debian/control.tmpl b/meta/recipes-kernel/linux/files/debian/control.tmpl
index ee87cf92..edb3960a 100644
--- a/meta/recipes-kernel/linux/files/debian/control.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/control.tmpl
@@ -69,3 +69,13 @@ Conflicts: linux-kbuild-${KERNEL_NAME_PROVIDED}
Description: ${KERNEL_NAME_PROVIDED} Linux kbuild scripts and tools for @KR@
This package provides kernel kbuild scripts and tools for @KR@
This is useful for people who need to build external modules
+
+Package: linux-tools-${KERNEL_NAME_PROVIDED}
+Build-Profiles: <pkg.${BPN}.kernel pkg.${BPN}.tools>
+Architecture: any
+Multi-Arch: foreign
+Depends: ${misc:Depends}, ${shlib:Depends}
+Description: ${KERNEL_NAME_PROVIDED} Linux tools for @KR@
+ This package provides kernel tools for @KR@.
+ .
+ This is useful for people who want to run things like perf.
diff --git a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
index b4c105c1..72edfa42 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl
@@ -23,6 +23,9 @@ do_build() {
if echo "${DEB_BUILD_PROFILES}" | grep -q "kernel"; then # Build kernel scripts and tools
${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}"
+ if echo "${DEB_BUILD_PROFILES}" | grep -q "tools"; then # Build kernel tools
+ ${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" -C tools/perf
+ fi
elif echo "${DEB_BUILD_PROFILES}" | grep -q "kbuild"; then # Build kernel scripts and tools
${MAKE} O=${KERNEL_BUILD_DIR} ${PARALLEL_MAKE} ${KERNEL_EXTRA_BUILDARGS} KCFLAGS="${KCFLAGS}" KAFLAGS="${KAFLAGS}" scripts
if grep -q -E "CONFIG_STACK_VALIDATION=y|CONFIG_HAVE_OBJTOOL=y" ${KERNEL_BUILD_DIR}/.config && [ -d "tools/objtool" ]; then
diff --git a/meta/recipes-kernel/linux/files/debian/isar/common.tmpl b/meta/recipes-kernel/linux/files/debian/isar/common.tmpl
index f9cc2f02..a104784a 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/common.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/common.tmpl
@@ -12,6 +12,7 @@ KERNEL_PKG_LIBC_HEADERS=linux-libc-dev
KERNEL_PKG_LIBC_HEADERS_CROSS=linux-libc-dev-${DISTRO_ARCH}-cross
KERNEL_PKG_KERN_KBUILD=linux-kbuild-${KERNEL_NAME_PROVIDED}
KERNEL_PKG_KERN_KBUILD_CROSS=${KERNEL_PKG_KERN_KBUILD}-${DISTRO_ARCH}-cross
+KERNEL_PKG_TOOLS=linux-tools-${KERNEL_NAME_PROVIDED}
# Force creating debian package with valid host arch for -native build
# Use a cross build to comply with arch specific kernel defconfigs
@@ -38,6 +39,7 @@ deb_libc_hdr_dir=${deb_top_dir}/${KERNEL_PKG_LIBC_HEADERS}
deb_libc_hdr_cross_dir=${deb_top_dir}/${KERNEL_PKG_LIBC_HEADERS_CROSS}
deb_kern_kbuild_dir=${deb_top_dir}/${KERNEL_PKG_KERN_KBUILD}
deb_kern_kbuild_cross_dir=${deb_top_dir}/${KERNEL_PKG_KERN_KBUILD_CROSS}
+deb_tools_dir=${deb_top_dir}/${KERNEL_PKG_TOOLS}
# Array of packages to be generated
declare -A kern_pkgs
diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
index 6fa94508..76d238a0 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
@@ -68,6 +68,9 @@ do_install() {
install_dtbs
install_kmods
install_headers
+ if echo "${DEB_BUILD_PROFILES}" | grep -q "tools"; then
+ install_tools
+ fi
fi
# Stop tracing
@@ -137,6 +140,10 @@ install_dtbs() {
${MAKE} O=${O} INSTALL_DTBS_PATH=${deb_img_dir}/usr/lib/linux-image-${krel} dtbs_install
}
+install_tools() {
+ install -Dm0755 ${O}/perf ${deb_tools_dir}/usr/bin/perf
+}
+
install_kmods() {
[ -n "${CONFIG_MODULES}" ] || return 0
${MAKE} O=${O} modules_install \
diff --git a/meta/recipes-kernel/linux/files/debian/rules.tmpl b/meta/recipes-kernel/linux/files/debian/rules.tmpl
index 598ae93f..a3b25396 100755
--- a/meta/recipes-kernel/linux/files/debian/rules.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/rules.tmpl
@@ -45,4 +45,4 @@ override_dh_strip_nondeterminism:
true
override_dh_strip:
- unset DEB_HOST_GNU_TYPE && dh_strip -Xvmlinu --no-automatic-dbgsym
+ unset DEB_HOST_GNU_TYPE && dh_strip -Xvmlinu -Xperf --no-automatic-dbgsym
diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
index ccbea976..df862ef3 100644
--- a/meta/recipes-kernel/linux/linux-custom.inc
+++ b/meta/recipes-kernel/linux/linux-custom.inc
@@ -169,6 +169,14 @@ RECIPE_PROVIDES:append:libcdev = " \
linux-libc-dev-${DISTRO_ARCH}-cross \
"
+# Set to "1" to enable the tools build profile and build the linux-tools package
+KERNEL_BUILD_TOOLS ??= "0"
+
+# Provide the linux-tools package if the tools build profile has been enabled
+RECIPE_PROVIDES:append = " \
+ ${@ bb.utils.contains('DEB_BUILD_PROFILES', 'pkg.{}.tools'.format(d.getVar('BPN')), 'linux-tools-{}'.format(d.getVar('KERNEL_NAME_PROVIDED')), '', d)} \
+"
+
# When cross-profile is active:
# kbuild package is provided by -native or -kbuildtarget variant. Also headers
# provisioning moves over to ensure those variants are pulled, although the
@@ -231,6 +239,8 @@ def get_additional_build_profiles(d):
profiles += ' pkg.{}.nolibcdev'.format(d.getVar('BPN'))
elif bb.utils.to_boolean(d.getVar('KERNEL_LIBC_DEV_ARCH_ALL')):
profiles += ' pkg.{}.libcdev-arch-all'.format(d.getVar('BPN'))
+ if bb.utils.to_boolean(d.getVar('KERNEL_BUILD_TOOLS')):
+ profiles += ' pkg.{}.tools'.format(d.getVar('BPN'))
return profiles
KERNEL_LIBC_DEV_ARCH = "${@ bb.utils.contains('DEB_BUILD_PROFILES', 'pkg.{}.libcdev-arch-all'.format(d.getVar('BPN')), 'all\nMulti-Arch: foreign', 'any', d) }"
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251126130534.3484253-3-itrue%40emlix.com.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] doc: custom_kernel: add perf and linux-tools
2025-11-26 13:02 [PATCH v2 0/2] linux-custom: add linux-tools package and perf 'Isaac True' via isar-users
2025-11-26 13:02 ` [PATCH v2 1/2] linux-custom: add linux-tools package and build perf 'Isaac True' via isar-users
@ 2025-11-26 13:02 ` 'Isaac True' via isar-users
1 sibling, 0 replies; 4+ messages in thread
From: 'Isaac True' via isar-users @ 2025-11-26 13:02 UTC (permalink / raw)
To: isar-users; +Cc: Isaac True
Remove the "Package perf" from the future ideas list and add it to the
"Features" list, along with the new linux-tools package.
Signed-off-by: Isaac True <itrue@emlix.com>
---
doc/custom_kernel.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/doc/custom_kernel.md b/doc/custom_kernel.md
index ce5f1bf7..75ee12f3 100644
--- a/doc/custom_kernel.md
+++ b/doc/custom_kernel.md
@@ -68,15 +68,16 @@ The linux-custom recipe provides support for:
14. Support `devshell` (kernel configuration shall be applied)
+ 15. Produce a `linux-tools` package which includes `perf` if instructed to
+ (`KERNEL_BUILD_TOOLS` equals to `"1"`)
+
## Future
In the future, the recipe may be extended to:
- 1. Package perf
+ 1. Support inclusion/build of dts files listed in `SRC_URI`
- 2. Support inclusion/build of dts files listed in `SRC_URI`
-
- 3. Be compatible with Ubuntu
+ 2. Be compatible with Ubuntu
## Examples
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251126130534.3484253-4-itrue%40emlix.com.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] linux-custom: add linux-tools package and build perf
2025-11-26 13:02 ` [PATCH v2 1/2] linux-custom: add linux-tools package and build perf 'Isaac True' via isar-users
@ 2025-11-27 7:22 ` 'Jan Kiszka' via isar-users
0 siblings, 0 replies; 4+ messages in thread
From: 'Jan Kiszka' via isar-users @ 2025-11-27 7:22 UTC (permalink / raw)
To: Isaac True, isar-users
On 26.11.25 14:02, 'Isaac True' via isar-users wrote:
> Add an additional package to the linux-custom recipe which can be used
> to deliver tools built from the kernel sources.
>
> Additionally, build the perf tool as part of the kernel build process
> and add it to the linux-tools package, allowing users to install it to
> their target rootfs.
>
> Signed-off-by: Isaac True <itrue@emlix.com>
> ---
> meta/recipes-kernel/linux/files/debian/control.tmpl | 10 ++++++++++
> meta/recipes-kernel/linux/files/debian/isar/build.tmpl | 3 +++
> .../recipes-kernel/linux/files/debian/isar/common.tmpl | 2 ++
> .../linux/files/debian/isar/install.tmpl | 7 +++++++
> meta/recipes-kernel/linux/files/debian/rules.tmpl | 2 +-
> meta/recipes-kernel/linux/linux-custom.inc | 10 ++++++++++
> 6 files changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-kernel/linux/files/debian/control.tmpl b/meta/recipes-kernel/linux/files/debian/control.tmpl
> index ee87cf92..edb3960a 100644
> --- a/meta/recipes-kernel/linux/files/debian/control.tmpl
> +++ b/meta/recipes-kernel/linux/files/debian/control.tmpl
> @@ -69,3 +69,13 @@ Conflicts: linux-kbuild-${KERNEL_NAME_PROVIDED}
> Description: ${KERNEL_NAME_PROVIDED} Linux kbuild scripts and tools for @KR@
> This package provides kernel kbuild scripts and tools for @KR@
> This is useful for people who need to build external modules
> +
> +Package: linux-tools-${KERNEL_NAME_PROVIDED}
> +Build-Profiles: <pkg.${BPN}.kernel pkg.${BPN}.tools>
> +Architecture: any
> +Multi-Arch: foreign
> +Depends: ${misc:Depends}, ${shlib:Depends}
> +Description: ${KERNEL_NAME_PROVIDED} Linux tools for @KR@
> + This package provides kernel tools for @KR@.
> + .
> + This is useful for people who want to run things like perf.
Ok, now we have a build profile, that's good. But you are diverting from
how upstream Debian packages the tools - why? Just like linux-libc-dev,
linux-perf etc. should be modelled to be replacements of the original
packages. Also reuse upstream descriptions then.
Jan
--
Siemens AG, Foundational Technologies
Linux Expert Center
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/5a07dd76-3d55-4f02-841a-853f23b8c31c%40siemens.com.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-11-27 7:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-26 13:02 [PATCH v2 0/2] linux-custom: add linux-tools package and perf 'Isaac True' via isar-users
2025-11-26 13:02 ` [PATCH v2 1/2] linux-custom: add linux-tools package and build perf 'Isaac True' via isar-users
2025-11-27 7:22 ` 'Jan Kiszka' via isar-users
2025-11-26 13:02 ` [PATCH v2 2/2] doc: custom_kernel: add perf and linux-tools 'Isaac True' via isar-users
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox