Baikal-M: различия между версиями

Материал из ALT Linux Wiki
(blacklisting cpufreq_dt)
(не показано 20 промежуточных версий 6 участников)
Строка 1: Строка 1:
{{Stub}}
{{Stub}}
На данный момент страничка описывает экспериментальный выпуск [[Simply Linux 9]] для опытных плат на основе процессора "Байкал-М" производства "Байкал Электроникс".
На данный момент страничка описывает выпуск [[Альт Рабочая станция 9|ALT Workstation 9.1]] для системной платы MBM1.0(mITX) на основе процессора "Байкал-М" (модель ВЕ-М1000) производства "Байкал Электроникс".
 
== Перед началом установки ==
 
''' На плате должен быть прошит firmware из SDK-M версий 4.4, 4.3, или 4.2. С более старыми версиями прошивки эту инструкцию использовать не следует.'''
Окирпичить плату вряд ли выйдет, но времени и нервов потратите много.
 
На глазок версию прошивки можно определить так:
* Если секунд через 20 после включения отображается большой (во весь экран) логотип Байкал Электроникс, значит, это прошивка из SDK-M-4.2 или новее
* Если почти сразу после включения отображается сначала маленький, а потом большой логотип Байкал Электроникс -- это SDK-M-4.3
* Если под логотипом отображается версия, то это она и есть
* Если во время загрузки на экране ничего нет, это слишком старая прошивка
 
Точно определить версию прошивки, к сожалению, можно только с помощью UART консоли.


== Установка ==
== Установка ==


На данный момент firmware умеет загружать ОС <s>только с SATA диска</s>, через UEFI c внешних USB-накопителей и SATA дисков.
Образы в формате '''img''' нужно записать прямо на диск. Объем диска должен
быть больше размера образа (около 10 GB). Установочные образы '''ISO''' могут быть прошиты на USB-накопитель или SATA-диск.


* '''ВНИМАНИЕ! ВСЕ ДАННЫЕ, КОТОРЫЕ НАХОДЯТСЯ НА ДИСКЕ, БУДУТ БЕЗВОЗВРАТНО СТЕРТЫ!'''
Установочный ISO доступен здесь: https://mirror.yandex.ru/altlinux/p9/images/workstation/aarch64/alt-workstation-baikalm-9.1-aarch64.iso
* '''ВНИМАНИЕ! РИСК СТЕРЕТЬ НЕ ТЕ ДАННЫЕ! ТРИЖДЫ ПРОВЕРЬТЕ, ЧТО ПИШИТЕ НА НУЖНЫЙ ДИСК!'''
Его нужно записать на внешний USB накопитель, sd карту, либо жесткий диск.
 
* '''ВНИМАНИЕ! ВСЕ ДАННЫЕ, КОТОРЫЕ НАХОДЯТСЯ НА НОСИТЕЛЕ, БУДУТ БЕЗВОЗВРАТНО СТЕРТЫ!'''
* '''ВНИМАНИЕ! РИСК СТЕРЕТЬ НЕ ТЕ ДАННЫЕ! ТРИЖДЫ ПРОВЕРЬТЕ, ЧТО ПИШЕТЕ НА НУЖНЫЙ НОСИТЕЛЬ!'''
 
<code>dd if=alt-workstation-baikalm-9.1-aarch64.iso of=/dev/disk/by-id/XYZ bs=1M conv=fsync</code>
 
Затем нужно подключить носитель к плате и загрузиться с него. Если на Байкал-М еще не установлена ОС,
то загрузка со съемного носителя происходит по умолчанию. Если по какой-то причине загрузка не началась,
нужно нажать Escape во время инициализации UEFI (когда вверху появится надпись "Press ESC for boot options"),
и выбрать загрузку с нужного устройства вручную.
 
=== Загрузка на платах с прошивкой из SDK-M 4.4 ===
 
Если система не грузится (kernel panic) или установка не стартует,
или зависает во время установки, передайте ядру параметры<br><code>modprobe.blacklist=pcie_baikal,panfrost,cpufreq_dt</code>
 
=== EFI system partition ===


