summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--dracut/module-setup.sh34
2 files changed, 37 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a317930..825e86f 100644
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,9 @@ install: make-bcache probe-bcache bcache-super-show
install -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
install -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
-install -T -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
+ if [ -d $(DESTDIR)/lib/dracut/modules.d ]; \
+ then install -D -m0755 dracut/module-setup.sh $(DESTDIR)/lib/dracut/modules.d/90bcache/module-setup.sh; \
+ fi
install -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
# install -m0755 bcache-test $(DESTDIR)${PREFIX}/sbin/
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh
new file mode 100644
index 0000000..5a067cb
--- /dev/null
+++ b/dracut/module-setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+#
+# At some point (util-linux v2.24) blkid will be able to identify bcache
+# but until every system has this version of util-linux, probe-bcache is
+# provided as an alternative.
+#
+
+check() {
+ if [[ $hostonly ]] || [[ $mount_needs ]]
+ then
+ for fs in "${host_fs_types[@]}"; do
+ [[ $fs = "bcache" ]] && return 0
+ done
+ return 255
+ fi
+
+ return 0
+}
+
+depends() {
+ return 0
+}
+
+installkernel() {
+ instmods bcache
+}
+
+install() {
+ inst_multiple ${udevdir}/probe-bcache ${udevdir}/bcache-register
+ inst_rules 69-bcache.rules
+}