Сразу пишите образ через dd, никакого Balena Etcher. Подключаете карту к хосту с Linux, смотрите в lsblk, не ошибаетесь, выбираете нужное устройство – и жмёте.
dd if=Red_OS_image.iso of=/dev/sdX bs=4M status=progress conv=fsync
Если карта загружается и не вываливается в emergency shell – уже успех. Но не радуйтесь раньше времени. ARM-платформа капризна. Особенно здесь. Файл uEnv.txt правится вручную, если не тянется GPU или отваливается Wi-Fi. Иногда нужно подсовывать собственный dtb.
Внимание! Не доверяйте автоматам. Ручная проверка загрузчика и ядра обязательна.
Дальше – консоль. Нет графики? Отлично. Входите через tty1, логин root, пароль стандартный. Сразу правим /etc/hostname и /etc/hosts, иначе сеть по DHCP будет отваливаться на уровне Avahi.
Обновление системы – строго после проверки наличия нужных зеркал. Не используйте dnf update без --refresh, иначе получите конфликты на glibc.
dnf clean all && dnf --refresh upgrade -y
Рекомендуется прописать статический адрес через nmcli, чтобы не зависеть от роутера. Пример:
nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0
Важно помнить: Автоматическая настройка через NetworkManager работает нестабильно на некоторых ревизиях платы. Лучше руками.
Если всё сделано точно – получите стабильную работу. Если нет – консоль молчит, светодиоды моргают как хотят, и придётся отпаивать GPIO для отладки UART. Проблема реальная.
Маска безопасности SELinux по умолчанию – permissive. Не забудьте включить enforcing после полной настройки, иначе получите неожиданные пробои в сервисах.
Содержание статьи
Подготовка microSD-карты с образом Red OS
Не используйте графические утилиты. Ни GNOME Disks, ни Etcher, ни тем более какие-нибудь web-флешеры. Только dd, только контроль на каждом этапе.
- Скачивайте чистый ISO с официального FTP или через
rsync. Не через браузер. Проверяйте SHA256. - Подключаете карту.
lsblkсразу, чтобы не угробить диск с домашкой. - Стираете всё подчистую, включая таблицу разделов:
wipefs -a /dev/sdX
sgdisk --zap-all /dev/sdX
Затем записываете образ. Без status=progress – будете гадать, зависло или нет. Без conv=fsync – получите неконсистентные данные.
dd if=имя_образа.iso of=/dev/sdX bs=4M status=progress conv=fsync
Обязательно выполняете sync и только потом вытаскиваете носитель. Никаких «просто подождал пару секунд» – sync или смерть.
Проверка записи – cmp или sha256sum /dev/sdX на первых 512 МБ. Если отличается – карту в мусор. Или используйте для фотоаппарата.
- SD-карта минимум UHS-I, класс 10. Лучше A1 или A2. Kingston Canvas Go! или SanDisk Extreme.
- Формат exFAT не подходит. Образ содержит собственную таблицу. Не форматируйте вручную.
- Переходники microSD → USB – лотерея. Берите USB 3.0 с чипами Realtek или Genesys Logic.
Важно: После записи не монтируйте карту в графической среде. Случайный запуск автомаунта – возможная порча разделов.
Если загрузка не стартует – начинайте с проверки сигнатур MBR и наличия bootcode.bin. Отсутствует – ошибка при записи, повторяйте.
Рабочий образ не требует распаковки. Архивы не трогайте. Если видите tar.gz – это не то, что нужно.
Конкретно на этой модели платы часто встречаются проблемы с чтением в первых 4 секундах после подачи питания. Внимание к питанию и качеству контактов критично.
Помните: microSD здесь не просто носитель. Это корень всей системы. Любая мелочь – и всё пойдёт по наклонной.
Настройка BIOS и загрузка Repka Pi 4 с карты памяти
Забудьте про привычный BIOS. Здесь прошивка UEFI на базе Tianocore, урезанная до минимума. Навигация – клавиши F2, Esc, стрелки. Никакой мыши. Всё вручную. Либо – консоль через UART, если экран не подаёт признаков жизни.
Первое: отключите Secure Boot. Он не нужен. Проверка подписей работает через раз. В разделе Boot Manager проверьте порядок устройств – карта должна быть на первом месте. Если USB выше – получите чёрный экран.
Проверьте загрузчик. Должен быть BOOTAA64.EFI в директории /EFI/BOOT. Если файла нет – копируйте вручную с образа или создавайте:
cp /mnt/iso/EFI/BOOT/BOOTAA64.EFI /mnt/sdcard/EFI/BOOT/
Если файл есть, но загрузка не идёт – проблема в FAT-разделе. Должен быть только один, размеченный как ESP, метка BOOT или SYSTEM. Не BOOTFS, не rootfs. Метка важна.
Далее – переменные среды. Через встроенную оболочку запускайте:
bcfg boot add 0 FS0:\EFI\BOOT\BOOTAA64.EFI "MicroSD Boot"
Если плата уходит в PXE или зависает – сбрасывайте переменные через оболочку:
reset -s
Не забудьте отключить PXE-загрузку, если она активна. Система может игнорировать локальный носитель при активной сетевой инициализации.
Важно помнить: Некоторые сборки UEFI не видят карту без активного GPIO-сигнала. Подключайте питание к правильной паре контактов. Иначе не сработает даже загрузка.
Если UEFI не запускается – проверяйте наличие startup.nsh. Иногда требуется вручную прописать путь к ядру через скрипт автозагрузки:
FS0:\vmlinuz root=/dev/mmcblk0p2 rw console=ttyAMA0,115200
Медленная карта = медленный старт. До 15 секунд на инициализацию. Не паникуйте. Светодиоды не мигают? Плохая прошивка или битая таблица разделов.
Проверка питания – обязательна. Нестабильные 5.0 В вызывают сброс UEFI в ранней стадии. Используйте блоки питания на 3А с чистой линией. Без этого система не стартует.
Если всё сделано правильно – после 5–10 секунд вы должны увидеть Shell или текстовое меню UEFI. Если нет – пересобирайте карту и сверяйте каждую директорию вручную. Ошибка может быть в названии файла или неправильной кодировке таблицы.
Первоначальная настройка системы через терминал
После запуска получите чистый tty без лишнего шума. Вход под root. Пароль стандартный, но менять его сразу – ошибка. Сначала настройка сети. Потом остальное.
Проверка видимости файловых систем:
lsblk -f
Если корень монтирован как read-only – срочная проверка fstab. Сброшенные UUID, сломанная таблица – классика. Правка вручную. Без редакторов. Используйте sed или echo с перенаправлением.
Внимание! Не трогайте
/etc/crypttab, если не используете LUKS. Иначе получите зависание на initramfs.
Создайте обычного пользователя с правами sudo. Но не добавляйте в wheel – в данной сборке это не работает из коробки.
useradd -m -G adm,audio,video -s /bin/bash techadmin
passwd techadmin
Выставляйте hostname сразу, без промедлений. Иначе получите неконсистентность журналов и сетевого разрешения имён.
echo "node-rp4" > /etc/hostname
sed -i 's/localhost/node-rp4/g' /etc/hosts
Отключите предзагрузку сервисов, которые не используются:
systemctl disable cups
systemctl disable bluetooth
systemctl mask plymouth-start.service
Разгрузка памяти начинается с ядра. Правьте grub.cfg или cmdline.txt, в зависимости от сборки. Добавьте:
console=ttyAMA0,115200 quiet selinux=1 enforcing=1 audit=0
Проверьте правильность локали. Слишком часто система стартует с en_US.UTF-8 и отваливается при установке пакетов с русскими комментариями.
localectl set-locale LANG=ru_RU.UTF-8
Настройка времени – строго через timedatectl. Не пытайтесь вручную писать в /etc/localtime. Симлинк слетит после первого обновления.
timedatectl set-timezone Europe/Moscow
timedatectl set-ntp true
Помните: В этой системе активна SELinux. Любые правки в системных директориях – только с учетом контекстов. Иначе получите отказы при старте служб.
Проверьте статус безопасности:
getenforce
Если ответ Permissive – переключайтесь:
setenforce 1
sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
На этом базовый уровень конфигурации завершён. Все последующие действия зависят от задач. Но без этого минимума вы далеко не уедете.
Подключение к сети и обновление репозиториев
Не используйте графические менеджеры. Только терминал. Только nmcli.
Проверка устройств:
nmcli device status
Если интерфейс в состоянии unavailable – сбой прошивки или отсутствие драйвера. Проверка модулей ядра:
lsmod | grep brcm
modprobe brcmfmac
Для Ethernet:
nmcli con add type ethernet ifname eth0 con-name lan
Для Wi-Fi с WPA2:
nmcli dev wifi connect 'Имя_сети' password 'Пароль'
Без кавычек получите ошибку парсинга. С кавычками – защита от пробелов в SSID. Проверка IP:
ip a
Если адреса нет – смотрим журнал:
journalctl -u NetworkManager
Важно: Иногда DNS не подхватывается. Добавьте вручную:
nmcli con mod lan ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up lan
Теперь обновление. Но сначала – синхронизация времени. Без неё TLS рвётся. Проверка:
timedatectl status
Если NTP неактивен:
timedatectl set-ntp true
Очистка метаданных и перезагрузка кэша:
dnf clean all
dnf --refresh upgrade -y
Если получаете Cannot download repomd.xml – проверка DNS, маршрут до зеркала и состояние GPG-подписей. Диагностика:
ping ya.ru
dig mirrors.red-soft.ru
dnf repolist -v
Помните: Не редактируйте
/etc/yum.repos.dвручную без крайней необходимости. Сломаете подписи – система откажется обновляться.
Проверка актуальности пакетов:
dnf check-update
Обновление ядра вручную – если нужно протестировать новое или откатить:
dnf install kernel-core kernel-modules
Обновили – перезагрузка обязательна. Без неё модульная несовместимость. В логах получите Invalid module format.
Проверка версии:
uname -r
Если совпадает с установленной – всё готово. Система в онлайне. Обновления загружены. Драйверы активны. Работать можно.

