From 2d769917ac202be0a1c4ee7c35246a8b403c6f46 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Thu, 16 Jan 2014 23:20:46 +0200 Subject: [PATCH] add bcache support; depends on udev --- Makefile | 2 +- geninitrd | 8 ++++---- mod-bcache.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 mod-bcache.sh diff --git a/Makefile b/Makefile index d0a773c..3220945 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # when making release, make sure you do it as RELEASE document describes NAME := geninitrd VERSION := $(shell test -d .git && git describe --tags || echo git) -MODS := ide luks multipath dmraid lvm md blkid udev tuxonice suspend fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd +MODS := ide luks multipath dmraid lvm md blkid udev tuxonice suspend fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd bcache FILES_MODS := $(MODS:%=mod-%.sh) FILES_ADDON := extract-ikconfig FILES_UDEV := 01-ignore.rules 59-persistent-storage.rules 61-persistent-storage.rules 11-dm.rules diff --git a/geninitrd b/geninitrd index 44b254b..bb98dd6 100755 --- a/geninitrd +++ b/geninitrd @@ -1120,7 +1120,7 @@ if [ ! -f /proc/mounts ]; then warn "/proc filesystem not mounted, may cause wrong results or failure." fi -geninitrd_load_mods ide luks multipath dmraid lvm md blkid udev tuxonice suspend fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd +geninitrd_load_mods ide luks multipath dmraid lvm md blkid udev tuxonice suspend fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd bcache while [ $# -gt 0 ]; do case $1 in @@ -1419,6 +1419,8 @@ if is_yes "$USE_TUXONICE"; then find_module "-lzf" fi +find_modules_bcache +find_modules_uvesafb find_modules_fbsplash if [ -n "$ifneeded" -a -z "$MODULES" ]; then @@ -1519,8 +1521,6 @@ add_linuxrc <<-'EOF' fi EOF -find_modules_uvesafb - modules_add_linuxrc $MODULES # TODO: rewrite for busybox @@ -1544,7 +1544,6 @@ else fi initrd_gen_uvesafb - initrd_gen_luks initrd_gen_dmraid initrd_gen_multipath @@ -1555,6 +1554,7 @@ if is_yes "$have_nfs"; then else initrd_gen_md initrd_gen_lvm + initrd_gen_bcache initrd_gen_blkid initrd_gen_luks initrd_gen_setrootdev diff --git a/mod-bcache.sh b/mod-bcache.sh new file mode 100644 index 0000000..1de38db --- /dev/null +++ b/mod-bcache.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# geninitrd mod: bcache +# requires 3.10 kernel +# http://bcache.evilpiepirate.org/ +USE_BCACHE=${USE_BCACHE:-yes} + +# setup geninitrd module +# @access public +setup_mod_bcache() { + if [ ! -d /sys/fs/bcache ]; then + USE_BCACHE=no + fi + + if [ ! -x /lib/udev/bcache-register ]; then + USE_BCACHE=no + fi +} + +# find modules for for bcache +# @access public +find_modules_bcache() { + if ! is_yes "$USE_BCACHE"; then + return + fi + + find_module "-bcache" +} + + +# generate initrd fragment +# @access public +initrd_gen_bcache() { + if ! is_yes "$USE_BCACHE"; then + return + fi + + verbose "Adding bcache support to initrd" + + inst_rules 69-bcache.rules + inst_exec /lib/udev/bcache-register /lib/udev +} -- 2.44.0