kas/installer/Kconfig | 10 +++++++
kas/installer/add-device-info-collector.yaml | 14 ++++++++++
.../
device-info-collector.bb | 27 ++++++++++++++++++
.../files/usr/bin/device-info-collector.sh | 28 +++++++++++++++++++
4 files changed, 79 insertions(+)
create mode 100644 kas/installer/add-device-info-collector.yaml
create mode 100644 meta-isar/recipes-installer/device-info-collector/
device-info-collector.bb
create mode 100755 meta-isar/recipes-installer/device-info-collector/files/usr/bin/device-info-collector.sh
diff --git a/kas/installer/Kconfig b/kas/installer/Kconfig
index 0b891c9a..ccac6471 100644
--- a/kas/installer/Kconfig
+++ b/kas/installer/Kconfig
@@ -82,6 +82,16 @@ config INSTALLER_TARGET_OVERWRITE
endif
+
+config INSTALLER_ADD_DEVICE_INFO_COLLECTOR
+ bool "Add Device Info Collector"
+ default n
+
+config KAS_INCLUDE_INSTALLER_ADD_DEVICE_INFO_COLLECTOR
+ string
+ default "kas/installer/add-device-info-collector.yaml"
+ depends on INSTALLER_ADD_DEVICE_INFO_COLLECTOR
+
config INSTALLER_TTY_SERVICES
string "TTY Service to use"
default "getty@tty1 serial-getty@ttyS0" if !INSTALL_UNATTENDED
diff --git a/kas/installer/add-device-info-collector.yaml b/kas/installer/add-device-info-collector.yaml
new file mode 100644
index 00000000..22020679
--- /dev/null
+++ b/kas/installer/add-device-info-collector.yaml
@@ -0,0 +1,14 @@
+# This software is a part of ISAR.
+# Copyright (C) Siemens AG, 2025
+#
+# SPDX-License-Identifier: MIT
+
+header:
+ version: 14
+
+local_conf_header:
+ target_bootstrapper-add-device-info-collector: |
+ TARGET_BOOTSTRAPPER_ADDITIONAL_PACKAGES:append = " device-info-collector"
+ TARGET_BOOTSTRAPPER_TASK_device-info-collector[script] = "device-info-collector.sh"
+ TARGET_BOOTSTRAPPER_TASK_device-info-collector[workdir] = "/usr/bin"
+ TARGET_BOOTSTRAPPER_TASK_device-info-collector[effort] = "1"
diff --git a/meta-isar/recipes-installer/device-info-collector/
device-info-collector.bb b/meta-isar/recipes-installer/device-info-collector/
device-info-collector.bb
new file mode 100644
index 00000000..e858869c
--- /dev/null
+++ b/meta-isar/recipes-installer/device-info-collector/
device-info-collector.bb
@@ -0,0 +1,27 @@
+# This software is a part of ISAR.
+# Copyright (C) Siemens AG, 2024-2025
+#
+# SPDX-License-Identifier: MIT
+
+inherit dpkg-raw
+
+DEBIAN_DEPENDS += "\
+ , dmidecode \
+ , lshw, pci.ids, usb.ids \
+ , pciutils \
+ , usbutils \
+ , util-linux \
+ "
+
+SRC_URI += " \
+ file://usr/bin/device-info-collector.sh \
+ "
+
+do_install[cleandirs] = " \
+ ${D}/usr/bin/ \
+ ${D}/usr/lib/device-info-collector/ \
+ ${D}/install/device-infos/ \
+ "
+do_install() {
+ install -m 0755 ${WORKDIR}/usr/bin/device-info-collector.sh ${D}/usr/bin/device-info-collector.sh
+}
diff --git a/meta-isar/recipes-installer/device-info-collector/files/usr/bin/device-info-collector.sh b/meta-isar/recipes-installer/device-info-collector/files/usr/bin/device-info-collector.sh
new file mode 100755
index 00000000..257d80a1
--- /dev/null
+++ b/meta-isar/recipes-installer/device-info-collector/files/usr/bin/device-info-collector.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# This software is a part of ISAR.
+# Copyright (C) Siemens AG, 2024-2025
+#
+# SPDX-License-Identifier: MIT
+
+BASE_DIR="/install/device-infos"
+
+SERIAL_NUMBER=$(dmidecode -s system-serial-number | tr '[:upper:]' '[:lower:]' | tr -d "[:space:]")
+TARGET_DIR="${BASE_DIR}/${SERIAL_NUMBER}/$(date -u +%4Y-%m-%d_%H-%S)"
+
+echo "Use ${TARGET_DIR} to store the collected device infos."
+mkdir -p ${TARGET_DIR}
+
+echo "Collecting most important device attributes..."
+
+echo "Collecting peripherals"
+lshw >> ${TARGET_DIR}/lshw.out
+lspci >> ${TARGET_DIR}/lspci.out
+lsusb >> ${TARGET_DIR}/lsusb.out
+lsblk >> ${TARGET_DIR}/lsblk.out
+
+echo "Collecting cpu info..."
+lscpu >> ${TARGET_DIR}/lscpu.out
+cat /proc/cpuinfo > ${TARGET_DIR}/proc_cpuinfo
+
+echo "Collecting dmi / smbios..."
+dmidecode --dump-bin ${TARGET_DIR}/dmidecode.dump
--
2.39.5