прошу подсказать знающих людей, как настраивается initramfs?
Мне нужно сделать так, чтобы при начальной инициализации (до загрузки корневой ФС) создавалось устройство /dev/mmcblk0p1, чтобы запустить рутовую именно с mmc.
Только зачем для этого initramfs если модули слинкованы статически ? добавьте в параметрах передаваемых ядру rootwait - полагаю в этом проблема а не в создании файла /dev/mmcblk0p1
на моей плате сейчас рутовая пишется в виде бинарника на внутреннюю флешь. Файловая система только для чтения. Соответственно ноды устройств не создаются автоматически. Чтобы создать ноду необходимо писать файл руками, потом кодировать рутовую в bin и заливать на плату.
Соответственно, просто перенос файлов рутовой на mmc и строка "rootfs=/dev/mmcblk0p1" не работает.
Не понял - причем тут рутовая во флешь и зачем что -то создавать . Передайте в параметрах ядра что корневая на mmc и что надо ожидать готовность
root=/dev/mmcblk0p1 rootwait rw
если ядро старое - создайте таблицу файлов устройств в /dev статически при сборке корневой, хотя строго говоря ядру эти файлы устройств для монтирования root не нужны - они нужны программам в юзерспейс.
к сожалению, при "root=/dev/mmcblk0p1 rootwait rw" система ожидает бесконечно.
стало быть, /dev/mmcblk0p1 не существует.
Если я размещаю рутовую на внутренней флеши, карта /dev/mmcblk0p1 появляется, так как в рутовой предварительно я создал файл соответствующий(без этого файла ничего не появляется)
с вами как с марсианином разговариваешь - не нужны ядру файлы устройств, от того что его создаешь вручную дайвер из космоса не возникнет сам. В дефолтном конфиге ядра вашего uclinux я не нашел драйвер хоста mmc, там даже spi нет.
Похоже я все же не прав - там есть что-то про sd и spi только в директории arch/arm/mach-stm32 и сделано через задницу - особенность uclinux :) в любом случае как делают в нормальном Linux тут скорей всего работать не будет.
не смею больше занимать чужое время.
Последний вопрос:
у меня есть файл в корне ramfs.img
как он создаётся? мне необходимо добавить в конфиг создания этого файла строчки
nod /dev/mmcblk0 0666 0 0 b 179 0
nod /dev/mmcblk0p1 0666 0 0 b 179 1
он создается из каталога с рутовой..
возьмите свой img, смонтируйте его куда угодно, поправьте в содержимом требуемое и закрутите обратно..
гуглить "mount img loop"
либо ищите куда билдрут складирует будущую рутовую и своим скриптом подливайте свое, потом билдрут все сам завернет в img
имхо, в разделе "О линуксе" создаете новую тему, чтобы потом не копаться в груде несозвучных по тематике..