Bootstrap

Как установить Ubuntu Touch на OnePlus One: adb, fastboot, UBports Installer

Как установить Ubuntu Touch на OnePlus One: adb, fastboot, UBports Installer

Ubuntu Touch на OnePlus One (bacon): полная установка с MX Linux

Oct 18, 2026 · @Richard

Зачем это и что в итоге получится

OnePlus One (кодовое имя bacon) вышел в 2014 году, но до сих пор бодро работает под Ubuntu Touch: звонки, SMS, мобильный интернет, Wi-Fi, Bluetooth, камера и GPS. В этой статье пройдём весь путь — от разблокировки загрузчика до установки пакетов через apt прямо на телефоне. Компьютер — MX Linux, установщик — официальный UBports Installer в формате AppImage.

Почему телефона нет в каталоге. На devices.ubuntu-touch.io по умолчанию включены фильтры, которые прячут устаревшие и брошенные порты. Порт для bacon помечен как неподдерживаемый, поэтому в общем списке его не видно. Страница устройства при этом существует, её проще найти поисковиком: bacon, релиз 16.04 xenial. Можно и в самом каталоге снять галочку «Hide unsupported» в фильтрах.

Какую версию ставить. Для bacon есть две ветки:

ВеткаПоследняя версияСостояние
16.04 xenial, канал stableOTA-25 (апрель 2023)Работают звонки, SMS, MMS, мобильные данные, камера, датчики. Рекомендуется
20.04 focal, каналы rc / develrc 2023-W44, devel-сборкиНе работают камера и датчик приближения, звонки и SMS не проверены

Для повседневного использования выбирайте 16.04 stable — именно его разбираем дальше.

> Внимание: разблокировка загрузчика и установка Ubuntu Touch полностью стирают данные на телефоне. Сохраните всё нужное заранее.

Что понадобится и подготовка MX Linux

Понадобятся:

  • OnePlus One, заряженный хотя бы на 50%;
  • оригинальный USB-кабель с передачей данных (кабель «только для зарядки» не подойдёт);
  • компьютер с MX Linux и доступом в интернет — установщик скачает около 1 ГБ;
  • UBports Installer в формате AppImage: devices.ubuntu-touch.io/installer/appimage.

1. Установите adb и fastboot

Они нужны для разблокировки загрузчика и проверки связи с телефоном. Пакет android-sdk-platform-tools-common добавляет udev-правила, без которых телефон виден только root-пользователю.

☯

Terminal:

⌕

≡

✕
sudo apt update
sudo apt install adb fastboot android-sdk-platform-tools-common libfuse2

libfuse2 нужен для запуска AppImage: без него файл просто не откроется.

2. Добавьте себя в группу plugdev

☯

Terminal:

⌕

≡

✕
sudo usermod -aG plugdev $USER

После этого выйдите из сеанса и войдите снова (или перезагрузите компьютер), чтобы права применились.

3. Сделайте AppImage исполняемым

Перейдите в папку, куда скачали установщик, и выполните:

☯

Terminal:

⌕

≡

✕
cd ~/Загрузки
chmod +x ubports-installer_*.AppImage

Имя файла зависит от версии, поэтому в команде звёздочка. Пока установщик не запускайте — сначала разберёмся с загрузчиком.

Разблокировка загрузчика OnePlus One

У OnePlus One загрузчик разблокируется одной командой fastboot, без кодов и ожидания от производителя. В моём случае он уже был разблокирован, поэтому сначала проверьте статус — возможно, этот шаг можно пропустить.

1. Включите отладку по USB

  1. Откройте «Настройки → О телефоне» и 7 раз нажмите на «Номер сборки» — появятся «Параметры разработчика».
  2. В «Параметрах разработчика» включите «Отладка по USB».
  3. Если там есть пункт «Заводская разблокировка» (OEM unlocking) — включите и его. Если есть «Обновлять recovery Cyanogen» — выключите.
  4. Подключите телефон к компьютеру и подтвердите на экране запрос «Разрешить отладку по USB?».

Проверьте, что компьютер видит телефон:

☯

Terminal:

⌕

≡

✕
adb devices

В ответ должна появиться строка с серийным номером и словом device.

2. Перейдите в режим fastboot

☯

Terminal:

⌕

≡

✕
adb reboot bootloader

Или вручную: выключите телефон, зажмите Громкость вверх + Питание и держите до надписи Fastboot Mode. Проверьте связь:

☯

Terminal:

⌕

≡

✕
fastboot devices

Если вместо серийного номера видно no permissions, значит udev-правила не применились: перезайдите в систему или временно запускайте команды через sudo.

3. Проверьте статус и разблокируйте

☯

Terminal:

⌕

≡

✕
fastboot oem device-info
  • Device unlocked: true — загрузчик уже разблокирован, переходите к установке.
  • Device unlocked: false — выполните разблокировку:

☯

Terminal:

⌕

≡

✕
fastboot oem unlock

Телефон сотрёт все данные и перезагрузится. Дайте ему один раз загрузиться в Android и снова включите отладку по USB — установщику так будет проще подхватить устройство. После этого ещё раз выполните fastboot oem device-info в режиме fastboot и убедитесь, что статус сменился на true.

Установка Ubuntu Touch через UBports Installer

Дальше всю работу делает установщик: сам скачивает образы, прошивает recovery и систему. От вас — выбрать устройство, канал и вовремя нажимать кнопки на телефоне, когда он попросит.

  1. Запустите установщик из папки, куда его скачали: `` ./ubports-installer_*.AppImage ` Если окно не появилось, а в терминале ошибка про sandbox, запустите с ключом --no-sandbox`.
  2. Подключите телефон, загруженный в Android с включённой отладкой по USB. Установщик определит его как OnePlus One (bacon). Если этого не произошло, нажмите «Select device manually» и найдите OnePlus One в списке.
  3. На экране выбора ОС оставьте Ubuntu Touch и задайте параметры: - Channel — канал, в названии которого есть 16.04 и stable (точное имя зависит от версии установщика). Не выбирайте focal/devel, если нужен рабочий телефон. - Wipe Userdata — включите для чистой установки. - Bootstrap — включите: установщик сам прошьёт recovery через fastboot.
  4. Нажмите Install и подтвердите. Установщик попросит перевести телефон в режим fastboot, если не сможет сделать это сам по adb, — зажмите Громкость вверх + Питание.
  5. Дальше телефон перезагрузится в recovery, и начнётся копирование образов. Это занимает 10–20 минут. Не отключайте кабель и не трогайте телефон, пока установщик не сообщит об окончании.
  6. После надписи об успешной установке телефон перезагрузится. Первая загрузка Ubuntu Touch идёт несколько минут — это нормально.

Если установка зависла на шаге «Waiting for device», переподключите кабель в другой USB-порт (лучше USB 2.0 на задней панели) и проверьте adb devices / fastboot devices в отдельном терминале.

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

При первом включении мастер настройки предложит выбрать язык, Wi-Fi и задать код или пароль для разблокировки. Запомните его: этот же пароль терминал спросит при sudo.

Почему apt «из коробки» не работает

Корневая файловая система Ubuntu Touch смонтирована только для чтения. Так система защищена от поломок и спокойно получает обновления по воздуху. Поэтому в стандартном приложении «Терминал» команда sudo apt install упадёт с ошибкой записи.

Как разрешить установку пакетов

Откройте «Терминал» и перемонтируйте корень на запись:

☯

Terminal:

⌕

≡

✕
sudo mount -o remount,rw /

После этого пакеты ставятся как в обычной Ubuntu:

☯

Terminal:

⌕

≡

✕
sudo apt update
sudo apt install mc htop

Когда закончите, верните корень в режим только для чтения:

☯

Terminal:

⌕

≡

✕
sudo mount -o remount,ro /

Режим записи сбрасывается при перезагрузке, так что после каждого рестарта команду remount,rw нужно выполнять заново.

> Про обновления. На поддерживаемых устройствах OTA-обновление перезаписывает корневой раздел, и всё поставленное через apt пропадает. Для bacon это не актуально: ветка 16.04 закончилась на OTA-25, порт заброшен, новых обновлений не будет. Поставленные пакеты останутся, пока вы сами не переустановите систему. Осторожнее только с пакетами, которые заменяют системные библиотеки (libc, Qt, Mir, ядро): после них телефон может не загрузиться.

Доступ по SSH с компьютера

OpenSSH в Ubuntu Touch уже встроен, но по умолчанию сервер пускает только по ключу: вход по паролю отключён. Поэтому первый ключ на телефон удобнее всего передать через adb.

1. Включите режим разработчика на телефоне

«Настройки → О телефоне → Режим разработчика». Переключатель доступен, только если задан код блокировки экрана. После этого с компьютера работает adb shell.

2. Создайте ключ на компьютере (если его ещё нет)

☯

Terminal:

⌕

≡

✕
ssh-keygen -t ed25519

3. Передайте ключ на телефон через adb

☯

Terminal:

⌕

≡

✕
adb push ~/.ssh/id_ed25519.pub /home/phablet/key.pub
adb shell

Дальше команды выполняются уже на телефоне:

☯

Terminal:

⌕

≡

✕
mkdir -p ~/.ssh
cat ~/key.pub >> ~/.ssh/authorized_keys
rm ~/key.pub
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
sudo android-gadget-service enable ssh
exit

4. Подключитесь по Wi-Fi

IP телефона смотрите в «Настройки → Wi-Fi → стрелка у сети» или командой ip addr в терминале.

☯

Terminal:

⌕

≡

✕
ssh phablet@192.168.0.24

Пароль не спросят: вход идёт по ключу. Если появилось Permission denied (publickey), проверьте права на ~/.ssh и authorized_keys — при более открытых правах sshd ключ игнорирует.

5. Автозапуск SSH после перезагрузки

После перезагрузки телефона SSH отвечает Connection refused, и приходится снова включать режим разработчика и через adb shell выполнять android-gadget-service enable ssh. Разберёмся, почему так, и сделаем нормальный автозапуск.

Почему SSH не стартует сам. Посмотрите файл переопределения службы:

☯

Terminal:

⌕

≡

✕
cat /etc/init/ssh.override

В нём две строки:

☯

Terminal:

⌕

≡

✕
manual
exec /usr/sbin/sshd -D -o PasswordAuthentication=no

manual говорит upstart не запускать службу при загрузке. Команда android-gadget-service enable ssh запускает sshd только до перезагрузки, а manual оставляет на месте.

Почему не работает sed -i. Файл ssh.override (как и папка /etc/ssh) указан в /etc/system-image/writable-paths. Это значит, что при загрузке его подставляют с постоянного раздела поверх системного образа: это отдельная точка монтирования. sed -i пишет изменения во временный файл и переименовывает его, поэтому падает с ошибкой Read-only file system, а после remount,rw — с ошибкой Device or resource busy. Файл нужно перезаписывать на месте, remount,rw для этого не нужен.

Шаг 1. Убираем manual

Через adb shell или пока SSH ещё работает:

☯

Terminal:

⌕

≡

✕
sudo bash
sed '/^manual$/d' /etc/init/ssh.override > /tmp/ssh.override
cat /tmp/ssh.override > /etc/init/ssh.override
cat /etc/init/ssh.override

В файле должна остаться только строка exec /usr/sbin/sshd -D -o PasswordAuthentication=no.

Шаг 2. Добавляем задачу автозапуска

На OnePlus One одного шага 1 не хватило: после перезагрузки status ssh показывал stop/waiting, хотя manual в файле уже не было. Судя по всему, upstart читает настройки служб раньше, чем подставляется файл с постоянного раздела, и видит исходный ssh.override из образа, где manual остался. При этом ручная команда start ssh работает всегда, manual она не блокирует. Поэтому добавляем свою задачу, которая выполнит её при загрузке:

☯

Terminal:

⌕

≡

✕
sudo bash
mount -o remount,rw /
cat > /etc/init/ssh-autostart.conf << 'EOF'
description "Start ssh at boot"
start on runlevel [2345]
task
exec /sbin/start ssh
EOF
mount -o remount,ro /
reboot

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

Шаг 3. Проверяем

После перезагрузки, не включая режим разработчика, подключитесь с компьютера:

