Задача: сделать так, чтобы ядро при загрузке увидело раздел /dev/mmcblk0p1, смонтировало его как корневую файловую систему.
С наскока такое сделать не получилось. Если писать в строке параметров загрузки "root=/dev/mmcblk0p1", то ядро ругается так:
VFS: Cannot open root device "mmcblk0p1" or unknown-block(0,0) Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Понимаю, что нужно как-то смонтировать mmc-карту(иначе /dev/mmcblk0p1 просто не появится) перед тем как запускать инициализацию файловой системы. Узнал, что для этого используется initramfs. Тут я совсем новичок. Включил в ядре поддержку initramfs:
CONFIG_INITRAMFS_SOURCE="./initramfs-list-min" CONFIG_INITRAMFS_ROOT_UID=0 CONFIG_INITRAMFS_ROOT_GID=0 # CONFIG_INITRAMFS_IS_LARGE is not set CONFIG_RD_GZIP=y # CONFIG_RD_BZIP2 is not set # CONFIG_RD_LZMA is not set # CONFIG_RD_LZO is not set CONFIG_INITRAMFS_COMPRESSION_NONE=y
в файле "initramfs-list-min" по мимо всего прочего создал ноду /dev/mmcblk0p1 и /dev/mmcblk0
После запуска, ядро нашло /dev/mmcblk0p1 и даже стало ждать присоединения карты, если в строке загрузке написать rootwait. Ну, думаю, нашлась корневая файловая система... Но, после успешной загрузки ядра и входа в систему, я понял, что в корневой файловой системе присутствует толкьо тот минимум папок, что был в initramfs, а всё многообразие полноценной файловой системы на mmc система просто проигнорировала как корневую файловую систему, при это ниразу не ругнувшись. Выходит просто root=/dev/mmcblk0p1 не достатачно для загрузки рутовой с mmc. Как именно должно происходить монтирование полноценной файловой системы после initramfs?
Сообщение отредактировал Dubov - Oct 1 2014, 17:57
|