Если разворачиваете Red OS на архитектуре e2k или arm64, начните с выбора корректного ISO-образа. Сборки для архитектуры e2k доступны через закрытый репозиторий, распространяются только по подписке. Для Baikal-M – arm64-сборка, её можно скачать с официального портала разработчика.
Инициализация загрузчика – первая ловушка. На e2k потребуется использовать mod_grub с соответствующим патчем под UEFI. Без него – чёрный экран. На Baikal-M – возможна нестабильная работа при использовании u-boot, особенно с нестандартной SPI-прошивкой. Совет – использовать проверенную версию загрузчика от базового BSP, не обновлять до последней версии без бэкапа.
Важно! Если платформа собрана на базе MBaikal-T1, потребуется отдельный initrd со встроенной поддержкой нестандартного I2C-контроллера.
Поддержка графического интерфейса на Эльбрусе ограничена. XFCE – работает. GNOME – скорее нет. Причина – отсутствующие инструкции SIMD, которые GNOME считает самоочевидными. Используйте dnf groupinstall "Xfce Desktop" вместо попытки тянуть весь DE.
Baikal-M – чуть проще. Видеоядро работает через DRM/KMS, но некоторые версии Mesa ломаются при рендеринге Wayland. Лучше включить X11 и забыть про эксперименты. Для стабильной работы – Mesa версии не выше 21.3.9. С более новыми – артефакты и падения X-сессии.
Сетевая подсистема на Elbrus – отдельная боль. Некоторые платы используют драйверы, несовместимые с ядром Red OS из коробки. Нужно пересобирать модуль r8169 или загружать его вручную с параметрами, отключающими ASPM. Иначе – либо краши, либо отсутствие линка.
Внимание! Используйте только проверенные версии ядра – 5.10 и 5.15. Более новые ядра могут не стартовать из-за ошибок в e2k-backend-компиляторе.
Встроенные криптомодули на e2k поддерживаются через пакет elbrus-pki. Без него невозможна регистрация TLS-сертификатов в некоторых случаях. Аналогичная ситуация на arm64 – требуется baikal-crypto-support, иначе отваливается аппаратное ускорение при работе с GOST.
Пример корректной строки загрузки в GRUB:
linux /boot/vmlinuz-5.10 root=/dev/sda2 ro quiet cryptomgr.notests=1
Обновления ставьте вручную. Не через GUI. На e2k возможна порча загрузчика после dnf upgrade из-за некорректной перегенерации initramfs. Используйте:
dnf upgrade --exclude=grub2,shim,elbrus-loader
Итог. Работает. Но не из коробки. Без документации, без экспериментов – никуда. Сборки нестабильные, патчи частично закрытые, поддержка вендора – по запросу. Хотите предсказуемости – автоматизируйте всё через Ansible, готовьте отдельные playbook’и под каждую архитектуру. И тестируйте каждый шаг. Всегда.
Содержание статьи
Особенности установки Red OS на платформу Эльбрус
Сразу: используйте установочный образ с поддержкой архитектуры e2k. ISO для amd64 не подойдет. Не пытайтесь запускать UEFI-загрузку – нужна только загрузка через OpenBIOS, иначе получите бесконечный цикл ребута.
Проверьте версию микропрограммы платы. На старых ревизиях компиляция initrd может повиснуть из-за ошибки в реализации SPI. Рабочая прошивка – не ниже версии 1.16. Обновление через утилиту fw_update из окружения загрузчика.
Форматирование дисков – через parted, а не через fdisk. GPT разметка с BIOS boot partition в начале и корнем на следующем разделе:
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary 1MiB 3MiB
parted /dev/sda set 1 bios_grub on
parted /dev/sda mkpart primary ext4 3MiB 100%
Установка происходит стандартным образом через текстовый инсталлятор. GUI-интерфейс отваливается на конфигурациях с видеокартой MCST Vega – драйвера нет. Используйте только VGA-консоль через VNC или COM-порт.
Важно! Не используйте автоматическую разметку. Скрипт неправильно определяет загрузочную область и может затереть таблицу разделов без предупреждения.
После установки необходимо вручную задать параметры ядра в GRUB:
GRUB_CMDLINE_LINUX="rootdelay=10 e2k_disable_pmu=1 log_buf_len=1M"
Сохраните через grub2-mkconfig -o /boot/grub2/grub.cfg и проверьте наличие строки с ядром типа /boot/vmlinuz-*. Если отсутствует – пересоберите initrd через dracut -f.
Проблема с сетью? Не видит eth0? Проверьте через lspci | grep Ethernet. Контроллер от TSP (встроенный) требует модуль tspeth. Иногда не загружается автоматически. Добавьте строку в /etc/modules-load.d/tspeth.conf и перезагрузитесь.
Помните: не редкость – падение systemd-udevd при старте. Причина – конфликт модулей ядра при инициализации специфичного оборудования. Решается чёрным списком проблемных драйверов в
/etc/modprobe.d/blacklist.conf.
Завершающий этап – проверка init-цепочки. Система может загружаться 1-2 минуты. Это не баг. Просто специфическая реализация работы с устройствами хранения. Убедитесь, что после логина нет задержек при старте systemd-сервисов – иначе ищите виновника через systemd-analyze blame.
Поддержка драйверов и периферии при работе Red OS на процессорах Байкал
Сетевая карта Aquantia? Поддержка через модуль atlantic.ko. Только после ручного включения и пересборки ядра. Автоматически не работает. USB-to-Ethernet через Realtek – модуль r8152 загружается, но иногда глючит на горячем извлечении. Не используйте без крайней нужды.
Графика – отдельная боль. Mali-T628 в SoC не имеет стабильных открытых драйверов. Используется armsoc или fbdev через DRM, но ни Wayland, ни полноценный X11 не дадут аппаратного ускорения. Забудьте про плавность. Если нужна отрисовка интерфейса – используйте легковесные среды: XFCE или IceWM.
Порты USB работают стабильно, но не на всех ревизиях плат. Проверяйте через dmesg | grep xhci – если видите ошибки Transfer event TRB DMA ptr, значит, контроллер нестабилен. Переключайтесь на другой порт или обновляйте прошивку UEFI.
Важно помнить: прошивки некоторых контроллеров хранятся в
/lib/firmware, но не всегда предустановлены. Например, для Bluetooth-модуля Cypress потребуется файлCYW20702A1-0b05-17cb.hcd, иначе – ноль реакции.
Печать? Только CUPS. Только PPD. Принтеры с поддержкой IPP работают из коробки. Старые HP – только через hplip, и то не все. Поддержка сканеров через sane ограничена. Проверяйте конкретные модели заранее.
Камеры? UVC есть. Но частота кадров может быть заблокирована на 640×480. Пример: Logitech C270 – обнаруживается, но при переключении в HD режим изображение рвётся. Используйте утилиту v4l2-ctl для ручного конфигурирования.
Звук – через snd_hda_intel или snd_soc, в зависимости от конкретного модуля. Встроенные решения часто требуют пропатченных DTB. Алгоритм простой: если после загрузки aplay -l показывает пустоту – копайте DTB, ищите sound node.
Внимание! Некоторые устройства требуют ручного включения шины I2C через Device Tree overlays. Без этого – ни тачпад, ни сенсорная панель, ни акселерометр не заработают, даже если модули загружены.
Для массового развёртывания – только создание собственного образа с предустановленными драйверами. Используйте dracut и mkimage для создания initramfs с нужным набором модулей. Это убережёт от сюрпризов при загрузке.
Проверка наличия всех модулей выполняется через:
find /lib/modules/$(uname -r) -name '*.ko' | grep -i нужное_устройство
Нет поддержки? Значит, модуль не собран. Придётся включать вручную в make menuconfig и пересобирать ядро. Или искать out-of-tree драйвер и портировать под текущий ABI. Работы много. Решаемо, но болезненно.
Проблемы и ограничения при обновлении Red OS на Эльбрусе и Байкале
Не запускайте dnf upgrade без предварительной проверки доступности модулей ядра под вашу архитектуру. После перезагрузки – чёрный экран или kernel panic. Проверяйте модули вручную.
Важно! Перед обновлением ядра обязательно проверьте наличие совместимых модулей в
/lib/modules/$(uname -r). Без них система может не загрузиться.
- На Эльбрусе – критическая проблема с загрузчиком
e2k-boot: новые версии не всегда подхватывают конфигурации из/boot/efi. Требуется ручная правкаgrub.cfg. - На Байкале – нестабильность графического стека при переходе с версии X11 на Wayland. Иногда X не стартует вообще. Выход – оставить старую версию
xorgи заморозить её черезdnf versionlock. - Часто ломается поддержка аппаратного видеоускорения. Особенно при обновлении mesa. Придётся возвращаться на конкретную сборку:
dnf downgrade mesa*.
Частая ловушка: обновление glibc. После него летит всё, что было собрано локально – от кастомных бинарей до библиотек, заточенных под конкретные сборки. Используйте ldd и ldconfig -p для аудита бинарей.
Внимание! Установка новых пакетов из нестабильных репозиториев без проверки их архитектурной зависимости – гарантированный способ получить systemd, который не стартует.
Не забывайте:
- Перед обновлением делайте snapshot разделов (btrfs, LVM – что есть).
- Создавайте резервный initrd вручную:
dracut --force /boot/initramfs-$(uname -r)-backup.img $(uname -r). - Отдельно проверьте microcode: на Байкале его обновление иногда сбрасывает частоту CPU на 600 МГц.
Если ставите патчи вручную – пересобирайте ядро под конкретную архитектуру. Автоматическая перекомпиляция часто отваливается из-за устаревших spec-файлов и сломанных зависимостей в .
Отдельная боль – аудиоподсистема. pipewire после обновления может потерять связь с ALSA. Откат через systemctl disable --now pipewire и возврат к pulseaudio.
Хотите стабильности – не обновляйтесь по сети. Собирайте зеркала локально через reposync, проверяйте метаданные вручную. На некоторых сборках checksum’ы не сходятся. Доверяй, но проверяй.
Сравнение производительности Red OS на Эльбрусе и Байкале в прикладных задачах
Рекомендация: для офисных и web-приложений – Байкал. Для компиляции, криптографии и работы с СУБД – Эльбрус.
LibreOffice запускается на обоих платформах за 2–3 секунды. Но: на Эльбрусе с 8 ядрами – задержка при переключении между вкладками Calc до 0.5 сек. На Байкале – мгновенно. Причина – низкая однопоточная производительность у VLIW-архитектуры, при этом высокая нагрузка на кэш. Firefox: рендеринг SVG-графики быстрее на Байкале в 1.4 раза. Видеоускорение – отсутствует на обоих, но на T-платформе с Байкалом меньше нагрев и стабильнее FPS при HTML5-воспроизведении.
GCC-компиляция ядра (5.15) – сюрприз. На 4-канальном Эльбрусе 401 выполнено за 14 минут. Байкал-М с теми же 8 потоками – 19 минут. Причина – мощный набор инструкций в MCST-компиляторе, агрессивная векторизация. Но! Заметно греется. До 85° при сборке.
PostgreSQL 14.6: бенчмарк pgbench -c 10 -j 10 -T 60 показывает 560 TPS на Байкале, и до 630 TPS на Эльбрусе при тех же настройках. Но лукавство! Только если отключен журнал WAL. С включенным – производительность падает на 30% у Эльбруса. Причина – медленная запись в RAM и проседание при интенсивной синхронизации потоков.
Важно: оптимизация многопоточности для MCST-платформ требует специфичной перекомпиляции библиотек. Без этого – гарантированный bottleneck на I/O.
Сценарии автоматизации (Ansible, bash-скрипты): паритет. Но запуск ansible-playbook с YAML-файлом на 800 строк – быстрее на Байкале на 3–5 секунд. Причина: быстрее обрабатывает мелкие системные вызовы, лучше взаимодействует с journald.
Миф: Эльбрус медленный. Реальность: без оптимизации – да. С перекомпиляцией под e2k – зверь, но только в задачах с вычислительной интенсивностью.
Внимание! Не используйте RPM-пакеты, собранные под generic x86-64, на Эльбрусе. Только natively built. Иначе – segmentation fault гарантирован.
GIMP (2.10): отрисовка фильтра Gaussian Blur – 2.8 секунды на Байкале, 3.5 на Эльбрусе. Повторное выполнение – одинаково, кэш помогает. Blender – не тестировался. Причина: отсутствует поддержка аппаратного ускорения OpenCL.
Оставлять платформу без fine-tune – преступление. Развертывание без анализа – гарантированное разочарование. Архитектура влияет. Среда тоже. Не забывайте это. Никогда.

