Не скажу за всех, но периодически вспоминать нюансы по сборке образа и тратить на это время бесит. Пусть будет туториал.

В руках у меня оказалась невзрачная черная коробочка — KM8p, сердцем которой бился восьми ядерный кристалл s912, с двумя гигабайтами оперативной памяти и восемью гигабайтами встроенного хранилища. Задача — вдохнуть в нее жизнь, установив легковесную графическую среду xfce, единственную, что под силу этой скромной оперативе.

Мой путь лежал через дистрибутив armbian, версию 26.02.0-trunk. Но это был не простой установочный образ, а целый лабиринт, полный не очевидных ловушек и правил, будто составленных загадочным архитектором.

Первый закон: Запрет на чужие земли.

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

Второй закон: Чистота перед творением.

Перед каждым новым актом сборки требовалось ритуальное очищение. Следовало безжалостно стереть временные каталоги: ./cache, ./.tmp, ./output, ./userpatches. Будто стирая следы прошлых попыток, ты даешь пространству для новой магии.

Третий закон: Власть не для корня.

Собирать следовало не под всесильным root, а под основным, смертным пользователем. И файловая система для этого действа предписывалась только ext4 — проверенный временем фундамент.

Четвертый закон: Свобода от докера.

Мне не потребовался Docker. Вместо этого, в определенный момент, когда на экране начинал тикать обратный отсчет, от меня ждали лишь одного: вовремя нажать 'Enter', подтверждая свое присутствие и готовность.

Пятый закон: Табу на конфиги.

Соблазн добавить свои настройки в ./build/config/boards/ был велик, но туда путь был заказан. Там царил хаос динамических имен, завязанных на имена dts-файлов железа. Вмешательство сулило только конфуз.

Шестой закон: Смотри в суть.

Настоящие секреты таились глубже — в скриптах по адресу ./build/lib/functions/compilation/. Именно эти заклинания по частям собирали uboot, kernel и прочие кирпичики системы.

Седьмой закон, самый коварный: Образ-призрак.

Собранный по умолчанию образ armbian был подобен телу без души. На месте загрузчика uboot в нем зияли лишь нули. Залить такой образ на emmc и ждать загрузки было безумием. Он никогда бы не стартовал.

Но в безднах скриптов, среди тысячи строк кода, таился спасительный флаг — 'EXTENSION_BUILT_UBOOT=yes'. Его активация заставляла машину собрать и вшить загрузчик в образ. Правда, следовало на свой страх и риск проверить, есть ли в репозитории u-boot нужный dts-файл для моего процессора. Игра стоила свеч.

Финальный ритуал — команда великой сборки:

./compile.sh build BOARD=khadas-vim2 BRANCH=current BUILD_DESKTOP=yes \
BUILD_MINIMAL=no DESKTOP_APPGROUPS_SELECTED='browsers editors internet multimedia' \
DESKTOP_ENVIRONMENT=xfce DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base \
KERNEL_CONFIGURE=no RELEASE=noble EXTENSION_BUILT_UBOOT=yes            

И даже когда, после долгих часов компиляции, система наконец оживала, ее ждал последний штрих. Ethernet на KM8p в таком виде молчал. Чтобы пробудить проводную связь, требовалось принудительно сменить ее цифровое «платье» — Device Tree. В файле "/boot/armbianEnv.txt" нужно было вписать заклинание:

fdtfile=amlogic/meson-gxm-q201.dtb

Этот файл давал жизнь только проводам. За магию Wi-Fi предстояло охотиться отдельно, в дебрях даташитов и форумов.

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

p.s. Тут собраны нюансы для сборки своего образа на базе armbian, если кто то знает что то еще, можно дополнить. В качестве примера был ТВ бокс KM8p и его перевод на ubuntu для дальнейшей эксплуатации в качестве сервера, но это уже совсем другая история :)

Комментарии (6)


  1. achekalin
    06.01.2026 23:09

    Какой-то ии текст.

    Понимаю, что такое проще написать самому, но читать прямо трудно.


  1. adeep
    06.01.2026 23:09

    что-то EXTENSION_BUILT_UBOOT в первый раз вижу - uboot всегда собирается.

    в законах ересь написана, разве что кроме запуска от рута


    1. dombran Автор
      06.01.2026 23:09

      В том то и проблема, в последней версии armbian во многих конфигах он собирается без загрузчика. Amlogic кристаллы так точно.


      1. adeep
        06.01.2026 23:09

        вы собираете khadas-vim2 - это официально поддерживаемый образ. он собирается с полным загрузчиком

        https://github.com/armbian/build/blob/main/config/sources/families/meson-gxl.conf строки 22-25


  1. digrobot
    06.01.2026 23:09

    А смысл самому собирать? Есть готовый образ Ubuntu, записал на sd карту, загрузился с неё - все работает, и гораздо быстрее, чем с emmc, но можно и на emmc установить. Железо такое же meson-gxm-q201


  1. dombran Автор
    06.01.2026 23:09

    Для вышеуказанного красталла большинство образов без загрузчика. Не говорю уже отом что они собраны абы как.