Linux from smartphone android

Устанавливаем рабочий стол Linux на Android

Привет, Хабр! Представляю вашему вниманию перевод статьи из журнала APC.

В данной статье рассматривается полная установка операционной среды Linux вместе с графическим окружением рабочего стола на Android-устройствах.

Одной из ключевых технологий, которую применяют многие из систем Linux на Android, является pRoot. Это реализация утилиты chroot в пользовательском пространстве, которая пользуется большой популярностью в настольных системах и серверах Linux. Однако для инструмента chroot нужны полномочия пользователя root, которые не доступны по умолчанию на Android. pRoot же даёт это преимущество за счёт установления привязки к директории.

Терминалы Linux

Не во всех эмуляторах терминалов Linux для Android имеется набор утилит BusyBox, в отличие, например, от Termux. Причиной тому является то обстоятельство, что весь смысл подобных систем состоит в обеспечении «полной» установки всех компонентов ОС, в то время как BusyBox предназначена для того, чтобы свести всё множество общих утилит в один двоичный файл. В системах, где не установлена BusyBox, используется начальная загрузка для Linux, содержащая полные версии программ.
«

Задайте логин и пароль для дистрибутива и VNC в UserLAnd.

Однако в этих системах присутствует дополнительная технология, которая не требует наличия Termux. В этой статье будет рассматриваться полнокомплектная инсталляция дистрибутива Linux, а также рабочего стола GUI. Но прежде необходимо выбрать способ установки графической системы.

Linux на Android

Как было упомянуто ранее, программные пакеты, которые мы будем устанавливать, запускаются в пользовательском пространстве.

Это означает, что у них есть только разрешение для текущего пользователя, который в случае ОС Android всегда является обычным пользователем, т.е. не имеет полномочий администратора. Однако для того, чтобы установить рабочий стол Linux, нам понадобится установить графический сервер, например, X или Wayland. Если бы мы делали это в операционной среде Linux, то он запустился бы с полномочиями обычного пользователя, не имея при этом доступа к графическому уровню ОС Android. И потому мы должны смотреть в сторону установки сервера «стандартным» андроидовским способом, чтобы у него был доступ к железу и способность поддерживать графическую среду.

Умные ребята из сообщества разработчиков предложили два решения этой проблемы. Первое заключается в том, чтобы использовать собственные версии Linux (как правило, это сервер X). После того, как те начнут работу в фоновом режиме, у вас появится доступ к данному фоновому процессу через VNC. Если же на вашем устройстве Android уже имеется программа VNC viewer для удаленного взаимодействия с другими компьютерами, просто используйте её, чтобы получить удалённый доступ к локальному узлу. Это простое в исполнении решение, однако некоторые пользователи сообщают о том, испытывают затруднения с работой программы.

Второй вариант – установить сервер, предназначенный специально для устройств на базе Android. Некоторые серверы доступны на Play Store в платной и бесплатной версиях. Перед установкой необходимо проверить, поддерживается ли выбранный вариант или по крайней мере работает ли с тем программным пакетом Linuх для Android, который вы собираетесь установить. Мы отдали предпочтение системе X-Server, и потому использовали программный пакет XServer XSDL (ссылка). В статье будет описываться процесс установки данного сервера, хотя он может немного отличаться, если у вас установлено другое приложение или же используете VNC.

Выбор системы

Как в случае с X-Servers, в Play Store существует несколько приложений по установке дистрибутивов системы Linux. Здесь также, как и с Termux, мы сконцентрируемся на вариантах, которые не требуют полномочий суперпользователя, что в свою очередь предполагает определённую степень риска. Эти приложения предоставляют весь необходимый для большинства пользователей функционал, сохраняя при этом ваши данные в безопасности. Ниже представлены примеры таких приложений в Play Store:

UserLAnd: весьма популярный выбор пользователей. Приложение включает в себя набор распространенных дистрибутивов: Debian, Ubuntu, Arch и Kali. Любопытно, что несмотря на отсутствие вариантов на базе RPM, UserLAnd включает Alpine Linux для устройств с меньшим объёмом памяти.

AnLinux: данное приложение помогает в установке одного или нескольких списков дистрибутивов большого объёма и может включать в себя Ubuntu/Debian, Fedora/ CentOS, openSUSE и даже Kali. Там также можно выбрать низкозатратные десктопные варианты: Xfce4, MATE, LXQtand LXDE. Для работы требуется установленный Termux, а операционная система Android должна быть от 5.0 и выше.

Andronix очень похож на AnLinux. Возможно, имеет лучший дизайн, чем предыдущее приложение, однако поддерживает меньшее число дистрибутивов.

