Загрузчик планшета отказывается принимать самосборное ядро, а экран после прошивки остаётся чёрным — типичная ситуация, с которой сталкиваются при первой попытке сборки 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 для планшета
Выбор базы: готовый дистрибутив или сборка с нуля
Существует три основных пути, и они различаются трудоёмкостью и гибкостью. Выбор зависит от того, насколько экзотично ваше железо и насколько глубоко вы готовы погружаться в процесс.
| Подход | Инструменты | Сложность | Когда выбирать |
|---|---|---|---|
| Готовый образ | postmarketOS, Armbian, Mobian | Низкая | Модель поддерживается сообществом |
| Полуавтоматическая сборка | pmbootstrap, Armbian build framework | Средняя | Есть частичная поддержка, нужна доработка |
| Сборка с нуля | Buildroot, Yocto, ручная сборка ядра | Высокая | Неподдерживаемое железо, специальные требования |
| Chroot/LXC поверх Android | Linux Deploy, Termux + proot | Низкая | Нужны Linux-программы без замены системы |
Для первого опыта разумнее всего pmbootstrap — инструмент проекта postmarketOS. Он автоматизирует создание корневой файловой системы, сборку ядра из указанного исходника и упаковку образа, оставляя вам только конфигурацию под конкретное устройство.
Buildroot и Yocto — варианты для тех, кому нужен полный контроль: они собирают систему из исходников целиком, от toolchain до пользовательских пакетов. Это мощно, но первая сборка может занять часы и потребовать десятки гигабайт дискового пространства.
Настройка кросс-компиляции на ПК
Собирать систему на самом планшете непрактично — слабый процессор и малый объём памяти растянут компиляцию на сутки. Поэтому используется кросс-компиляция: сборка на 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 и понимания устройства ядра не обойтись.