The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

6. Загрузка первоначального RAM диска

6. Загрузка первоначального RAM диска

Предыдущая  Содержание  Следующая V*D*V

Первоначальный RAM диск является общим требованием на многих системах. Он даёт возможность иметь доступной корневую файловую систему без доступа к другим драйверам или конфигурациям. Полную информацию можно получить в linux/Documentation/initrd.txt.

 

Есть два способа на ARM Linux для получения первоначального RAM диска. Первым из них является создание специального целевого bootpImage, который берёт первоначальный RAM диск во время сборки и добавляет его в zImage. Этот метод обладает тем преимуществом, что не требует вмешательства загрузчика, но требует знания процессом сборки ядра физического адреса для размещения ramdisk (используя определение INITRD_PHYS). Применяется жёсткое ограничение в 4 мегабайта на размер несжатого ядра и initrd. Из-за этих ограничений этот способ на практике используется редко.

 

Вторым и гораздо более широко используемым методом является размещение загрузчиком данного исходного образа ramdisk, полученного с любого носителя, в указанное место в памяти. Это место передаётся в ядро с помощью ATAG_INITRD2 и ATAG_RAMDISK.

 

Традиционно initrd размещается со смещением 8 мегабайт от начала физической памяти. Там, где он находится, должно быть достаточно памяти после загрузки для распаковки начального ramdisk в реальный ramdisk, то есть достаточно памяти для zImage + распакованный zImage + initrd + распакованный ramdisk. Занимаемая сжатым начальным ramdisk память будет освобождена после окончания декомпрессии. Ограничениями к позиции электронного диска являются:

 

Она должна лежать полностью в пределах одной области памяти (не должна пересекать регионы, заданные различными параметрами ATAG_MEM)

Она должна быть согласована с границей страницы (обычно, 4К)

Она не должна конфликтовать с памятью, используемой заголовочным кодом zImage, используемым для распаковки ядра или она будет перезаписана, как не прошедшая проверки.

 

Замечание. Дополнительно появился способ делать это с помощью initramfs.

Предыдущая  Содержание  Следующая