# Выключаем Baikal-M, отсоединяем SATA диск.
При разбиении диска вручную не забудьте создать EFI system partition,
# Подключаем диск к другому компьютеру (например, через SATA->USB адаптер)
отформатировать его в файловую систему fat, и назначить точку монтирования <tt>/boot/efi</tt>
# Записываем образ на диск:<br><code>dd if=simply-baikal_m-itx.img of=/dev/disk/by-id/XYZ bs=4k</code><br> где <tt>/dev/disk/by-id/XYZ</tt> -- файл устройства, соответствующий диску.
# (не обязательно) Расширяем раздел с корневой ФС на весь диск:<br><code>parted --script /dev/disk/by-id/XYZ resizepart 2 100% && blockdev --rereadpt /dev/disk/by-id/XYZ</code>
# (не обязательно) Расширяем корневую ФС на весь раздел:<br><code>e2fsck -f /dev/disk/by-id/XYZ'''2''' && resize2fs -p /dev/disk/by-id/XYZ'''2'''</code>
# Отключаем диск, подключаем обратно к плате с Baikal-M
# Включаем Baikal-M


== Известные проблемы ==
== Известные проблемы ==


* При переключении разрешения на 1280х720 (или 1680х1050) и обратно на 1920x1080 пропадает видеосигнал. Изображение восстанавиливается после перезагрузки.
* При установке на платы с прошивкой из SDK-M 4.4 может возникнуть kernel panic при инициализации драйвера PCIe. Для обхода проблемы достаточно передать ядру параметр <br><code>modprobe.blacklist=pcie_baikal</code>
* При отключении и повторном включении HDMI кабеля пропадает видеосигнал.
* При установке на платы с прошивкой из SDK-M 4.4 не стартует Xorg. Чтобы запустился, достаточно в добавить в blacklist модуль panfrost.
* При переключении монитора на другой вход (VGA) и обратно на HDMI пропадает видеосигнал. Иногда его удается восстановить переключением на другую консоль (Ctrl-Alt-F2), и обратно в X (Alt-F1). А иногда требуется перезагрузка.
* Аппаратное ускорение 3d рендеринга (с помощью GPU Mali T628) недоступно. Бинарные драйверы от Байкал Электроникс не поддерживают X11. Предоставляемое API недостаточно даже для запуска простейших wayland composer (например, weston версии 5.0), не говоря уже о полноценных окружениях (GNOME 3, KDE 5).
* При завершении работы происходит сбой ядра при доступе к переменным EFI.
* Аппаратное декодирование видео недоступно. Бинарные драйверы от Байкал Электроникс намертво привязаны к определенным версиям системных библиотек (glib2, pcre, libxml, и проч), так что невозможно обеспечить их функционирование в каком-либо дистрибутиве, кроме Debian 10
* <s>При завершении работы системы сигнал на мониторе сразу пропадает.</s> Питание автоматически не отключается. Узнать, что работа системы завершилась можно только по сообщению на UART терминале.
* Время и дата не сохраняются на плате DBM. После перезагрузки/включения -- всегда 26 марта 2020 года 16:20. Наличие или отсутствие батарейки не влияет. На плате MBM1.0 зависит от версии firmware.
 
== Подключение UART консоли к mITX плате ==
 
Иногда бывает, что при загрузке система виснет, и на экране ничего не отображается.
Вот в этих случаях и поможет UART консоль.
 
=== Требуется ===
 
* Утилита picocom
* UART -> USB адаптер, рассчитаный на уровень сигналов 1.8 Вольт. '''ВНИМАНИЕ! Использование адаптеров на 3.3 Вольт ПРИВОДИТ К ПОЛОМКЕ ПЛАТЫ!'''
 
Автор успешно использовал адаптер, который определяется как
  ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
 
=== Подключение UART->USB адаптера к плате ===
 
* Разъём обозначен XP8
* PIN 1 обозначен точкой
* PIN 13 UART_TX (TX on BM)
* PIN 14 GND
* PIN 15 UART_RX (RX on BM)
 
Pаспиновка относительно ключа - разрыва пластиковой рамки разъёма:
 
------------ ключ------------
19 17 15 13 11 09 07 05 03 01
20 18 16 14 12 10 08 06 04 02
-----------------------------
 
=== Использование UART консоли ===
 
После подключения адаптера к плате следует подать питание на плату, но не включать ее. Далее нужно
 
# Подключить USB разъем адаптера к компьютеру. При успешном подключении в системе появится устройство <tt>/dev/ttyUSB0</tt> (если не подключены другие USB serial устройства)
# Подключиться к устройству <tt>/dev/ttyUSB0</tt> с помощью программы picocom: <br><code>picocom -b115200 /dev/ttyUSB0</code>
# Включить плату, дождаться меню загрузчика grub
# Прервать автоматическую загрузку и войти в режим редактирования. Для этого достаточно нажать кнопку '''c'''.
# В конце строки <tt>linux /boot/vmlinuz-XYZ ...</tt> дописать<br><code>console=ttyS0,115200n8 earlycon=uart8250,mmio32,0x20230000 loglevel=8</code>
# Продолжить загрузку -- нажать кнопку <tt>F10</tt>.
 
После этого в picocom появятся подробные сообщения ядра.
 
 
== Обновление прошивки на DBM плате ==
 
=== Требуются ===
 
* Утилита [http://dfu-util.sourceforge.net/ dfu-util] версии 0.9 или новее
* микро-USB шнур
 
=== Порядок действий ===
 
# Подключить плату к сети питания. Не включать. Подается дежурное напряжение.
# Подключить плату к хост компьютеру (микро-USB разъем XS2, ближайший к Ethernet разъемам)
# Прошить файл dbm.scp.flash.bin:<br><code>sudo dfu-util -D ./baikal/prebuilts/dbm.scp.flash.bin -a 0 -s 0x08000000</code>
# Прошить файл dbm.flash.img:<br><code>sudo dfu-util -D ./baikal/prebuilts/dbm.flash.img -a 1 -s 0x0A000000</code>
# Физически отключить питание платы (отсоединить шнур) на 30 -- 60 секунд.
 
=== После прошивки ===
 
В процессе прошивки настройки UEFI обнуляются. В связи с этим плата будет загружаться в EFI shell.
Для запуска GRUB нужно дать команду<br><code>fs0:\EFI\altlinux\grubaa64.efi</code><br>
Для того, чтобы GRUB запускался автоматически, после загрузки ОС следует выполнить команду<br>
<code>sudo efibootmgr -c --label altlinux --loader \\EFI\\altlinux\\grubaa64.efi</code>
 


[[Категория:ARM]]
[[Категория:ARM]]

Версия от 13:10, 19 февраля 2021

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

На данный момент страничка описывает выпуск ALT Workstation 9.1 для системной платы MBM1.0(mITX) на основе процессора "Байкал-М" (модель ВЕ-М1000) производства "Байкал Электроникс".

Перед началом установки

На плате должен быть прошит firmware из SDK-M версий 4.4, 4.3, или 4.2. С более старыми версиями прошивки эту инструкцию использовать не следует. Окирпичить плату вряд ли выйдет, но времени и нервов потратите много.

На глазок версию прошивки можно определить так:

  • Если секунд через 20 после включения отображается большой (во весь экран) логотип Байкал Электроникс, значит, это прошивка из SDK-M-4.2 или новее
  • Если почти сразу после включения отображается сначала маленький, а потом большой логотип Байкал Электроникс -- это SDK-M-4.3
  • Если под логотипом отображается версия, то это она и есть
  • Если во время загрузки на экране ничего нет, это слишком старая прошивка

Точно определить версию прошивки, к сожалению, можно только с помощью UART консоли.

Установка

Установочный ISO доступен здесь: https://mirror.yandex.ru/altlinux/p9/images/workstation/aarch64/alt-workstation-baikalm-9.1-aarch64.iso Его нужно записать на внешний USB накопитель, sd карту, либо жесткий диск.

  • ВНИМАНИЕ! ВСЕ ДАННЫЕ, КОТОРЫЕ НАХОДЯТСЯ НА НОСИТЕЛЕ, БУДУТ БЕЗВОЗВРАТНО СТЕРТЫ!
  • ВНИМАНИЕ! РИСК СТЕРЕТЬ НЕ ТЕ ДАННЫЕ! ТРИЖДЫ ПРОВЕРЬТЕ, ЧТО ПИШЕТЕ НА НУЖНЫЙ НОСИТЕЛЬ!

dd if=alt-workstation-baikalm-9.1-aarch64.iso of=/dev/disk/by-id/XYZ bs=1M conv=fsync

Затем нужно подключить носитель к плате и загрузиться с него. Если на Байкал-М еще не установлена ОС, то загрузка со съемного носителя происходит по умолчанию. Если по какой-то причине загрузка не началась, нужно нажать Escape во время инициализации UEFI (когда вверху появится надпись "Press ESC for boot options"), и выбрать загрузку с нужного устройства вручную.

Загрузка на платах с прошивкой из SDK-M 4.4

Если система не грузится (kernel panic) или установка не стартует, или зависает во время установки, передайте ядру параметры
modprobe.blacklist=pcie_baikal,panfrost,cpufreq_dt

EFI system partition

При разбиении диска вручную не забудьте создать EFI system partition, отформатировать его в файловую систему fat, и назначить точку монтирования /boot/efi

Известные проблемы

  • При установке на платы с прошивкой из SDK-M 4.4 может возникнуть kernel panic при инициализации драйвера PCIe. Для обхода проблемы достаточно передать ядру параметр
    modprobe.blacklist=pcie_baikal
  • При установке на платы с прошивкой из SDK-M 4.4 не стартует Xorg. Чтобы запустился, достаточно в добавить в blacklist модуль panfrost.
  • Аппаратное ускорение 3d рендеринга (с помощью GPU Mali T628) недоступно. Бинарные драйверы от Байкал Электроникс не поддерживают X11. Предоставляемое API недостаточно даже для запуска простейших wayland composer (например, weston версии 5.0), не говоря уже о полноценных окружениях (GNOME 3, KDE 5).
  • Аппаратное декодирование видео недоступно. Бинарные драйверы от Байкал Электроникс намертво привязаны к определенным версиям системных библиотек (glib2, pcre, libxml, и проч), так что невозможно обеспечить их функционирование в каком-либо дистрибутиве, кроме Debian 10
  • Время и дата не сохраняются на плате DBM. После перезагрузки/включения -- всегда 26 марта 2020 года 16:20. Наличие или отсутствие батарейки не влияет. На плате MBM1.0 зависит от версии firmware.

Подключение UART консоли к mITX плате

Иногда бывает, что при загрузке система виснет, и на экране ничего не отображается. Вот в этих случаях и поможет UART консоль.

Требуется

  • Утилита picocom
  • UART -> USB адаптер, рассчитаный на уровень сигналов 1.8 Вольт. ВНИМАНИЕ! Использование адаптеров на 3.3 Вольт ПРИВОДИТ К ПОЛОМКЕ ПЛАТЫ!

Автор успешно использовал адаптер, который определяется как

 ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]

