Сборка Linux для планшета: полное руководство

Загрузчик планшета отказывается принимать самосборное ядро, а экран после прошивки остаётся чёрным — типичная ситуация, с которой сталкиваются при первой попытке сборки Linux под ARM-планшет. Причина чаще всего кроется не в «неправильном дистрибутиве», а в несовместимости Device Tree с конкретной ревизией платы или в заблокированном bootloader, который требует подписанный образ.

Эта статья разбирает весь цикл: от выбора базы и установки кросс-компилятора до сборки ядра, формирования корневой файловой системы и прошивки результата на устройство. Материал рассчитан на планшеты с процессорами ARM (Allwinner, Rockchip, Qualcomm, MediaTek), поскольку именно они составляют основу рынка и именно для них сборка имеет практический смысл.

Заранее обозначим границу применимости: точные команды разблокировки загрузчика и расположение разделов зависят от модели и производителя. Перед прошивкой сверьтесь с документацией именно вашего устройства — на профильных форумах и в ветках сообществ вроде postmarketOS или Armbian.

Когда сборка Linux для планшета действительно нужна

Не каждая задача требует собирать систему с нуля. Если цель — просто получить Linux-окружение на планшете, часто достаточно установить Termux на Android или использовать готовый образ postmarketOS для поддерживаемых моделей.

Собственная сборка оправдана в нескольких случаях:

  • 🔧 Неподдерживаемое железо — для вашей модели нет готового образа, и портирование неизбежно.
  • 📦 Минимальная система — требуется образ под конкретную задачу (киоск, контроллер, панель управления) без лишних пакетов.
  • 🛠️ Свежий mainline-кернел — стоковое ядро устарело, а нужны новые драйверы или исправления безопасности.
  • 🎓 Обучение — понимание устройства загрузки ARM-систем, работы u-boot и Device Tree.

Если устройство работает на Android и задача — лишь запускать Linux-приложения, полная замена системы рискует оставить вас без камеры, модема и аппаратного декодирования видео. Взвесьте, что важнее.

Подготовка: что проверить до начала работы

Первое действие — выяснить точную аппаратную конфигурацию планшета. Нужны: SoC (система на кристалле), объём и тип памяти, контроллер тачскрина, чип Wi-Fi и контроллер дисплея. Эти данные определяют, какие драйверы и какой Device Tree потребуются ядру.

Информацию обычно можно получить из работающего Android: команда cat /proc/cpuinfo покажет процессор, а вывод dmesg и содержимое каталога /sys/firmware/devicetree (если доступен) — параметры оборудования. Для этого потребуется root-доступ или хотя бы adb shell.

Второй критичный пункт — состояние загрузчика. На многих устройствах bootloader заблокирован и не запустит неподписанный образ. Способ разблокировки у каждого производителя свой: у одних это команда через fastboot oem unlock, у других — фирменная утилита или инженерный код. Универсальной инструкции нет, и попытка прошить «чужой» загрузчик — прямой путь к кирпичу.

⚠️ Внимание: разблокировка загрузчика на большинстве устройств стирает все данные и может аннулировать гарантию. Перед любыми действиями сделайте резервную копию важных данных и, по возможности, полный дамп стоковых разделов — это единственный способ откатиться.

☑️ Подготовка к сборке Linux для планшета

Выполнено: 0 / 5

Выбор базы: готовый дистрибутив или сборка с нуля

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

ПодходИнструментыСложностьКогда выбирать
Готовый образpostmarketOS, Armbian, MobianНизкаяМодель поддерживается сообществом
Полуавтоматическая сборкаpmbootstrap, Armbian build frameworkСредняяЕсть частичная поддержка, нужна доработка
Сборка с нуляBuildroot, Yocto, ручная сборка ядраВысокаяНеподдерживаемое железо, специальные требования
Chroot/LXC поверх AndroidLinux Deploy, Termux + prootНизкаяНужны Linux-программы без замены системы

Для первого опыта разумнее всего pmbootstrap — инструмент проекта postmarketOS. Он автоматизирует создание корневой файловой системы, сборку ядра из указанного исходника и упаковку образа, оставляя вам только конфигурацию под конкретное устройство.