☯

Terminal:

⌕

≡

✕
ssh phablet@192.168.0.24

На телефоне sudo status ssh должен показывать ssh start/running. Режим разработчика и adb теперь нужны только для экстренного доступа.

> Учтите при переустановке. Правка ssh.override, ключи в ~/.ssh и настройки в /etc/ssh лежат на постоянном разделе и переживут переустановку без Wipe Userdata. А ssh-autostart.conf находится в системном образе: после переустановки шаг 2 нужно повторить.

6. Вход по паролю (если очень нужен)

Правка PasswordAuthentication yes в /etc/ssh/sshd_config не работает: во второй строке ssh.override sshd запускается с ключом -o PasswordAuthentication=no, а параметр из строки запуска важнее файла конфигурации. Чтобы включить пароль, уберите этот ключ тем же способом, перезаписью на месте:

☯

Terminal:

⌕

≡

✕
sudo bash
sed 's/ -o PasswordAuthentication=no//' /etc/init/ssh.override > /tmp/ssh.override
cat /tmp/ssh.override > /etc/init/ssh.override
stop ssh; start ssh
Затем убедитесь, что в /etc/ssh/sshd_config стоит PasswordAuthentication yes (без опечаток в названии), и проверьте, что применилось: sshd -T | grep -i passwordauth. Перезапуск службы безопаснее делать через adb shell, чтобы не потерять доступ.

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

Не хватает места: «You don't have enough free space»

Корень / в Ubuntu Touch — это небольшой системный образ, заполненный почти целиком. Всё свободное место телефона (на 64-гигабайтной модели — десятки гигабайт) лежит в разделе пользователя /home/phablet. Посмотреть расклад:

☯

Terminal:

⌕

≡

✕
df -h / /home

Отсюда правило: мелкие утилиты ставим в корень через apt, крупные программы — в контейнер Libertine в домашней папке.

Мелкие пакеты: очистить кэш и вынести загрузку в /home

Сначала уберите старые скачанные пакеты:

☯

Terminal:

⌕

≡

✕
sudo apt clean
sudo apt autoremove

Затем скачивайте архивы не в /var/cache/apt/archives, а в домашнюю папку:

☯

Terminal:

⌕

≡

✕
mkdir -p /home/phablet/apt-archives/partial
sudo apt -o Dir::Cache::Archives=/home/phablet/apt-archives install mc htop

Так освобождается место под загрузку, но распакованный пакет всё равно ляжет в корень. Для Firefox (212 МБ после установки) этого не хватит.

Крупные программы: контейнер Libertine

Libertine — это отдельный Ubuntu 16.04 внутри ~/.cache/libertine-container, то есть на большом разделе. Внутри работает обычный apt, а установленные графические программы появляются в меню приложений. Команды выполняйте от пользователя phablet, а не от root:

☯

Terminal:

⌕

≡

✕
libertine-container-manager create -i xenial -n "Xenial"
libertine-container-manager install-package -i xenial -p firefox

Создание контейнера занимает 10–20 минут и скачивает несколько сотен мегабайт. Корень трогать не нужно, remount,rw для этого не требуется. То же можно сделать без терминала, в приложении Libertine (в 16.04 оно обычно предустановлено, иначе есть в OpenStore).

Чего Libertine не умеет: запускать системные службы. Демоны вроде nginx или ssh в нём работать не будут, их ставят в корень. Для простого веб-сёрфинга есть и встроенный браузер Morph — он легче Firefox и лучше адаптирован под сенсорный экран.

Если корень уже заполнен (например, после apt upgrade)

Типичная ошибка новичка — выполнить apt update && apt upgrade, как на обычной Ubuntu. Апгрейд докачивает обновления системных пакетов, и корень на 2 ГБ заполняется почти до нуля. Телефон начинает подвисать, SSH отвечает с задержками. На моём OnePlus One после этого в корне оставалось 27 МБ.

Корень — это файл-образ, смонтированный через loop-устройство (/dev/loop0), поэтому увеличить его просто так нельзя. Зато можно вынести на большой раздел служебные данные apt: списки пакетов (/var/lib/apt/lists) и кэш (/var/cache/apt). Вместе они занимают около 200 МБ.

