bcache-tools: don't use probe-bcache and bcache-register
This allows us not to include any additional binaries for bcache support in initrd; just an udev rule.
This commit is contained in:
parent
c9de1ea49e
commit
92f94e901a
52
pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
Normal file
52
pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
This patch does two things:
|
||||||
|
1) Drops probe-bcache, so now new util-linux detecting functionality is used.
|
||||||
|
2) Drops bcache-register, using kmod (built in udev) and moving registering device
|
||||||
|
into rule using 'sh'.
|
||||||
|
This reduces things that need to be present in initrd, replacing them with already
|
||||||
|
existing functionality and reducing overall initrd size.
|
||||||
|
|
||||||
|
diff --git a/69-bcache.rules b/69-bcache.rules
|
||||||
|
index 5d28e70..6a52893 100644
|
||||||
|
--- a/69-bcache.rules
|
||||||
|
+++ b/69-bcache.rules
|
||||||
|
@@ -10,15 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
|
||||||
|
# It recognised bcache (util-linux 2.24+)
|
||||||
|
ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
|
||||||
|
# It recognised something else; bail
|
||||||
|
-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
|
||||||
|
-
|
||||||
|
-# Backing devices: scan, symlink, register
|
||||||
|
-IMPORT{program}="probe-bcache -o udev $tempnode"
|
||||||
|
-ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
|
||||||
|
-ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
|
||||||
|
+GOTO="bcache_backing_end"
|
||||||
|
|
||||||
|
LABEL="bcache_backing_found"
|
||||||
|
-RUN+="bcache-register $tempnode"
|
||||||
|
+RUN{builtin}+="kmod load bcache"
|
||||||
|
+RUN+="/bin/sh -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
|
||||||
|
LABEL="bcache_backing_end"
|
||||||
|
|
||||||
|
# Cached devices: symlink
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 3f8d87b..15638a7 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show
|
||||||
|
|
||||||
|
install: make-bcache probe-bcache bcache-super-show
|
||||||
|
$(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
|
||||||
|
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
|
||||||
|
+# $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
|
||||||
|
$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
|
||||||
|
$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
|
||||||
|
$(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
|
||||||
|
diff --git a/bcache-register b/bcache-register
|
||||||
|
index 9b592bc..75b4faf 100755
|
||||||
|
--- a/bcache-register
|
||||||
|
+++ b/bcache-register
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
-/sbin/modprobe -qba bcache
|
||||||
|
test -f /sys/fs/bcache/register_quiet && echo "$1" > /sys/fs/bcache/register_quiet
|
||||||
|
|
@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
|
|||||||
-e "/INSTALL.*initcpio\/install/d" \
|
-e "/INSTALL.*initcpio\/install/d" \
|
||||||
-e "/INSTALL.*dracut\/module-setup.sh/d" \
|
-e "/INSTALL.*dracut\/module-setup.sh/d" \
|
||||||
-i Makefile
|
-i Makefile
|
||||||
|
|
||||||
sed -e "s|/sbin/modprobe|${kmod}/sbin/modprobe|" -i bcache-register
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
patches = [ ./bcache-udev-modern.patch ];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
export makeFlags="$makeFlags PREFIX=\"$out\" UDEVLIBDIR=\"$out/lib/udev/\"";
|
export makeFlags="$makeFlags PREFIX=\"$out\" UDEVLIBDIR=\"$out/lib/udev/\"";
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user