GNURoot WheezyX: этот проект стартовал как вариант Linux на Android и разрабатывался для программ c открытым исходным кодом. Как подсказывает название, он фокусируется на дистрибутивах Debian, в то время как ‘X‘ на конце означает, что приложение ориентировано на графический рабочий стол. И несмотря на то, что создатели остановили разработку проекта ради UserLAnd, GNURoot WheezyX всё ещё доступен на Play Store, если у кого-то есть в нём нужда.

Читайте также:  Oziexplorer для андроид полная версия

Авторы данной статьи будут использовать приложение UserLAnd для установки рабочего стола Linux на Android, и тому есть несколько причин. Во-первых, приложение имеет открытый исходный код (хотя AnLinux тоже его имеет). Во-вторых, оно предлагает хороший набор дистрибутивов (хотя в него и не включены Fedora или CentOS), также с помощью него можно установить дистрибутивы с минимальными системными требованиями, которые не займут много места в памяти смартфона. Но главное преимущество UserLAnd в том, что оно имеет инструменты поддержки для установки отдельных приложений вместо целых дистрибутивов. Мы выясним, что конкретно это значит для нас, позже. А сейчас давайте установим UserLAnd на ваше устройство.

Приложение UserLAnd

Скачайте приложение из Google Play или F-Droid (ссылка) на ОС Android. Оно устанавливается как и любое другое приложение – ничего особенного здесь делать не надо. После этого запустите его из панели приложений.

Первое, что вы увидите там – это список дистрибутивов. В конце можно найти пару десктопных вариантов: LXDE and Xfce4. Замыкает его приложение Firefox, пара игр и несколько офисных утилит: GIMP, Inkscape и LibreOffice. Это вкладка называется «Приложения». Предназначена она для установки приложений.

После того, как вы установите что-нибудь, на вкладке «Session» появится соответствующая запись об этом. Здесь можно начать или остановить текущую сессию, а также посмотреть запущенные процессы.

“Filesystems” – последняя вкладка, которая показывает уже завершённые установки. Стоит отметить, что после того, как вы удалите любой элемент из Filesystems, сведения о нём будут стёрты из вкладки Session, что, однако, не доказывает обратного. Это значит, что вы сможете создать новую сессию на базе текущей файловой системы. Понять, как работает эта взаимосвязь, намного проще, если увидеть это в действии, и потому мы начнём с установки приложения в системной среде UserLAnd.

Перед тем, как установить дистрибутив на смартфоне, необходимо предоставить UserLAnd доступ к хранилищу.

Дистрибутивы в UserLAnd

Выберите один из дистрибутивов, расположенных на экране Apps, для установки на устройство. В качестве примера мы будем использовать Ubuntu. При нажатии на значок появляется диалоговое окно, где спрашивается имя пользователя, пароль и пароль VNC. Затем выберите способ, посредством которого вы получите доступ к дистрибутиву. Начнётся загрузка, в ходе которой будет задействован базовый образ выбранного дистрибутива. Распаковка файла будет осуществляться в директории UserLAnd.

По окончании загрузки вернитесь к эмулятору терминала xterm. Можете ввести служебную команду, чтобы узнать, какую версию Linux вы установили:

Следующий шаг заключается в том, чтобы инсталлировать рабочий стол, используя служебную команду Ubuntu:

Последний шаг состоит в том, чтобы убедиться, что ваше новое окружение рабочего стола готово к запуску. Чтобы сделать это, нужно отредактировать файл .xinitrcfile, в котором в настоящее время имеется всего одна строка /usr/ bin/twm. Её необходимо изменить на /usr/bin/startlxde. Теперь выйдите из сессии XSDL (убедитесь, что нажали кнопку STOP в области уведомлений), удерживайте кнопку «Ubuntu listing» на вкладке Sessions, затем нажмите «Stop Sessions» и повторно запустите сессии. Через несколько секунд должна появиться системная среда LXDE. В ней можно делать то же самое, что и на обычном рабочем столе. Она просто может быть немного меньше и работать чуть медленнее: чтобы нажать кнопку на устройстве, вам придётся ждать дольше, чем если бы вы это делали с клавиатурой и мышью. Давайте посмотрим, как конкретно мы можем усовершенствовать системную среду Linux на смартфоне.

Краткое руководство к UserLAnd

