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

Как и старые настольные компьютеры и ноутбуки, существует множество способов использовать старый смартфон. Если камера работает хорошо, вы можете превратить его в... временная веб-камера Для вашего компьютера или даже Полная система мониторинга с использованием сервера FrigateКроме того, вы можете использовать сенсорный экран для создания надёжной панели Home Assistant. Или, если вы так же, как и я, стремитесь к продуктивности, вы можете даже Используйте его повторно и преобразуйте в потоковую презентацию..

Моя попытка превратить старый Android-телефон в Linux-сервер завершилась тем, что мне пришлось перепробовать несколько дистрибутивов Linux: изучение возможностей мобильных серверов.

Но как насчёт превращения вашего Android-телефона в домашний сервер, способный конкурировать с такими устройствами, как Raspberry Pi? Это натолкнуло меня на другую идею, и я решил попробовать этот проект. В конце концов, я уже пробовал запускать компьютерные игры на своём смартфоне, так что запуск контейнеров Linux не должен быть слишком сложным, верно? Ну, не совсем. Из-за ограничений, связанных с отсутствием прав root, я мог запустить на телефоне лишь несколько дистрибутивов, и в итоге у меня получилась более удобная конфигурация для переключения между дистрибутивами, чем запуск пакетных сервисов.

Выберите соответствующие пакеты для этой настройки.

В конце концов я решил настроить Temux + proot-distro.

Установка DokuWiki в корневой дистрибутив

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

К сожалению, прямой метод запуска контейнеров требует наличия root-доступа к машине, а в некоторых случаях даже наличия пользовательских модулей ядра. Это ограничение заставило меня искать альтернативу. Запуск виртуальных машин, даже работающих через chroot, на машинах без root-доступа вызывал похожую проблему.

Это привело меня к альтернативному решению — Termux, мощному эмулятору терминала, который я часто использую в своих проектах для Android. Немного поискав на GitHub, я наткнулся на proot-distro, который показался мне идеальным пакетом для этого эксперимента. По сути, он создаёт среду proot (вариант chroot в пользовательском пространстве), где я могу экспериментировать с дистрибутивами Linux по своему усмотрению. Я и представить себе не мог, что вскоре это приведёт меня к путешествию между дистрибутивами.

Работа с дистрибутивами Linux на Android

proot-distro сначала работал нормально.

Установка Arch Linux с помощью proot-distro на Termux

Завершив все приготовления, я перешёл на следующий этап. Выполнив команду `pkg install proot-distro` в Termux, я подождал несколько минут, пока будут загружены необходимые пакеты. Затем я выполнил команду `proot-distro install debian`, чтобы начать настройку среды Debian на смартфоне. После завершения установки я выполнил команду `proot-distro login debian`, чтобы войти в Debian, и, конечно же, знаменитая операционная система Debian была запущена на моём телефоне.

Поскольку я не мог запустить ни один пакет с привилегиями sudo, я начал с обновления пакетов с помощью обычных команд `apt update` и `apt upgrade`. Затем я попытался установить несколько обычных пакетов, включая DokuWiki. Но большинство пакетов сразу же перестали работать. Я также попытался установить Docker, но возникли ошибки. Не испугавшись этих неудачных попыток, я обратил внимание на Podman, который тоже отказался запускаться. Оглядываясь назад, я понимаю, что это было совершенно логично, поскольку мне пришлось внести некоторые изменения в ядро, чтобы заставить среды выполнения контейнеров работать на моём телефоне.

Но мне не удалось запустить корневые приложения.

Настройка Arch Linux с использованием proot-distro на Termux

Немного побродив по GitHub, я нашёл репозиторий proot-apps. Как вы, возможно, уже догадались по названию, это набор приложений от креативных разработчиков LinuxServer, предназначенных для работы в среде proot. Поэтому я начал устанавливать некоторые из этих приложений в свою виртуальную машину Debian. К сожалению, приложения, разработанные для типичных контейнеров Docker, таких как Nextcloud, в моей системе не работали. Интересно, что в коде ошибки упоминался QEMU (точнее, его отсутствие), который приложению вообще не нужен.

Однако я подумал, что могу попробовать запустить пакеты в другом дистрибутиве. В Fedora лучше поддержка Podman, поэтому я подумал, что могу попробовать запустить среду выполнения контейнера в другом дистрибутиве, но это тоже не сработало. Затем я попробовал запустить proot-apps в Arch Linux, но некоторые другие дистрибутивы вообще отказались запускаться. Именно последний момент меня больше всего беспокоил…

Перенесено в репозиторий Termux-Pentesting-Distro

Но к тому времени я уже потерял цель первоначального проекта.

Хотя дистрибутивы Debian, Fedora и Arch «работали», я обнаружил, что не могу установить многие приложения без проблем с пакетами, в том числе и такую ​​простую программу, как neofetch. Я решил попробовать ещё раз, найдя репозиторий Termux-Pentesting-Distro на GitHub. Что же в итоге? Оказалось, что этот репозиторий не только поддерживает множество отличных дистрибутивов, но и запускает множество приложений. Хотя я не мог запустить ни один оконный менеджер или окружение рабочего стола, мне удалось установить множество дистрибутивов на свой телефон.

Аналогичным образом я смог установить Emacs, Neovim и другие необходимые приложения Linux из репозиториев нового дистрибутива. В чём проблема? К тому времени я полностью отклонился от своей изначальной цели — запуска контейнеров — и полностью переключился на эксперименты с потрясающими дистрибутивами. В своё оправдание могу сказать, что мой мозг не мог не радоваться количеству дистрибутивов Linux, особенно учитывая, что некоторые из них имели совершенно новые названия. Более того, каждая версия Linux изначально поставлялась с Neofetch, и если есть что-то, что я люблю больше, чем переключение между дистрибутивами, так это потрясающий виджет Neofetch.

Пока что я доволен этим странным переключением между дистрибутивами, особенно учитывая, что я так и не нашёл способа запустить базовые контейнеры на своём телефоне. Скоро планирую получить root-доступ на втором, чуть более старом телефоне, чтобы снова попробовать с контейнерами Docker и Podman, как и все остальные.

Комментарии закрыты.