IMHO, для честности нужно фрагменты GRUB или syslinux приводить...
U-Boot.... приспособлено к использованию чужеродной среды....
Я Вам про LINUX, а Вы мне - "Весь линукс здесь..."
p.s. у Вас редкий талант... initrd=0x21100000 действительно initrd=0x21100000... Как это может быть ???
Однако область применения initrd не ограничивается одной архитектурой arm, если уж обсуждаем initrd, как явление.... к тому же для arm - initrd приходящее явление...
p.s LILO ??? Да... лет 10 назад был такой bootloader... Щас что-то про него не слышно... для своего дистрибутива даже найти бинарники не смог...
"Настоящий бутлоадер" ??? По популярности, наверное GRUB, по "породистости" GNU syslinux на пару с isolunux и extlinux...
2repairman
"Истина где-то рядом..." думаю идеологии open source не станет лучше если мы тут будем распылять свой интеллект на детали реализации той или иной технологии :) В любом случае буду рад увидеть Вас с новыми идеями - покрайней мере я знаю с кем можно поспорить :)
Всегда бы так пугали :) initrams - просто эльдорадо для embedded. Все что нужно - это указать в конфиге ядра путь к несжатой rootfs и в этой rootfs сделать симлинк init на busybox в корне
#cd patch_to_embedd_root
#ln -s bin/busybox init
При сборке ядра автоматом создается cpio архив и линкуется с ядром. В итоге размер ядра увеличивается на размер нашей rootfs. Что мы имеем в итоге
1) Не нужно заботиться о передаче параметра root и адресов initrd в ram - более того это _нужно_ убрать из параметров загрузки ядра.
2) initramfs - это аналог tmpfs, нет оверхеда при обращении к ram как к блочному устройству, нет больше никаких рамдисков.
3) размер rootfs ограничен только размером ram и не нужно заботиться об этом - страницы памяти выделяются динамически, при этом памяти выделяется ровно столько сколько нужно для фс - в случае с рам диском создается диск размером 5 Мбайт (в нашем случае) и если он заполнен неполностью то свободное место это всеравно для системы недоступно+тратится ram на оверхед от того что это вртуальное блочное устройство.
4) Не нужен отдельный имидж для root - только имидж ядра.
Звучит приятно, Вы сами пробовали заменить initrd на initramfs для платы?
Как указывается путь до несжатой корневухи в конфиге ядра(сори если это в конфиге прописано "по русски", еще не смотрел :))?
Если пользоваться buildroot он сам создает initramfs и прописывает его в конфиг ядра. Я несколько раз напарывался - у меня потом ядро не входило на флэшку ;) Загружаться с него не пробовал - у меня динамическая линковка, а buildroot не подсовывает lib из внешнего toolchain - разбираться лень