In the test I have done, your chicken-egg problem does not seem to exist. This is on the Acer Aspire. I removed the cherryview module-setup.sh from /usr/lib/dracut/modules/90cherryview and rebuild the initrd. I checked that pinctrl-cherriview.ko is missing in the initrd. I rebooted the laptop. Now the sd card reader is not working. lsmod shows: pinctrl_cherryview 36864 2 sdhci_acpi 16384 0 sdhci 40960 1 sdhci_acpi mmc_block 36864 0 mmc_core 151552 3 mmc_block,sdhci,sdhci_acpi and the directory /sys/bus/mmc/drivers/mmcblk does exist. I then put back module-setup.sh in /usr/lib/dracut/modules/90cherryview. This file contains my modification that checks for the existence of /sys/bus/mmc/drivers/mmcblk I run dracut -f. pinctrl-cherriview.ko is insterted in the initrd. After reboot the sd card reader works. lsmod shows: pinctrl_cherryview 36864 5 sdhci_acpi 16384 0 sdhci 40960 1 sdhci_acpi mmc_block 36864 0 mmc_core 151552 3 mmc_block,sdhci,sdhci_acpi