При внимательном изучении содержимого рабочего стола можно обнаружить точное воссоздание дексктопной версии. Если вы используете UserLAnd на устройстве с клавиатурой и мышью (подключённых через Bluetooth-соединение или каким-либо иным образом), вам будет легко приспособиться к использованию системной среды Linux в таком формате. За исключением небольшого отставания, которое происходит за счёт того, что курсор X-Windows синхронизируется с курсором устройства на Android, всё работает плавно.

Возможно, первое, что вы захотите сделать, это отрегулировать установленную по умолчанию систему шрифтов, поскольку размер шрифтов рабочего стола слишком велик для экрана телефона. Перейдите в главное меню, затем выберите «Настройки» → «Настройка внешнего вида и виджетов» → «Виджет». Здесь можно поменять размер шрифта по умолчанию на более подходящий вариант для вашего телефона.

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

Дистрибутивы в приложении представлены в виде сессий. Вы можете начать и закрыть их.

После установки дистрибутива можно добавить среду рабочего стола со стандартными командами.

Вероятно, вам также понадобятся альтернативные способы установления соединения для своего дистрибутива. Тот факт, что вы изначально установили XSDL, не означает, что он должно быть неизменным всё время. Вы можете создать ещё одну учётную запись на вкладке Session и выбрать другой сервер. Только убедитесь, что указали его в одной и то же файловой системе. UserLAnd попытается направить вас на нужное приложение, чтобы установить новый тип соединения: либо XSDL, ConnectBot для SSH, или bVNC.

Читайте также:  Android mysql php json пример

Однако настойчивость, с которой приложение автоматически направляет вас в Play Store при попытке переподключения, может раздражать. Чтобы прекратить это, достаточно сменить сервер посредством установки специального приложения. Для установки SSH выберите старый проверенный VX ConnectBot. Просто войдите в порт 2022 на рабочей станции под вашим именем и паролем. Для того, чтобы подключиться к серверу VNC достаточно установить коммерческое, но во многих отношениях продвинутое приложение Jump Desktop, и набрать адрес 127.0.0.1:5951.

Надеемся, вы помните пароль VNC, который задали, когда создавали файловую систему.
Получить доступ к текущей сессии UserLAnd также можно используя похожие инструменты на другом компьютере в вашей сети. Достаточно подключить SSH к работающему сеансу (с типом соединения SSH, естественно) посредством терминала Linux, например, Konsole, или подключиться к сеансу VNC с помощью KRDC. Просто замените локальные адреса на экране компьютера IP-адресами вашего Андроида.

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

Источник

Linux on your smartphone: everything you need to know in 2021

Raffaele T.

One of the main issues with modern smartphones is the extremely short lifespan of this category of devices, which makes even high-end ones painfully slow within years. In fact, studies have shown that it takes the average European, American or Asian user less than two years to dump their old smartphone and buy a newer, more powerful (yet arguably very similar feature-wise) model.

This, however, is quickly changing thanks to projects like postmarketOS, bringing potentially lightweight Linux environments to new and old (also very old) mobile devices. While it is still early, in most cases, to have an usable Linux «daily driver» smartphone, this page should answer some of your questions regarding how Linux on smartphones work, whether your phone is likely to boot it properly and, if it does, how to choose a Linux distribution and whether it’s the case to switch now or to wait some months.

Do not forget that most of the procedures below might void warranty or cause temporary or permanent damage. Any content of this page is to be performed at your own risk.

2009 Nokia N900 running postmarketOS

Buying a Linux smartphone

Thankfully, getting your hands on a Linux smartphone in 2021 is much easier than it used to be. Many Librem 5s and PinePhones have already been shipped, and mature releases will probably be available for sale within this summer. We maintain a small list of native Linux smartphones that might be a good starting point if you are willing to buy one.

If, however, you are not ready to go for a full Linux smartphone yet, Can My Phone Run Linux? is a search engine for most known smartphones that can boot Linux. Make sure, however, to check the support level on the distro page in detail before getting one, as most features, like mainline kernel, modem and hardware acceleration are still not supported by most devices.

Hardware requirements

Sure, a lightweight Linux desktop environment might be much faster than most heavily manufacturer-customized Android spins, but there’s no black magic in «pure» Linux either. Which means that expecting to achieve more with your device than what the manufacturer initially designed it to is possible, but not very realistic. Especially if we consider that most smartphones are sadly not designed to be future-proof when it comes to their technical specifications, with tough competition for higher specifications every year leading to progressively heavier and slower OS releases.

Therefore, if your smartphone isn’t equipped with at least 1GB of RAM, 8GB of ROM (SD cards also count, but might be less reliable and slower especially on newer devices) and a 32-bit, 1GHz ARM CPU, the device will probably boot, but still be unsuitable for most kinds of smartphone features, such as desktop-like web browsing. In other words, anything older than 2012 will probably not render modern websites faster or more accurately than it did on its original OS. In case you are not willing to sacrifice Android applications, you should as well consider the relevant overhead of Android abstraction layers like Anbox.

