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.

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