реклама на сайте
подробности

 
 
> How to boot without initrd?, NOR flash
Idle
сообщение Feb 7 2008, 18:23
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



Linux 2.4, модулей нет - всё в ядре.
Вопрос - initrd обязателен, или как-то можно сделать загрузку непосредственно с NOR флешки в которой распложена CRAMFS/ROMFS/SQASH/JFFS?

(Об чем речь - не хочу держать диск в озу. Загрузиться с флешки и pivot_root на tmpfs.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Damon
сообщение Feb 8 2008, 04:56
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 12-12-05
Пользователь №: 12 125



Когда начал разбираться с ядрами, initrd сразу не осилил, нашел другой вариант.
При конфигурянии ядра включаю опцию:
"<*> Kernel automounter version 4 support (also supports v3)"
Для ядра v2.6.23.13 она находиться в "File systems --->", у ядер 2.4 она тоже есть, и находиться, скорее всего, там же.
Далее в GRUB'е просто прописываю:
"kernel /vmlinuz-my_build-2.6.23.x root=/dev/sda5 ro vga=795"
для других менеджеров и устройств, по аналогии...
Initrd не нужен, при условии, что драйвер контроллера hdd и драйвер fs вкомпилены в ядро статически. У меня reiser и sata, но не вижу причин, почему тот же прием не сработает с флешкой...

Цитата(Idle @ Feb 7 2008, 21:23) *
(Об чем речь - не хочу держать диск в озу. Загрузиться с флешки и pivot_root на tmpfs.)


Вот здесь немного не понял:
_http://www.linuxdoc.ru/manpages/man4/initrd.4.html
Цитата
7. Если обычная корневая файловая система имеет каталог
/initrd, то устройство /dev/ram0 переносится из / в
/initrd. Иначе, если каталога /initrd не существует, то
устройство /dev/ram0 удаляется. При переносе из / в
/initrd /dev/ram0 не удаляется и процесс в дальнейшем
работает с /dev/ram0. Если каталога /initrd не
существует в обычной корневой системе и остаются
процессы, работающие с /dev/ram0 (при существовании
/linuxrc), поведение ядра становится НЕПРЕДСКАЗУЕМЫМ.
Прочтите раздел ЗАМЕЧАНИЯ для получения более подробной
информации об этом.

Я, честно говоря всегда считал, что после того, как /linuxrc отработал и в новой корневой fs нет /initrd, содержимое /dev/ram0 теряется и память освобождается, но непроверял, интересно былобы услышать коментарии по этому поводу...
Go to the top of the page
 
+Quote Post
Idle
сообщение Feb 10 2008, 11:06
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



Действительно, подцепил cramfs root c флешки без проблем. Гугл смутил сначала.
Нужно включить в ядро необходимые компоненты MTD, прописать маппинг флешки, указать root=/dev/mtdblockx.
Initrd теперь не нужен, загрузка происходит гораздо быстрее(раньше root-ом был initrd), освободилось несколько MiB в ОЗУ.
Initrd в качестве root-а, видимо, необходим в конфигурациях, когда все упирается в размер flash, и только таким образом можно обеспечить максимальное сжатие диска.
Осталось пропатчить cramfs на предмет поддержки lzma(для полного счастья). Почему-то нет еще управления степенью сжатия.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.02893 секунд с 7
ELECTRONIX ©2004-2016