In addition, you should make sure that your device’s mobile modem, GPU, power management and all kinds of hardware drivers you need are available on Linux. This step requires a minimum level of hardware and Linux knowledge, but for most users checking «what works» and «what doesn’t» from the wiki page of your device for the distribution you would like to install should already give a basic idea of the usability status.

If there is already a mature Android port for your smartphone, however, libhybris might allow Android drivers to run on Linux and get a GUI running quickly over it.

Читайте также:  Как удалить файлы nomedia с андроида

Software requirements

Another thing to remember is that running Linux on an iPhone or iOS device is almost impossible. Apart from the work-in-progress Project Sandcastle, there is currently no usable Linux distribution or porting for modern iDevices. Windows Phone devices that already received unofficial Android support, such as the Lumia 520, 525 and 720, might be able to run Linux with full hardware drivers in the future. In general, if you can find an open source Android kernel (e.g. via LineageOS) for your device, booting Linux on it will be much easier.

If your device is SIM-locked, you might want to unlock your device if possible before flashing Linux on it, as in some cases the necessary proprietary software handles for modem unlock codes might not be implemented in Linux.

You should also check if the bootloader for your device is unlocked, and if it isn’t, how the bootloader unlock procedure works, preferably from an official source (which means avoiding shady paid «unlocking services» unless you really have no other choice). If it is permanently locked by a carrier or manufacturer, or can’t be unlocked for whatever reason, you will not be able to run Linux or any other unsigned custom kernel on it, with the exception of limited chroot subsystems.

What are the Linux distributions for smartphones, and how should I choose one?

Several Linux distributions are specifically designed for smartphones, tablets and wearables, the most relevant of which are also listed on a dedicated page.

  • Your best bet at the moment would surely be Ubuntu Touch by Ubports, which is the only distribution to provide a fully-functional Linux desktop environment with a relatively large app ecosystem. To check if your device is one of the lucky ones to be actively (and officially) maintained, you can check the Ubuntu Touch Devices section.

  • Another Linux distribution which is currently in very active development is postmarketOS, which can boast a wide community of users and developers and over 250 booting devices (including smartwatches, x86 tablets and Raspberry Pi boards) at the time of writing. KDE enthusiasts will be happy to hear that postmarketOS is officially recommended by the Plasma Mobile website, and some of its main developers are also active members of its community. This, however, does not mean that postmarketOS is primarily KDE oriented: several Gtk desktops, including Purism Librem 5’s «Phosh«, are already fully working in postmarketOS on several devices.
    Also the pmbootstrap tool makes porting postmarketOS to new smartphones easier than ever.

  • Last but not least, if your device is one of the few supported ones (spoiler: few Xiaomi and Nexus phones only), you might consider trying LuneOS, a project that brings new life to HP WebOS, the futuristic HTML5-based, open-source iOS competitor that didn’t truly make it against the Android hegemony in the first 2010s. Still, chances are it’ll be lighter than most Android versions, while open source and fully respectful of your privacy.

Porting Linux to your device

postmarketOS live porting to Nokia 1

If your device is currently not supported by any of the distros mentioned above, porting postmarketOS to it might be a relatively easy task, provided you have experience with compiling Android and Linux kernels, and possibly some minimal knowledge of the C programming language. And, of course, provided that there is already one stable Android or Linux kernel you can find the source code for. If you feel brave enough, you can check this guide from the postmarketOS wiki and start getting your hands dirty. And if you ever get stuck, you can always ask their community for help and guidance.

And if, by chance, you arrive to the point of getting the real, «mainline» Linux kernel and the device modem (calls, SMS, mobile data. ) to fully work on your phone, you might have just created one of the very few modern «true Linux» smartphones. But that’s clearly beyond the point of this article.

Live porting of Ubuntu Touch to Fairphone2

Conclusion

As the brightest reader might have noticed, «real» Linux on most smartphones isn’t exactly mature yet. So is it worth installing on your daily driver? Probably not, unless it’s one of the few Ubuntu Touch or postmarketOS officially supported devices. But if you’ve got an older device that’s been sitting idle for years, why not experiment with software that might give it new life, without the limits of the OS it was originally released with? Testing and development is essential at a stage where Linux for smartphones is being more actively developed than ever.

You can follow TuxPhones on Twitter and Mastodon.

Источник

Оцените статью