если в двух словах, то любой init из состава initramfs будет содержать
Код
modprobe -a
mkdir /chroot
mount /dev/mmcblk0p1 /chroot
chroot /chroot /sbin/init
т.е. ничего нового, что могло бы вам помочь.
под словом "разбираться" я имел в виду почему не срабатывает опция ядра root=/dev/mmcblk0p1
зы. я честно говоря не понимаю зачем вам вообще initrd.
в классических дистрибутивах Linux он нужен был для загрузки со всяких экзотических scsi raid-контроллеров, или вообще через PXE.
Потому что ядро собиралось с модулями, а не монолитом. Потому как драйверы в модулях это отличное решение для установки на компы любых конфигураций. С расчетом что загружены будут только необходимые.
Вот все нужные модули ядра aka драйверы на этапе initrd и загружались.
А зачем для embedded-системы делать модули? они же все известны, и всё равно будут загружены все, и никакого выигрыша по памяти, занимаемой ядром не будет.
Только лишняя работа по поддержанию initrd и вечный головняк с загрузкой.
провоцируем неудовлетворенных провокаторов с удовольствием.