Эльбрус/пнс

Материал из ALT Linux Wiki

Программа начального старта

ПНС, также "бут" (boot) -- аналог BIOS в обычных ПК: прошивка, входящая в комплект материнской платы и обеспечивающая начальную настройку/самодиагностику вычислительного комплекса с последующей загрузкой операционной системы.

Отличается не полноэкранным, а командно-строчным методом организации взаимодействия.

Конфигурируется посредством своего интерактивного режима после нажатия пробела на соответствующем приглашении, а в части загрузчика -- также /boot/boot.conf на указанном загрузочном устройстве/разделе.

Задачи

Помимо своей основной задачи ПНС решает и ряд вспомогательных, предоставляя интерактивный режим для выбора загрузочного носителя и позволяя сконфигурировать аппаратное обеспечение (например, отключить инициализацию отсутствующих жёстких дисков или неподключенных сетевых интерфейсов для ускорения загрузки).

Нижняя консоль

Интерактивный режим, вызываемый по нажатию пробела при соответствующей подсказке после инициализации оборудования и перед загрузкой ядра ОС; включает:

  • основное меню
  • boot#-меню
  • расширенное меню

Для работы нижней консоли требуется уже запущенная память, что приводит к необходимости сброса настроек всего бута по зажатой Esc в случае выбора несовместимых настроек.

Верхняя консоль

В бутах для v6-систем (e16c/e12c/e2c3) добавлена интерактивная часть, работающая до инициализации ОЗУ -- т.н. верхняя консоль, вызываемая по зажатой X на COM-порту при старте машины[1].

Среди прочего позволяет настроить:

режим ОЗУ

Пример для Micron MTA18ASF2G72PZ-3G2R1 на 1Э16С-uATX:

 Cmd  Accepted
...
 b  Calc CPU MC Freq (PLL MC)
...
Hit any Menu-key:b
 E.g:  350000000-1350, 400000000-1600, 450000000-1800, 525000000-2100, 600000000-2400
       650000000-2600, 675000000-2700, 700000000-2800, 725000000-2900, 750000000-3000, 800000000-3200
 Hit Enter to DFLT MC Freq 337500000  or 0 to finish or  type Freq in Hz :   8000000003 Max
  ----------------------------------------------------------------------
  #     NF                      NR      OD      Fvco             error
  ----------------------------------------------------------------------
 1 .    0x3000000000    1       3       2.400000e+09    +0000.000000
  ----------------------------------------------------------------------
 Calc tunes: clkf 0x3000000000 , clkr 0 , clkod 2
 Press Enter for Dflt CPUs Mask 0xF  | type 0 to finish |  type hex CPUs mask:  0x20 Max
 Press Enter for Dflt MCs Mask 0xFF  | type 0 to finish |  type hex MCs mask:  0x0ff
 You are about to set MC Freq 800000000 Hz  for  CPU0 ,1 ,2 ,3   MC0 ,1 ,2 ,3 ,4 ,5 ,6 ,7

 Save Tune ? (y or n)y
 Saved in CMOS Will applied after PwrReset

 Other Tune ? (y or n)n

 Exit ? (y or n)y

В ответ на подсказку "0x0" был произведён ввод значения "ff", далее трижды "y". Внимание: для учёта сделанных настроек следует выполнить аппаратный reset по кнопке!

прогрев VGA BIOS

Пример для 1Э16С-uATX:

2  y/n  X86EMU_VIDEO_INIT En

[...] Hit any Menu-key:2

Current x86emu_video_init_enable Flag = 0
Invert ? (y or n)y
Exit ? (y or n)_

Ввод -- после выбора в меню верхней консоли пункта "2" дважды "y".

Советы

Определение версии

В самой ПНС (расширенный режим по "~"):

get version boot

В загруженной Linux-системе:

cat /proc/bootdata

Отключение сетевой загрузки

Для ускорения процесса инициализации можно выключить ethernet-интерфейсы в ПНС (ядро Linux их поднимет самостоятельно)[2]:

~
set eth controller disable
<Esc>
b
<Enter>

Переключение видеовывода по умолчанию

См. в расширенном командном режиме ПНС (~) вывод:

get video output
set video output

Например, для случая 1Э8СВ с набортным Aspeed VGA и дискретным Radeon для переключения на последний рекомендовали[3]:

set video output 0

В более старых бутах (до video) был параметр vga.

На случай потери доступа к интерфейсу ПНС с локальной консоли держите под руками COM-кабель.

См. тж. прогрев VGA BIOS выше.

Отключение встроенной видеокарты

