#1 Linux on Android - Подготовка и установка linux (ROOT)
Предисловие
По некоторым личным причинам многие люди ограничены во времени, проводимом за компьютером и не могут уделять достаточно времени для практики в программировании.
Если Вы так же, как и я, хотите погрузиться программирование и изучение linux/python/чего-то еще, но не имеете достаточно времени или возможности, то вы вероятно в нужном месте)
Современный человек без мобильного телефона уже редкость. Мощности телефонов сопоставимы уже с полноценными компьютерами и почему бы не использовать эту "силу" в интересном деле?...
Я расскажу как установить linux на смартфон, настроить среду разработки(IDE), как запускать и управлять всем этим делом.
Если вы заинтересовались, то я начинаю...
Установка необходимого ПО
Для начала скажу, что почти все описанное ПО имеется в стандартном Google Play маркете, но согласно политике Гугла, некоторый функционал обрезают как "опасный". Так ли это, я не знаю точно, натыкался на такую информацию в сети.
Я буду использовать открытое програмное обеспечение. Мой способ подойдет и для стандартных телефонов с Google сервисами и Хуавеями без гугла и даже любителям кастомных "чистых" андроидов с root правами (это я).
Первое что мы ставим это маркет для открытого(и не очень) ПО. F-droid - это аналог GPlay и других маркетов приложений.
Идем по ссылке на офф. сайт, качаем и устанавливаем последнюю доступную версию.
После установки, открываем f-droid и дожидаемся обновления репозиториев.
Список доступного ПО порядочный, но нужного нам, нет. Чтоб оно появилось, нужно добавить дополнительный репозиторий, откуда f-droid сможет ставить программы.
Для этого идем сюда и долгим "тапом" на строке с url в шапке копируем ссылку.
Далее идем в f-droid, идем в <Настройки> -> <Репозитории>, жмем "+" вверху и откроется окно с данными добавляемого репозитория.
Если Ваш андроид не очень "борящийся за конфеденциальность" и приложениям доступно чтение буфера обмена, то в открышееся окно f-droid сам поддтянет данные скопированной ранее ссылки.
В противном случае нужно будет заполнить поля вручную данными из ссылки.
Жмем "Добавить" и следим за обновлением репозиториев в шторке.
Теперь нам будет доступен весь список необходимого ПО.
Первым делом через f-droid ставим Termux.
Termux - это расширенный эмулятор терминала Linux в котором уже имеется большое количество програми из коробки и постоянно пополняющийся репозиторий консольных(и не только) утилит.
В нем так же имеется python и в принципе можно прогать напрямую в Termux, но есть ньюансы... Кому интересно, можете поискать информацию об этом в интернете.
Мы же будем использовать в основном в качестве терминала, осуществляя подключение по ssh к целевой системе.
Второй инструмент, который нам понадобиться, это LinuxDeploy. Это небольшая графическая утилита, помогающая установить linux систему в окружение chroot. LINUXDEPLOY НЕОБХОДИМЫ ROOT
ПРАВА НА ТЕЛЕФОНЕ ДЛЯ РАБОТЫ.
Если Ваш телефон имеет рут права, смело продолжайте.
Однако если рута нет, не стоит отчаиваться, есть варианты и без него. У Termux есть своя утилита Proot, устанавливающая линукс внутри своего окружения. Но мои эксперементы показали некую заторможенность такого решения, ввиду дополнительной програмной прослойки. Кто желает использовать этот способ, обратитесь к моей статье или офф. документации на сайте Termux.
Установка Linux
Мы же продолжим и откроем свежеустановленный LinuxDeploy
Первым делом идем в настройки устанавливаемой системы(значек в нижнем правом углу) и выставляем необходимые настройки:
- Дистрибутив - Версия устанавливаемой ОС. Я пробовал разные из предложенных и остановиля на Arch, так как версии доступного ПО в нем наиболее свежие.
- Архитектура - тут у каждой версии ОС разные виды архитектур. При выборе Arch выбирайте aarch64. Подойдет для большенства современных телефонов в 90% случаев.
- Тип и место установки - выбираем место установки по своему желанию(файл, папка, раздел, оперативная память подойдет для тестов конфигурации и системы) Учтите если выбираете установку в файл, то нужно указать размер файла, желательно побольше(от 4 Гб и выше с запасом). Если установка в папку или раздел, нужно на карте памяти создать раздел ext4 и испльзовать его. Установить в папку во внутренней памяти телефона не получиться скорее всего.
- Имя и пароль пользователя - создаст пользователя с указанными данными. Под ним мы будем входить в систему.
- Привилегированные пользователи - Если вы изменили имя "android" стандартного пользователя на свое, то тут так же нужно это изменить. Данные строки добавят вашего пользователя в системные группы.
- Локализация - изменит системную локаль на выбранную. Если поставите ru_RU.UTF-8, то все программы, где доступен перевод будут общаться с вами на русском языке
- Разрешаем запуск SSH сервера, чтоб подключаться к linux извне.
Для начала установки достаточно. Сохраняем конфиг.
Проверяем, что подключены к wifi или скорость мобильного интернета достаточная для скачивания без прерываний.
ВНИМАНИЕ!
Политики управления питанием Android, при выключении питания или включенном режиме энергосбережения может приостонавливать сторонние приложения или ограничивать им доступ к сети, для экономии заряда. По этому при выключении экрана или включении энергосбережения в процессе установки может привести к сбою процесса установки! Чтобы этого избежать в LinuxDeploy есть специальные настройки предотвращающие это. В верхнем левом углу жмем три полоски и уходим в настройки. Проверяем, чтоб функция "Не отключать экран" была активирована. Теперь, пока приложение открыто, оно не даст телефону выключить экран и уйти в спячку.
Можете приступать к установке linux на ваш телефон.
Установка
Идем в пункт "Установка", через три точки в верхнем правом углу, жмем "Ок для начало установки.
По окончании установки, запустите свежеустановленную систему кнопочкой "Старт", внизу экрана. Приложение примонтирует необходимые папки в chroot окружение, запустит ssh сервер о чем сообщит в логе работы на главном экране.
Замечено что LinuxDeploy не идеален и иногда бывают сбои (у меня они есть) в инициализации ssh со статусом "Fail". Не знаю с чем это связано(только догадки), но решаеться простой остановкой и перезапуском окружения.
Все, у нас установлена и запущена полноценная ОС Linux. Можно закрывать LinuxDeploy, запущенная система будет работать в фоне до выключения или перезагрузки телефона.
Вход
Тeперь откроем Termux и выполним команды обновления
pkg update && pkg upgrade
Нажимаем "y" при вопросе ставить ли обновления и ожидаем завершения выполнения. В процессе будут задаваться вопросы, везде жмем <Enter>, для установки программ с конфигами по умолчанию.
Теперь можем залогиниться введя
ssh user@localhost
где <user> меням на тот, что указали в LinuxDeploy.
Терминал запросит подтверждение "отпечатка", пишем "yes".
Готово, Вы в системе
PS. Были случаи, что люди не могли залогиниться в Arch систему, из-за неработающего ssh сервера после установки. Кто сталкнется(что мало вероятно) можете попробовать эту статью.
To be continued...