Buildroot и Yocto — варианты для тех, кому нужен полный контроль: они собирают систему из исходников целиком, от toolchain до пользовательских пакетов. Это мощно, но первая сборка может занять часы и потребовать десятки гигабайт дискового пространства.

📊 Какой подход к установке Linux на планшет вам ближе?
Готовый образ (postmarketOS/Armbian)
Сборка через pmbootstrap
Полная сборка с нуля (Buildroot/Yocto)
Linux поверх Android (Termux/proot)

Настройка кросс-компиляции на ПК

Собирать систему на самом планшете непрактично — слабый процессор и малый объём памяти растянут компиляцию на сутки. Поэтому используется кросс-компиляция: сборка на x86-компьютере под архитектуру ARM.

На дистрибутивах вроде Debian или Ubuntu toolchain ставится из репозиториев. Для 64-битных ARM-процессоров (aarch64) базовый набор выглядит так:

sudo apt update

sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu \

build-essential bc bison flex libssl-dev libncurses-dev \

device-tree-compiler u-boot-tools git

Для старых 32-битных ARM (armhf) вместо aarch64-linux-gnu используется префикс arm-linux-gnueabihf. Уточните архитектуру своего SoC — большинство планшетов последних лет 64-битные, но планшеты на старых чипах требуют 32-битного toolchain.

Проверить установку можно командой aarch64-linux-gnu-gcc --version. Если компилятор отвечает номером версии — окружение готово. Дополнительно убедитесь, что на диске свободно не менее 30–50 ГБ: исходники ядра, toolchain и результаты сборки занимают заметный объём.

Сборка ядра и Device Tree под конкретный планшет

Ядро — самая ответственная часть. Для планшетов есть два источника: mainline-ядро с kernel.org (чистое, актуальное, но поддержка конкретного железа может быть неполной) и ядро производителя (vendor kernel — со всеми драйверами, но часто устаревшее и с закрытыми вставками).

Общий порядок сборки mainline-ядра под aarch64:

git clone --depth 1 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

cd linux

export ARCH=arm64

export CROSS_COMPILE=aarch64-linux-gnu-

make defconfig

make menuconfig # включить нужные драйверы

make -j$(nproc)

В menuconfig вам нужно включить драйверы под оборудование планшета: контроллер дисплея, тачскрин, регуляторы питания, Wi-Fi-чип. Именно здесь пригодится информация, собранная на этапе подготовки. Без драйвера дисплея вы получите чёрный экран даже при полностью рабочей системе — диагностировать это помогает вывод логов ядра через UART (если на плате есть отладочный разъём).

Отдельная тема — Device Tree Blob (DTB). Это бинарное описание оборудования, которое загрузчик передаёт ядру. Готовый .dts-файл именно для вашей модели может отсутствовать; тогда берут близкий по SoC вариант и правят его: узлы дисплея, тачскрина, кнопок, батареи. Несоответствие DTB реальной плате — самая частая причина «чёрного экрана» и неработающего тачскрина после успешной, казалось бы, прошивки.

⚠️ Внимание: не прошивайте ядро и DTB от другой модели «на пробу». Даже в рамках одного SoC у разных планшетов различаются распиновка, регуляторы питания и тайминги дисплея — ошибка может вывести из строя подсистему питания или экран.

Где искать Device Tree для своей модели

Начните с дерева исходников mainline-ядра (каталог arch/arm64/boot/dts/) — там могут быть DTS для популярных SoC и эталонных плат. Затем проверьте репозитории postmarketOS и Armbian: сообщества часто публикуют DTS для конкретных планшетов. Если устройство работает под Android, оригинальный DTB иногда можно извлечь из раздела boot стоковой прошивки и декомпилировать утилитой dtc — это даст точное описание оборудования вашего экземпляра.

Формирование корневой файловой системы и образа

Ядро без пользовательского окружения бесполезно — нужна rootfs (корневая файловая система) с базовыми утилитами, библиотеками и, при желании, графическим окружением. Путей несколько.

Самый простой — взять готовый минимальный rootfs под aarch64: Debian собирается через debootstrap, Alpine Linux распространяется готовыми архивами, а pmbootstrap делает всё автоматически. Пример создания минимального Debian-окружения:

sudo debootstrap --arch=arm64 --foreign stable rootfs/ http://deb.debian.org/debian

sudo cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/

