diff --git a/package/Config.in.host b/package/Config.in.host
index 914491e210..c0ac4fbbcc 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -17,6 +17,7 @@ menu "Host utilities"
 	source "package/dtc/Config.in.host"
 	source "package/e2fsprogs/Config.in.host"
 	source "package/e2tools/Config.in.host"
+	source "package/eudev/Config.in.host"
 	source "package/f2fs-tools/Config.in.host"
 	source "package/faketime/Config.in.host"
 	source "package/fatcat/Config.in.host"
diff --git a/package/eudev/Config.in.host b/package/eudev/Config.in.host
new file mode 100644
index 0000000000..87dfc43912
--- /dev/null
+++ b/package/eudev/Config.in.host
@@ -0,0 +1,3 @@
+# Select this if you need host eudev tools (e.g. udevadm)
+config BR2_PACKAGE_HOST_EUDEV
+	bool
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 2a3adb849c..99b5befd09 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -55,4 +55,40 @@ define EUDEV_USERS
 	- - kvm -1 * - - - kvm nodes
 endef
 
+HOST_EUDEV_DEPENDENCIES = host-gperf host-pkgconf
+
+HOST_EUDEV_SYSCONFDIR = $(if $(BR2_PACKAGE_SYSTEMD),/usr/lib,/etc)
+HOST_EUDEV_CONF_OPTS = \
+	--prefix=/usr \
+	--sbindir=/sbin \
+	--libexecdir=/lib \
+	--with-rootlibdir=/lib \
+	--sysconfdir=$(HOST_EUDEV_SYSCONFDIR) \
+	--disable-blkid \
+	--disable-introspection \
+	--disable-kmod \
+	--disable-manpages \
+	--disable-rule-generator \
+	--disable-selinux \
+	--enable-hwdb
+
+define HOST_EUDEV_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/src/udev/udevadm \
+		$(HOST_DIR)/bin/udevadm
+endef
+
+define HOST_EUDEV_BUILD_HWDB
+	$(HOST_DIR)/bin/udevadm hwdb --update --root $(TARGET_DIR)
+endef
+HOST_EUDEV_TARGET_FINALIZE_HOOKS += HOST_EUDEV_BUILD_HWDB
+
+# Note: this will run in the filesystem context, so will use a copy
+# of tharget/, not the real one, so the files are still available on
+# re-builds (foo-rebuild, etc...)
+define HOST_EUDEV_RM_HWDB_SRC
+	rm -rf $(TARGET_DIR)/$(HOST_EUDEV_SYSCONFDIR)/udev/hwdb.d/
+endef
+HOST_EUDEV_ROOTFS_PRE_CMD_HOOKS += HOST_EUDEV_RM_HWDB_SRC
+
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))