Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/linux-tools: add USB tools (testusb and ffs-test)
@ 2023-03-24  9:33 Luca Ceresoli via buildroot
  2023-03-24 10:09 ` Herve Codina via buildroot
  2023-03-24 10:27 ` yann.morin
  0 siblings, 2 replies; 5+ messages in thread
From: Luca Ceresoli via buildroot @ 2023-03-24  9:33 UTC (permalink / raw)
  To: buildroot
  Cc: Hervé Codina, Luca Ceresoli, Yann E . MORIN,
	Thomas Petazzoni

Extend the linux-tools package to also build the userspace USB tools, which
currently include testusb and ffs-test.

These tools are in the kernel tree since a long time, but a Makefile was
added only in 5.9 to allow building in the same way as other tools provided
with the kernel. Here we use the Makefile and thus version >= 5.9 is
required. Support for older kernels may be added later if needed.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 DEVELOPERS                                    |  1 +
 package/linux-tools/Config.in                 | 26 ++++++++++++
 package/linux-tools/linux-tool-usbtools.mk.in | 42 +++++++++++++++++++
 3 files changed, 69 insertions(+)
 create mode 100644 package/linux-tools/linux-tool-usbtools.mk.in

diff --git a/DEVELOPERS b/DEVELOPERS
index b6d288c54fa9..67c6004ddf2e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1874,6 +1874,7 @@ F:	configs/zynqmp_zcu106_defconfig
 F:	package/agentpp/
 F:	package/exim/
 F:	package/libpjsip/
+F:	package/linux-tools/linux-tool-usbtools.mk.in
 F:	package/qpid-proton/
 F:	package/rtl8188eu/
 F:	package/snmppp/
diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
index 8a0b6d5802cc..451b0eeff5bb 100644
--- a/package/linux-tools/Config.in
+++ b/package/linux-tools/Config.in
@@ -135,6 +135,32 @@ comment "selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dyna
 	depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS || \
 		BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
 
+config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS
+	bool "USB test programs"
+	select BR2_PACKAGE_LINUX_TOOLS
+	help
+	  Build and install the USB test tools.
+
+	  These tools exist since Linux 2.6.35, but Buildroot can build
+	  them only with kernel versions 5.9 and later.
+
+if BR2_PACKAGE_LINUX_TOOLS_USBTOOLS
+
+config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_TESTUSB
+	bool "testusb"
+	help
+	  testusb issues ioctls to perform the tests implemented by the
+	  kernel driver.  It can generate a variety of transfer
+	  patterns.
+
+	  See http://www.linux-usb.org/usbtest/
+
+config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_FFSTEST
+	bool "ffs-test"
+	help
+	  User mode filesystem api for usb composite function
+endif
+
 config BR2_PACKAGE_LINUX_TOOLS_TMON
 	bool "tmon"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/linux-tools/linux-tool-usbtools.mk.in b/package/linux-tools/linux-tool-usbtools.mk.in
new file mode 100644
index 000000000000..28b3aff25cc2
--- /dev/null
+++ b/package/linux-tools/linux-tool-usbtools.mk.in
@@ -0,0 +1,42 @@
+################################################################################
+#
+# usbtools
+#
+################################################################################
+
+LINUX_TOOLS += usbtools
+
+USBTOOLS_MAKE_OPTS = $(LINUX_MAKE_FLAGS) LDFLAGS="$(TARGET_LDFLAGS)"
+
+define USBTOOLS_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/usb/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old to build the USB tools." ; \
+		echo "At least kernel 5.9 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/usb \
+		$(USBTOOLS_MAKE_OPTS) \
+		all
+endef
+
+ifeq ($(BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_TESTUSB),)
+define USBTOOLS_INSTALL_REMOVE_TESTUSB
+	$(RM) -rf $(TARGET_DIR)/usr/bin/testusb
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_FFSTEST),)
+define USBTOOLS_INSTALL_REMOVE_FFSTEST
+	$(RM) -rf $(TARGET_DIR)/usr/bin/ffs-test
+endef
+endif
+
+define USBTOOLS_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/usb \
+		$(USBTOOLS_MAKE_OPTS) \
+		DESTDIR=$(TARGET_DIR) \
+		install
+	$(USBTOOLS_INSTALL_REMOVE_TESTUSB)
+	$(USBTOOLS_INSTALL_REMOVE_FFSTEST)
+endef
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-03-27 13:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-24  9:33 [Buildroot] [PATCH] package/linux-tools: add USB tools (testusb and ffs-test) Luca Ceresoli via buildroot
2023-03-24 10:09 ` Herve Codina via buildroot
2023-03-24 10:13   ` Thomas Petazzoni via buildroot
2023-03-24 10:27 ` yann.morin
2023-03-27 13:57   ` Luca Ceresoli via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox