Browse Source

package/systemd: Optionally disable hwdb

By default hwdb files are installed in /usr/lib/udev/hwdb.d
Currently they take about ~5MB. After first boot, systemd-hwdb tool
parses them and creates a binary in /etc/udev/hwdb.bin, which takes
another ~6.5MB.

In case of initramfs images, hwdb parsing is done every boot. This adds
about 2-3 seconds to boot time in case of rootfs on SDHC class 10
card (benchmarked with am335x board). NAND boot takes even longer.

Add config option to disable hwdb in systemd, for smaller images and
better boot performance.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Marcin Niestroj 8 years ago
parent
commit
42f9d9e37b
2 changed files with 17 additions and 0 deletions
  1. 11 0
      package/systemd/Config.in
  2. 6 0
      package/systemd/systemd.mk

+ 11 - 0
package/systemd/Config.in

@@ -84,6 +84,17 @@ config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
 
 
 	  http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
 	  http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html
 
 
+config BR2_PACKAGE_SYSTEMD_HWDB
+	bool "enable hwdb installation"
+	default y
+	help
+	  Enables hardware database installation to /usr/lib/udev/hwdb.d
+
+	  Disabling this option improves first boot time (or every boot
+	  time in case of initramfs images) and saves several MB space.
+
+	  https://www.freedesktop.org/software/systemd/man/hwdb.html
+
 config BR2_PACKAGE_SYSTEMD_BINFMT
 config BR2_PACKAGE_SYSTEMD_BINFMT
 	bool "enable binfmt tool"
 	bool "enable binfmt tool"
 	help
 	help

+ 6 - 0
package/systemd/systemd.mk

@@ -129,6 +129,12 @@ else
 SYSTEMD_CONF_OPTS += --disable-microhttpd
 SYSTEMD_CONF_OPTS += --disable-microhttpd
 endif
 endif
 
 
+ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
+SYSTEMD_CONF_OPTS += --enable-hwdb
+else
+SYSTEMD_CONF_OPTS += --disable-hwdb
+endif
+
 ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
 ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
 SYSTEMD_CONF_OPTS += --enable-binfmt
 SYSTEMD_CONF_OPTS += --enable-binfmt
 else
 else