[Buildroot] [PATCH v2 1/1] package/dtbocfg: new package

Herve Codina herve.codina at bootlin.com
Tue Sep 28 15:42:18 UTC 2021


dtbocfg, which stands for Device Tree Blob Overlay Configuration
File System, was developed to serve as a userspace API of Device
Tree Overlay.

https://github.com/ikwzm/dtbocfg

Signed-off-by: Herve Codina <herve.codina at bootlin.com>
---
Changes v1 -> v2:
  - Fixed indentation in Config.in file
  - Added test part to myself in DEVELOPERS file
  - Removed 'v' char from DTBOCFG_VERSION

 DEVELOPERS                                    |  4 ++
 package/Config.in                             |  1 +
 package/dtbocfg/Config.in                     |  8 ++++
 package/dtbocfg/dtbocfg.hash                  |  3 ++
 package/dtbocfg/dtbocfg.mk                    | 18 +++++++++
 support/testing/tests/package/test_dtbocfg.py | 37 +++++++++++++++++++
 6 files changed, 71 insertions(+)
 create mode 100644 package/dtbocfg/Config.in
 create mode 100644 package/dtbocfg/dtbocfg.hash
 create mode 100644 package/dtbocfg/dtbocfg.mk
 create mode 100644 support/testing/tests/package/test_dtbocfg.py

diff --git a/DEVELOPERS b/DEVELOPERS
index 1f977190ab..3e2edc1f3c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1148,6 +1148,10 @@ F:	package/sysrepo/
 N:	Henrique Camargo <henrique at henriquecamargo.com>
 F:	package/json-glib/
 
+N:	Hervé Codina <herve.codina at bootlin.com>
+F:	package/dtbocfg/
+F:	support/testing/tests/package/test_dtbocfg.py
+
 N:	Hiroshi Kawashima <kei-k at ca2.so-net.ne.jp>
 F:	package/gauche/
 F:	package/gmrender-resurrect/
diff --git a/package/Config.in b/package/Config.in
index 2f83c87582..0ce2f64d8a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -460,6 +460,7 @@ endmenu
 	source "package/dmidecode/Config.in"
 	source "package/dmraid/Config.in"
 	source "package/dt-utils/Config.in"
+	source "package/dtbocfg/Config.in"
 	source "package/dtv-scan-tables/Config.in"
 	source "package/dump1090/Config.in"
 	source "package/dvb-apps/Config.in"
diff --git a/package/dtbocfg/Config.in b/package/dtbocfg/Config.in
new file mode 100644
index 0000000000..c1e8318e5c
--- /dev/null
+++ b/package/dtbocfg/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_DTBOCFG
+	bool "dtbocfg"
+	help
+	  dtbocfg, which stands for Device Tree Blob Overlay
+	  Configuration File System, was developed to serve
+	  as a userspace API of Device Tree Overlay.
+
+	  https://github.com/ikwzm/dtbocfg
diff --git a/package/dtbocfg/dtbocfg.hash b/package/dtbocfg/dtbocfg.hash
new file mode 100644
index 0000000000..7db69f9e59
--- /dev/null
+++ b/package/dtbocfg/dtbocfg.hash
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256  faa53aefd7f7636c65e2b56bec223d2bc7676354e3ad9b5c1691aca349b9bbb8  dtbocfg-0.0.9.tar.gz
+sha256  e57cb9f2ed607cd95bf1b64371325c505c1ac8fe640a8c9933e7fe7637a38567  LICENSE
diff --git a/package/dtbocfg/dtbocfg.mk b/package/dtbocfg/dtbocfg.mk
new file mode 100644
index 0000000000..68beb1a45e
--- /dev/null
+++ b/package/dtbocfg/dtbocfg.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# dtbocfg
+#
+################################################################################
+
+DTBOCFG_VERSION = 0.0.9
+DTBOCFG_SITE = $(call github,ikwzm,dtbocfg,v$(DTBOCFG_VERSION))
+DTBOCFG_LICENSE = BSD-2-Clause
+DTBOCFG_LICENSE_FILES = LICENSE
+
+define DTBOCFG_LINUX_CONFIG_FIXUPS
+	$(call KCONFIG_ENABLE_OPT,CONFIG_OF_OVERLAY)
+	$(call KCONFIG_ENABLE_OPT,CONFIG_CONFIGFS_FS)
+endef
+
+$(eval $(kernel-module))
+$(eval $(generic-package))
diff --git a/support/testing/tests/package/test_dtbocfg.py b/support/testing/tests/package/test_dtbocfg.py
new file mode 100644
index 0000000000..d25b1692b4
--- /dev/null
+++ b/support/testing/tests/package/test_dtbocfg.py
@@ -0,0 +1,37 @@
+import os
+
+import infra.basetest
+
+
+class TestDtbocfg(infra.basetest.BRTest):
+    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
+        """
+        BR2_LINUX_KERNEL=y
+        BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+        BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.7"
+        BR2_LINUX_KERNEL_USE_DEFCONFIG=y
+        BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
+        BR2_PACKAGE_DTBOCFG=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+
+    def test_run(self):
+        img = os.path.join(self.builddir, "images", "rootfs.cpio")
+        kernel = os.path.join(self.builddir, "images", "zImage")
+        kernel_cmdline = ["console=ttyAMA0"]
+        dtb = infra.download(self.downloaddir, "vexpress-v2p-ca9.dtb")
+        options = ["-M", "vexpress-a9", "-dtb", dtb, "-initrd", img]
+
+        self.emulator.boot(arch="armv7", kernel=kernel,
+                           kernel_cmdline=kernel_cmdline,
+                           options=options)
+        self.emulator.login()
+        self.assertRunOk("modprobe dtbocfg.ko")
+        self.assertRunOk("mkdir /tmp/config && mount -t configfs none /tmp/config")
+
+        # Check that overlays directory is present.
+        # From dtbocfg site (https://github.com/ikwzm/dtbocfg):
+        #   If /config/device-tree/overlays is created, it is ready to use
+        #   dtbocfg
+        self.assertRunOk("ls /tmp/config/device-tree/overlays/")
-- 
2.31.1



More information about the buildroot mailing list