bootm *
Загрузить образ приложения из памяти (boot application image from memory)
Help:
=> help bootm
bootm - boot application image from memory
Usage:
bootm [addr [arg ...]]
- boot application image stored in memory
passing arguments 'arg ...'; when booting a Linux kernel,
'arg' can be the address of an initrd image
When booting a Linux kernel which requires a flat device-tree
a third argument is required which is the address of the
device-tree blob. To boot that kernel without an initrd image,
use a '-' for the second argument. If you do not pass a third
a bd_info struct will be passed instead
Sub-commands to do part of the bootm sequence. The sub-commands must be
issued in the order below (it's ok to not issue all sub-commands):
start [addr [arg ...]]
loados - load OS image
ramdisk - relocate initrd, set env initrd_start/initrd_end
fdt - relocate flat device tree
cmdline - OS specific command line processing/setup
bdt - OS specific bd_t processing
prep - OS specific prep before relocation or go
go - start OS
=>
bootm [addr [arg ...]] - образ загрузочного приложения, хранящийся в памяти, передача аргументов 'arg ...';
При загрузке ядра Linux 'arg' может быть адресом образа initrd
При загрузке ядра Linux, для которого требуется дерево устройств FDT, третий аргумент является адресом
BLOB-объект дерева устройств.
Чтобы загрузить это ядро без образа initrd, используйте "-" для второго аргумента.
Без третьего аргумента будет передана структура bd_info
Подкоманды для выполнения части последовательности загрузки.
Подкоманды должны быть выданы в указанном ниже порядке (можно не выдавать все подкоманды):
start [addr [arg ...]] - начало [адрес [аргумент ...]]
loados - загрузить образ ОС
ramdisk - переместить initrd, установить env initrd_start/initrd_end
fdt - переместить дерево устройств
cmdline - обработка/настройка командной строки для конкретной ОС
bdt - специфичная для ОС обработка bd_t
prep - подготовка конкретной ОС перед перемещением или запуском
go - запустить ОС
Команда bootm
используется для запуска образов операционной системы.
Из заголовка образа она получает информацию о типе операционной системы, используемом методе сжатия файла (если таковой имеется), адресах загрузки и точки входа и т.д.
Затем команда загрузит образ в требуемый адрес памяти, при необходимости распаковывая его на лету.
В зависимости от ОС она передает необходимые аргументы загрузки и запускает ОС в точке входа.
Первый аргумент bootm
- это адрес памяти (в ОЗУ, ПЗУ или флэш-памяти), где хранится образ, за которым следуют необязательные аргументы, которые зависят от ОС.
Linux
требует, чтобы BLOB-объект дерева устройств передавался во время загрузки, и bootm
ожидает, что его третий аргумент будет адресом BLOB-объекта в памяти.
Второй аргумент bootm
зависит от того, будет ли использоваться initrd
исходный образ RAM-диска.
Если ядро должно быть загружено без начального RAM-диска, второй аргумент должен быть указан как «-», в противном случае он интерпретируется как начальный адрес initrd
(в RAM, ROM или флэш-памяти).
Чтобы загрузить образ ядра Linux без образа initrd
виртуального диска, можно использовать следующую команду:
=> bootm ${kernel_addr} - ${fdt_addr}
Если необходимо использовать образ ramdisk, вы можете ввести:
=> bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}
Оба примера, конечно, подразумевают, что используемые переменные настроены на правильные адреса для ядра, fdt blob и initrd
образа ramdisk.
! Внимание ! При загрузке образов, которые были загружены в ОЗУ (например, с использованием загрузки по TFTP ), вы должны быть осторожны, чтобы места, где хранились сжатые образы, не перекрывались с памятью, необходимой для загрузки несжатого ядра.
Например, если вы загружаете образ виртуального диска в место в малой памяти, он может быть перезаписан при загрузке ядра Linux. Это приведет к неопределенным системным сбоям.