Примечание: Может потребоваться в т.ч. для работы lintel, т.к. отображение x86bios работает только через внешнюю видеокарту; ср.: mcst#7849


Для отключения встроенной видеокарты необходимо в расширенной командной строке набрать команду set cpu_pci 0 0; рекомендуется предварительно выполнить команду get cpu_pci 0 и запомнить ее выдачу, чтобы потому можно было восстановить настройку командой set cpu_pci 0 <old_value>

Проблемы

GUI

Внимание! Не пытайтесь включить GUI в консоли -- не работает, а отключить без COM-кабеля не сможете. (#3344)

COM-COM

Загрузка двух связанных последовательным кабелем ВК "Эльбрус" может пойти кувырком, если при одновременном включении прошивки "уговорят" друг друга сменить настройки загрузчика (#2436); рекомендуется применять асимметричные кабели USB-COM.

Ранние версии прошивки для 801-РС/804 не работают с USB-клавиатурами через USB-хаб, при этом 4С/1С+ с этим справляются; в недавней версии исправлено, запрашивайте в МЦСТ (#4770). Там же в наличии поддержка символических ссылок (#2231).

Если получили подобный вывод при попытке загрузки с флэшки -- попробуйте флэшку другой модели (выделенного курсивом быть не должно):

Use this Unit as Drive #10Error request

Обновление

Причины

Примечание: обновление программы начального старта может потребоваться перед обновлением ядра до 4.9, 4.19 или 5.4, если ВК используется с заводской прошивкой.


Также обновление может добавить ранее отсутствовавшую функциональность -- например, вышеупомянутую поддержку USB-хабов или загрузку ОС через USB3-карту.

Проведение

Крайне желательно обеспечить бесперебойное питание и/или достижимость программатора на всякий нештатный случай.

Прошивка запрашивается в техподдержке МЦСТ с указанием типа и серийного номера ВК; само обновление можно произвести из-под загруженной ОС при установленном пакете flashrom[4] (#2966):

flashboot.sh boot.bin devtree.dtb

либо если предоставлен также файл devicetree:

flashboot.sh boot.bin devtree.dtb

В процессе будет сделана резервная копия имеющейся прошивки, путь к ней будет указан в начале процесса прошивки (можно заархивировать на всякий).

Внимание! Убедитесь в наличии VERIFIED в выводе скрипта! Если не увидите -- попробуйте запустить его повторно; при двух неудачах подряд обращайтесь в техническую поддержку МЦСТ, не выключая и не перезагружая машину!


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

Для некоторых систем, особенно v5/v6, может потребоваться добавление dtb (запрашивайте образ совмещённых прошивки и devicetree для конкретной платы в поддержке, указав модель и серийный номер); свежие буты умеют подшивать devicetree прямо из основного меню[5][6]; контроль наличия/версии:

head /sys/firmware/devicetree/base/{model,version}

Если в процессе прошивки получите сообщение Use Kombinator to generate flash dump -- следует затереть прошивку предложенной тем же скриптом командой с --erase вместо -w <dumpfile> и записать заново; в случае 1Э16С-uATX (.466):

flashrom -c S25FL512S -p linux_spi:dev=/dev/spidev0.0,spispeed=12500 --erase
flashboot.sh E16C_T23_MCST.bin tvgi.00424-01_99_01.devtree.e16c_1e16s-uatx.dtb

Сброс настроек

При перепрошивке через ОС могут наложиться настройки от предыдущей версии. На машине, где открыт терминал, "читающий" СОМ-порт перешитого ВК, зажмите ESC при включении/перезапуске ВК и наберите "yes, I want", когда бут попросит. (#3985)

Для настройки режима работы памяти на v6-системах обратите внимание на верхнюю консоль.

Ссылки

Примечания

  1. Наиболее вероятно читать ПНС будет с COM1/ttyS0; например, на 1Э16С-uATX разъём X31 отображается в COM2/ttyS1 и в ряде прошивок вывод на него есть, а ввод в верхней консоли не воспринимается (исправлено в мае 2023)
  2. работает автодополнение по кнопке <Tab>, достаточно набирать первые буквы слов команды
  3. mcst#5977
  4. обратите внимание: flashrom собран с патчем МЦСТ
  5. 'U' - Upload file from Flash to Disk:, далее 2 - rDEV3 (DevTree), указать номер диска (флэшки), раздела (обычно 0) и путь к файлу .dtb
  6. можно попробовать поместить файл в '/boot/devtree.dtb'; загрузчик возмёт его оттуда. (mcst#8349)