Как работает малина Pi?

У меня есть малиновый мини-компьютер, и мне интересно, как эта вещь выполняет весь процесс загрузки. Я могу скомпилировать свое собственное ядро ​​и запустить ramdisk со своими собственными скриптами и создать собственную минимальную систему Linux на ПК, но для этого мне нужно использовать некоторый загрузчик. Малина, похоже, вообще не поддерживает загрузчики.

Кажется, что-то загрузится с использованием своего GPU, который читает какой-то раздел на SD-карте (возможно, тот, у которого есть загрузочный флаг), который нужно отформатировать в FAT32, затем он читает некоторые файлы оттуда, которые предоставляются, например, raspbian.

Но как бы я загрузил свое собственное ядро ​​с собственными настройками, которые я скомпилировал? Где я должен копировать образ ядра /initrd (ram-диск), чтобы малина находила его и загружалась из него? Я в основном ищу очень подробную техническую документацию, описывающую процесс загрузки на малине или просто объяснение этого.

52 голоса | спросил Petr 2 62013vEurope/Moscow11bEurope/MoscowSat, 02 Nov 2013 20:08:42 +0400 2013, 20:08:42

1 ответ


53

Из этого сообщение о форуме малины Pi < em> [Отредактировано, чтобы отразить loader.bin как анахронизм] :

  
  1. При первом включении Raspberry Pi ядро ​​ARM выключается, и   ядро GPU включено. На этом этапе SDRAM отключен.
  2.   
  3. Графический процессор запускает загрузчик первого этапа, который хранится   в ПЗУ на SoC. Начальный загрузчик считывает SD-карту и   загружает загрузчик второго этапа (bootcode.bin) в кэш L2,   и запускает его.
  4.   
  5. bootcode.bin включает SDRAM и читает загрузчик третьего этапа   (loader.bin) с SD-карты в оперативную память и запускает ее. [В более поздних версиях не используется загрузчик третьего этапа. ]
  6.   
  7. [Если применимо] loader.bin считывает прошивку GPU (start.elf).
  8.   
  9. start.elf читает config.txt, cmdline.txt и kernel.img
  10.   

loader.bin мало что делает. Он может обрабатывать файлы .elf, и поэтому необходим   загрузить start.elf в верхней части памяти (ARM использует SDRAM с адреса   нуль). Существует план добавления поддержки загрузки эльфа в bootcode.bin,   что сделало бы loader.bin ненужным, но это низкий приоритет (I   предположим, это может спасти вам 100 мс при загрузке). [Это с тех пор произошло. ]

Вот некоторые ресурсы, которые могут быть полезны:

ответил syb0rg 2 62013vEurope/Moscow11bEurope/MoscowSat, 02 Nov 2013 21:19:53 +0400 2013, 21:19:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132