☯

Terminal:

⌕

≡

✕
sudo mount -o remount,rw /
sudo apt clean
sudo mkdir -p /home/phablet/.apt-root
sudo mv /var/lib/apt/lists /home/phablet/.apt-root/lists
sudo ln -s /home/phablet/.apt-root/lists /var/lib/apt/lists
sudo rm -f /var/cache/apt/*.bin
sudo mv /var/cache/apt /home/phablet/.apt-root/cache
sudo ln -s /home/phablet/.apt-root/cache /var/cache/apt
sudo apt update
df -h /

Результат на моём телефоне: свободное место выросло с 27 МБ до 235 МБ, apt работает как раньше. Теперь скачанные пакеты и списки репозиториев хранятся в /home, а в корень попадают только сами установленные файлы.

На что обратить внимание:

  • Не трогайте /var/lib/lxc/android (около 120 МБ). Это Android-контейнер, через который система работает с модемом, графикой, камерой и датчиками. Без него телефон не загрузится.
  • Не запускайте apt upgrade. Ставьте только нужные пакеты через apt install: обновления из репозиториев Ubuntu могут конфликтовать с пакетами UBports.
  • Предупреждение No sandbox user '_apt' безвредно. В Ubuntu Touch нет служебного пользователя _apt, и apt просто качает пакеты от root.
  • Если система после апгрейда работает со сбоями, запустите UBports Installer ещё раз с тем же каналом и выключенной опцией Wipe Userdata. Перезапишется только системный образ, а домашняя папка, контейнеры Libertine и SSH-ключи останутся.

Libertine: как в Ubuntu Touch задумано ставить обычные программы

Libertine — это контейнер с отдельной полноценной Ubuntu внутри вашей домашней папки. В нём работает обычный apt, туда ставятся привычные deb-пакеты для настольного Linux, и их окна открываются прямо на экране телефона. Основная система при этом не меняется.

Почему корень закрыт для записи

Разработчики Ubuntu Touch сознательно сделали систему неизменяемой. Корень — это готовый образ, который при OTA-обновлении заменяется целиком. Так обновление не может сломаться посередине, а пользователь не испортит систему случайным пакетом. Программы при этом ставятся «сбоку», в трёх местах:

СпособЧто ставитьГде хранитсяПереживает OTA
OpenStore (click-пакеты)Приложения, сделанные под Ubuntu Touch и сенсорный экран/home/phablet, в песочнице AppArmorДа
LibertineНастольные программы из репозиториев Ubuntu 16.04~/.cache/libertine-container/Да
apt в корень после remount,rwСистемные утилиты и службы: ssh, nginx, cron-задачи, драйверыСистемный образ /Нет, затирается (для bacon обновлений уже нет)

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

Как устроен контейнер

  • Внутри лежит отдельная Ubuntu 16.04 (xenial) для armhf со своим /usr, /etc и apt.
  • Он хранится в ~/.cache/libertine-container/<имя>/rootfs, то есть на большом разделе пользователя.
  • Папки «Документы», «Загрузки», «Музыка», «Изображения» и «Видео» общие с телефоном: файл, скачанный в Firefox из контейнера, виден в файловом менеджере.
  • Графические программы запускаются через X-сервер поверх оболочки телефона и появляются в общем списке приложений.
  • Контейнеров может быть несколько, например отдельный для экспериментов.

Работа через приложение Libertine на телефоне

  1. Откройте приложение Libertine и нажмите +, чтобы создать контейнер. Выберите Ubuntu Xenial и задайте имя.
  2. Дождитесь окончания создания: 10–20 минут, нужен Wi-Fi и около 500 МБ свободного места в /home.
  3. Откройте контейнер, нажмите + и выберите Enter package name (ввести имя пакета) или поиск по репозиторию.
  4. Введите, например, firefox и подтвердите. Прогресс установки виден на экране контейнера.
  5. Готовая программа появится в списке приложений телефона. Если её не видно, потяните список вниз или перезагрузите телефон.
  6. Удалить пакет можно там же: долгое нажатие на пакет в списке контейнера.

Работа через терминал

Все команды — от пользователя phablet, без sudo:

☯

Terminal:

⌕

≡

✕
# список контейнеров
libertine-container-manager list

# создать контейнер
libertine-container-manager create -i xenial -n "Xenial"

# найти, поставить, удалить пакет
libertine-container-manager search-cache -i xenial -n firefox
libertine-container-manager install-package -i xenial -p firefox
libertine-container-manager remove-package -i xenial -p firefox

# обновить все пакеты в контейнере
libertine-container-manager update -i xenial

# выполнить любую команду внутри контейнера
libertine-container-manager exec -i xenial -c "apt-get install -y language-pack-ru"

# запустить программу из терминала
libertine-launch -i xenial firefox

# удалить контейнер целиком
libertine-container-manager destroy -i xenial

Первым делом после создания стоит поставить русские шрифты и локаль, иначе часть интерфейсов будет на английском или с квадратиками вместо букв: language-pack-ru, fonts-dejavu, fonts-noto.

Что можно поставить в Libertine

  • Браузеры и почта: Firefox, Thunderbird.
  • Офис: LibreOffice (Writer, Calc), просмотрщики PDF.
  • Графика: GIMP, Inkscape.
  • Разработка: Geany, Mousepad, Git, компиляторы, Python с библиотеками.
  • Медиа: VLC, Audacity.
  • Консольные утилиты — через exec, если не хочется трогать корень.

Чего Libertine не умеет

  • Системные службы. sshd, nginx, cron и другие демоны внутри контейнера не стартуют как службы. Их ставят в корень.
  • Docker и всё, что требует ядра. Ограничение то же, что у всей системы: ядро 3.4.
  • Удобство на сенсорном экране. Настольные программы рассчитаны на мышь, и экранная клавиатура в них работает не всегда. С Bluetooth-клавиатурой и мышью они заметно удобнее.
  • Быстрая работа тяжёлых программ. LibreOffice и GIMP запускаются долго, на 2–3 ГБ памяти это нормально.
  • Свежие версии. Репозитории xenial заморожены, поэтому версии программ там старые.

Что можно сделать с OnePlus One на Ubuntu Touch

По сути, это 4-ядерный ARM-компьютер с 3 ГБ памяти, экраном, батареей-ИБП, модемом, GPS и камерой, на котором стоит Ubuntu 16.04 с apt и SSH. Главное ограничение — ядро 3.4 и 32-битный процессор: Docker, Waydroid и современные контейнеры здесь не запустятся.

СценарийКак сделатьОграничения
Второй телефон без GoogleЗвонки, SMS, мобильный интернет, GPS работают из коробкиНет VoLTE и NFC, мало приложений в OpenStore
Мини-сервер для скриптовSSH по ключу, Python 3 в корне, свои скрипты в /home/phabletТолько armv7, без Docker; держать на зарядке
Telegram-бот, парсер, мониторинг сайтовPython-скрипт + автозапуск через upstart-задачу в ~/.config/upstart/Wi-Fi может засыпать при выключенном экране — проверяйте
Веб-сервер в домашней сетиapt install lighttpd или python3 -m http.serverМало места в корне, тяжёлые стеки не встанут
Файловое хранилище и синхронизацияSFTP и rsync поверх SSH; Syncthing — готовый бинарник armv7 в /homeСкорость Wi-Fi 802.11ac первого поколения
SMS-шлюзОтправка и чтение SMS скриптом через oFono по D-BusНужно разобраться с API oFono
GPS-трекер или логгерЧтение координат из location-service, запись в файл, отправка на серверПервый фикс долгий: нет A-GPS
Карманный терминал администратораssh, nmap, mtr, iperf3, tcpdump из aptМелкие пакеты — в корень, см. раздел о месте
Панель умного домаБраузер Morph в полноэкранном режиме с дашбордом Home AssistantЭкран постоянно включён — следите за нагревом
Мини-ПК с клавиатуройBluetooth-клавиатура и мышь + беспроводной вывод на монитор (Miracast) + десктоп-программы из LibertineПроизводительность уровня 2014 года
Медиаплеер и музыкальный центрПлеер, MPD или Bluetooth-колонка—
Учёба и разработка под Ubuntu TouchLinux в кармане; сборка приложений через Clickable на ПКПлатформа 16.04 устарела
Android-приложенияAnbox (устаревший, но для bacon на 16.04 поддержан)Работает медленно и не со всеми приложениями

Совет для режима «сервер». Литий-ионный аккумулятор при постоянной зарядке со временем вздувается. Если телефон будет круглосуточно на кабеле, держите его на открытом месте, без чехла, и периодически осматривайте корпус.

Если нужен именно Docker. На этом железе есть другой путь — postmarketOS на основном ядре Linux, где контейнеры работают. Ubuntu Touch для этого не подходит из-за старого ядра.

Что работает, частые проблемы и итог

На ветке 16.04 OTA-25, по данным страницы устройства, работают звонки, SMS и MMS, мобильные данные, Wi-Fi, Bluetooth, GPS, обе камеры, вспышка, датчики, вибрация, MTP и ADB. Не работают NFC и VoLTE, точка доступа включается нестабильно. Waydroid на bacon не запустится из-за старого ядра. Порт больше не развивается, так что исправлений ждать не стоит.

ПроблемаЧто сделать
fastboot devices пишет no permissionsПерезайти в систему после usermod -aG plugdev, проверить пакет android-sdk-platform-tools-common, в крайнем случае — sudo fastboot …
AppImage не запускаетсяУстановить libfuse2, проверить chmod +x, попробовать ключ --no-sandbox
Установщик не видит телефонДругой кабель и порт USB 2.0, подтвердить запрос отладки на экране телефона
Установка зависла на «Waiting for device»Вручную перевести телефон в fastboot: Громкость вверх(и или вниз) + Питание
apt install ругается на read-onlyВыполнить sudo mount -o remount,rw / (сбрасывается после перезагрузки)

В итоге за полчаса старый OnePlus One превращается в рабочий Linux-смартфон с настоящим терминалом и apt. Если что-то пошло не так, помогут форум UBports по OnePlus One и Telegram-чат помощи с установкой.

Источники

p.s.

Почему devel не поможет. Тут сразу два ограничения:

  • Процессор 32-битный на уровне железа. В Snapdragon 801 стоят ядра Krait 400 с архитектурой ARMv7. Это свойство чипа, программно его не изменить. На странице устройства так и указано: архитектура arm32, причём и для 16.04, и для 20.04.
  • Ядро то же самое, старое. Канал devel — это ветка 20.04 focal на Halium 9 с ядром 3.4.113. Docker нужно ядро новее, с нормальными cgroups и namespaces. К тому же на focal у bacon не работает камера, а звонки не проверены, то есть вы ещё и потеряете в функциях.

Что с Nura. Вы правильно связали: на своей конференции 27 сентября команда объявила, что postmarketOS теперь называется Nura, а сайт переехал на nura.eco. В некоторых частях системы пока ещё встречается старое название, его постепенно заменяют. Пакеты для bacon по-прежнему собираются под armv7.

Ключевое отличие от Ubuntu Touch — возможность запустить телефон на основном (mainline) ядре Linux. В статье на Хабре, которую вы нашли, прямо советуют выбирать mainline-ядро, если нужны современные возможности ядра — контейнеризация и cgroups. С таким ядром Docker работает и на 32-битном ARM. Система будет так же 32-битной, но для Docker это не проблема.

Оговорки, которые стоит учесть заранее:

  • Образы только под linux/arm/v7. Многие популярные образы (nginx, alpine, postgres, redis) такую сборку имеют, но часть проектов её уже бросила. Перед установкой проверяйте нужные образы на Docker Hub, вкладка с архитектурами.
  • 2–3 ГБ памяти. Нескольких лёгких контейнеров хватит, тяжёлый стек — нет.
  • На mainline-ядре часть железа может не работать (модем, камера, звук). Для сервера, который работает по Wi-Fi или через USB-сеть, это обычно неважно. Актуальное состояние смотрите на странице устройства в вики Nura перед установкой.
  • Ubuntu Touch при этом сотрётся полностью, совместить две системы не получится.

Sources:

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.