Подключение UART->USB адаптера к плате

  • Разъём обозначен XP8
  • PIN 1 обозначен точкой
  • PIN 13 UART_TX (TX on BM)
  • PIN 14 GND
  • PIN 15 UART_RX (RX on BM)

Pаспиновка относительно ключа - разрыва пластиковой рамки разъёма:

------------ ключ------------
19 17 15 13 11 09 07 05 03 01
20 18 16 14 12 10 08 06 04 02
-----------------------------

Использование UART консоли

После подключения адаптера к плате следует подать питание на плату, но не включать ее. Далее нужно

  1. Подключить USB разъем адаптера к компьютеру. При успешном подключении в системе появится устройство /dev/ttyUSB0 (если не подключены другие USB serial устройства)
  2. Подключиться к устройству /dev/ttyUSB0 с помощью программы picocom:
    picocom -b115200 /dev/ttyUSB0
  3. Включить плату, дождаться меню загрузчика grub
  4. Прервать автоматическую загрузку и войти в режим редактирования. Для этого достаточно нажать кнопку c.
  5. В конце строки linux /boot/vmlinuz-XYZ ... дописать
    console=ttyS0,115200n8 earlycon=uart8250,mmio32,0x20230000 loglevel=8
  6. Продолжить загрузку -- нажать кнопку F10.

После этого в picocom появятся подробные сообщения ядра.


Обновление прошивки на DBM плате

Требуются

  • Утилита dfu-util версии 0.9 или новее
  • микро-USB шнур

Порядок действий

  1. Подключить плату к сети питания. Не включать. Подается дежурное напряжение.
  2. Подключить плату к хост компьютеру (микро-USB разъем XS2, ближайший к Ethernet разъемам)
  3. Прошить файл dbm.scp.flash.bin:
    sudo dfu-util -D ./baikal/prebuilts/dbm.scp.flash.bin -a 0 -s 0x08000000
  4. Прошить файл dbm.flash.img:
    sudo dfu-util -D ./baikal/prebuilts/dbm.flash.img -a 1 -s 0x0A000000
  5. Физически отключить питание платы (отсоединить шнур) на 30 -- 60 секунд.

После прошивки

В процессе прошивки настройки UEFI обнуляются. В связи с этим плата будет загружаться в EFI shell. Для запуска GRUB нужно дать команду
fs0:\EFI\altlinux\grubaa64.efi
Для того, чтобы GRUB запускался автоматически, после загрузки ОС следует выполнить команду
sudo efibootmgr -c --label altlinux --loader \\EFI\\altlinux\\grubaa64.efi