sudo chroot rootfs /debootstrap/debootstrap --second-stage

Далее внутри chroot устанавливаются нужные пакеты, создаётся пользователь, настраивается сеть и автозапуск. Для планшета имеет смысл выбрать лёгкое окружение рабочего стола, адаптированное под сенсорный ввод — например, Phosh или Plasma Mobile; тяжёлые десктопные среды на слабом железе будут неудобны и медлительны.

Финальный этап — упаковка: rootfs записывается в образ файловой системы (обычно ext4), а ядро и DTB размещаются в загрузочном разделе в формате, который понимает ваш загрузчик. У разных платформ это устроено по-разному: устройства на Allwinner и Rockchip обычно загружаются через U-Boot с карты или eMMC, а планшеты на Qualcomm используют формат Android boot image, который собирается утилитой mkbootimg и прошивается через fastboot flash boot boot.img.

Прошивка, первый запуск и типичные проблемы

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

После прошивки первый запуск редко проходит идеально. Вот типичные симптомы и их вероятные причины:

  • 🖥️ Чёрный экран, но устройство живо — нет драйвера дисплея в ядре или неверный узел дисплея в DTB. Проверьте, отвечает ли устройство по сети или adb.
  • 👆 Система грузится, тачскрин не работает — не включён драйвер контроллера касаний или неверно указан interrupt/pin в Device Tree.
  • 📶 Нет Wi-Fi — для многих чипов нужен отдельный firmware-файл, который не входит в ядро и кладётся в /lib/firmware.
  • 🔄 Устройство уходит в перезагрузку — возможна проблема с конфигурацией питания (PMIC) в DTB или watchdog загрузчика.
  • 🔋 Быстрый разряд и нагрев — не настроено управление частотами и сном; проверьте узлы регуляторов и cpufreq.

Главный инструмент диагностики — лог загрузки. Если есть доступ к UART-консоли, вывод ядра покажет, на каком этапе всё останавливается. Без UART помогает включённый в ядре ramoops или чтение логов после перезагрузки в стоковую систему, если такая возможность предусмотрена.

⚠️ Внимание: если планшет перестал включаться вообще и не входит в режим прошивки, не разбирайте его и не замыкайте контакты наугад. Сначала найдите документацию по восстановлению именно вашей модели — для многих SoC существует безопасный режим загрузки с ПК (например, FEL у Allwinner или maskrom у Rockchip), который работает даже при полностью стёртой флеш-памяти.

Что делать, если тачскрин работает «вверх ногами»

Перевёрнутые или зеркальные оси касаний — известная особенность планшетных панелей: контроллер тачскрина физически ориентирован иначе, чем экран. Исправляется это не пересборкой ядра, а параметрами: либо свойством touchscreen-inverted-x/y в Device Tree, либо правилом libinput в пользовательском окружении (матрица трансформации координат). В Phosh и Plasma Mobile поворот ввода настраивается через конфигурацию compositor'а.

Часто задаваемые вопросы

Можно ли установить Linux на любой планшет с Android?

Теоретически — на любой с разблокируемым загрузчиком и доступными исходниками ядра. Практически всё упирается в поддержку железа: без драйверов дисплея, тачскрина и питания система будет бесполезна. Проверьте списки поддерживаемых устройств postmarketOS и Armbian до начала работы.

Чем сборка Linux отличается от установки Termux?

Termux и proot-окружения работают поверх Android и используют его ядро — это быстро и безопасно, но с ограничениями (нет полного доступа к железу, нет systemd в чистом виде). Собственная сборка заменяет систему целиком: полный контроль, но и все риски прошивки на вас.

Сколько времени занимает сборка ядра?

На современном многоядерном ПК сборка ядра с defconfig обычно занимает от десятков минут до пары часов в зависимости от конфигурации и числа потоков. Полная сборка системы через Buildroot или Yocto в первый раз может идти несколько часов, так как компилируется весь toolchain и все пакеты.

Что делать, если после прошивки планшет не включается?

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

Нужно ли знать программирование для сборки Linux под планшет?

Для сборки готовых конфигураций достаточно уверенной работы с командной строкой. Но портирование на неподдерживаемое устройство потребует чтения и правки Device Tree, а иногда и кода драйверов — здесь без базовых навыков C и понимания устройства ядра не обойтись.