Этапы начальной загрузки

Популярные микрокомпьютеры Raspberry Pi отличаются от архитектуры PC компьютеров и вследствии чего отличен процесс инициализации и загрузки. Raspberry Pi моделей "A" и "B" не обращаются ко внутренней неперезаписываемой памяти загрузчика (ROM), а детектируют запоминающие устройства и ищут загрузчик на них.

На примере ОС Raspbian, условно, процесс начальной инициализации до загрузки операционной системы можно разделить на три стадии:

Стадия I

  • После включения питания и формирования сигнала системного сброса, запускается процессор и видеоядро загружает и исполняет из внутренней памяти (ROM) программу-загрузчик первой стадии. Эта программа инициализирует внешнюю память (слот SD-карты или USB-порт) и включает модуль для работы с файловой системой FAT32 (FAT16) для загрузки программы-загрузчика второй стадии, которая располагается в файле bootcode.bin. Если кратко, то суть первой стадии - поиск и выполнение загрузчика второй стадии.

Стадия II

  • После поиска, загрузки и выполнения, bootcode.bin загружает загрузчик третьей стадии - start.elf, физически находящийся на том же FAT32 (FAT16) разделе накопителя, что и bootcode.bin.

Стадия III

  • start.elf выполняет базовое конфигурирование GPU, настройки разделяемой памяти и основных параметров портов путём чтения текстового файла config.txt;
  • Далее start.elf читает и анализирует файл cmdline.txt в котором указаны начальные параметры передаваемые ядру при загрузке;
  • В последнюю очередь происходит загрузка собственно ядра системы - kernel.img, передачи ему параметров, описанных в cmdline.txt и процессор компьютера выходит из режима "reset", начиная исполнять программу ядра. До этого, во всех стадиях участвует только GPU-подсистема, а сам процессор находится в режиме ожидания.

В файле cmdline.txt могут содержаться и расширенные параметры (в том числе и "железа") передаваемые ядру, однако ядро может их проигнорировать.

Все файлы, необходимые для возможности загрузки ядра (как и само ядро), находятся на первом FAT32 (FAT16) разделе накопителя - фактически этот раздел это boot-раздел системы. Пример содержимого:

pi@raspberrypi ~ $ ls -l /boot
total 19072
-rwxr-xr-x 1 root root   17824 Jan  7  2014 bootcode.bin
-rwxr-xr-x 1 root root      97 Mar 24  2014 cmdline.txt
-rwxr-xr-x 1 root root     142 Mar 24  2014 cmdline.txt_backup_start_uart
-rwxr-xr-x 1 root root    1202 Mar 22  2014 config.txt
-rwxr-xr-x 1 root root    2068 Jan  7  2014 fixup_cd.dat
-rwxr-xr-x 1 root root    5783 Jan  7  2014 fixup.dat
-rwxr-xr-x 1 root root    8829 Jan  7  2014 fixup_x.dat
-rwxr-xr-x 1 root root     137 Jan  7  2014 issue.txt
-rwxr-xr-x 1 root root 9789752 Jan  7  2014 kernel_emergency.img
-rwxr-xr-x 1 root root 3115216 Jan  7  2014 kernel.img
-rwxr-xr-x 1 root root   18974 Sep 25  2013 LICENSE.oracle
-rwxr-xr-x 1 root root  480216 Jan  7  2014 start_cd.elf
-rwxr-xr-x 1 root root 2514136 Jan  7  2014 start.elf
-rwxr-xr-x 1 root root 3495816 Jan  7  2014 start_x.elf

Когда операционная система загружена, содержимое раздела монтируется в режиме чтение\запись в корневую систему в каталог /boot

После загрузки ядра происходит дальнейшая загрузка ОС: монтирование файловых систем, передача управления процессу init.

Описание файлов конфигурации

Пока нет информации.

Диагностика проблем

Микрокомпьютер имеет светодиодные индикаторы, по которым можно определить ту или иную неисправность. Ниже даны наиболее встречающиеся комбинации:

  • Непрерывное мигание красного светодиода: нехватка напряжения питания, попробовать сменить блок питания;
  • Красный светодиод горит, зелёный - не мигает, на экране монитора нет изображения: проблема с обнаружением образа операционной системы. Проверить SD-карту;
  • 3 вспышки зелёным светодиодом: проблема с чтением файла loader.bin;
  • 4 вспышки зелёным светодиодом: loader.bin не загружается;
  • 5 вспышек зелёным светодиодом: проблема с чтением файла start.elf;
  • 6 вспышек зелёным светодиодом: start.elf не загружается.

Назначение светодиодов

Название Номер, цвет Функционал
ACT D5 (зелёный) обращение к SD карте
PWR D6 (красный) присутствует напряжение питания 3,3 Вольта
FDX D7 (зелёный) подключена локальная сеть (LAN) с полным дуплексом
LNK D8 (зелёный) активность сетевого обмена
100 D9 (жёлтый) подключена локальная сеть сеть 100Мбит/с

Смотрите также

Печать/экспорт