- Fedora Linux with MATE Desktop on Android
- Installation
- Logging as a Non-root User
- Locale and Timezone
- Conclusion
- Готов релиз Fedora Linux для смартфонов
- Немного о смартфоне PinePhone
- AnLinux: простой способ установить Linux-окружение на Android-телефон без рута
- Что такое AnLinux?
- С чего начать?
- Что же, приступим
- А что с графической оболочкой?
Fedora Linux with MATE Desktop on Android
I know some of you geeks have already done something like that, running a GNU/Linux distribution on top of an Android device. It’s an interesting time, with projects like proot we don’t need root privilege on our Android devices to run a containerized Linux environment. Here in this post, I’ve written down the steps that I’ve taken to have a usable desktop environment up running on my Galaxy Tab S5e (this blog post has been written up purely within such environment).
Installation
First of all, you must have a device running Android 7.0+, which is a requirement of Termux. If you plan to use graphical environment, I highly recommend you having a big-screen device such as a tablet, or having a USB-C hub that connects to a monitor and other peripherals.
You need to first install Termux from FDroid. Don’t install it from Google Play. The version in Google Play store is outdated and will not receive any updates until the author has figured a way to target newer Android APIs. Once you’ve done that, open Termux and install proot-distro and use it to install Fedora 33 (check other distributions it supports by proot-distro list )
pkg install proot-distro proot-distro install fedora-33
Now we can log into the proot environment and it is Fedora!
proot-distro login fedora-33 # the commands below are executed in fedora proot dnf update dnf install mate-session-manager mate-desktop mate-themes mate-terminal pluma caja marco glibc-langpack-en firefox
Now you’ve installed some packages for MATE desktop environment and should be ready to have a basic graphical desktop up running. Not so fast yet… Android doesn’t have an X11 server nor a wayland compositor. We then have two choices here:
I’m going for the second option here. Mainly because all the VNC clients on Android I’ve tried so far don’t have perfect experience (albeit perfectly usable). To do that, install “XServer XSDL” from Google Play store on the same Android device. Launch it and configure the screen resolution if you need, then we can head back to Termux task and tell Fedora to start a MATE session with a “remote” X server.
export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713 mate-session
Remember to acquire wakelock for Termux in the notification area, otherwise Android might kill Termux process to save battery. Now you can head to the XServer XSDL task again, wait for a couple of seconds and you should be greeted by a MATE session (as shown in the screenshot below).
Logging as a Non-root User
You might be struck down by a number of applications that refuse to run in privileged mode (by default, proot logins as root ). To solve that and login as a non-root user, you need the good old friends useradd and usermod commands to create a new user in the proot environment:
useradd -m user1 # create a new user with login ID user1 groups root # check what groups we might need to add usermod -aG aid_inet user1 # add aid_inet group to user1
Now in the future when you want to login as this user, you can do:
proot-distro login fedora-33 --user user1
However it seems that some configuration files are not correctly sorted so you might not be able to use sudo to gain root privilege. The workaround would be to execute those commands in another Termux tab as root .
Locale and Timezone
The system is up running now but it’s been really configured as a bare minimal OS. You might find quite a few things out of the place. Here we’re going to correct the locale and the timezone.
The locale would’ve been configured to the fallback “C”. To make it worse, there is no language pack installed for glibc by default (in the Setup section, we installed English language pack ourselves). Once you’ve installed the language pack you need (and potentially the fonts required), you should be able to see a good candidate in the output of locale -a , pick one and set the LANG environment variable in .bashrc , for example, setting it to British English:
Now let’s look at the timezone which is UTC by default, that’s fine on the CLI but might be confusing in a graphical desktop environment. To fix that, run tzselect and edit .bashrc file to add the environment variable for TZ :
For example, this sets the timezone to London, UK.
Conclusion
It’s not a one-click solution, but GNU/Linux desktop is never going to be used by people who require one-click solutions (not anytime soon).
On the compatibility, the proot solution is almost as good as a regular chroot on a privileged environment (regular Linux PC, or rooted Android). There are a few applications that might freeze, or crash outright, but you should be able to find replacements easily. For example, I couldn’t get Xfce running without major usability issues and that’s why I changed to use MATE.
On the performance side, the proot solution will be a bit slower than chroot . If your Android device has been rooted already, look at chroot solutions such as LinuxDeploy. Either way, you won’t get hardware acceleration on the graphics but chroot should be generally a bit faster as it is a “native” solution.
Готов релиз Fedora Linux для смартфонов
Скриншот десктопной версии Fedora Linux
Linux и вся open source отрасль продолжают активно развиваться. Только недавно евангелист открытого ПО Эрик Реймонд рассказывал о том, что в недалеком будущем, по его мнению, Windows перейдет на ядро Linux. Ну а сейчас появился релиз Fedora Linux для смартфонов.
Над этим проектом работает группа Fedora Mobility. Интересно, что она не проявляла особой активности в течение 10 лет, а теперь вышла из спячки и начала активно работать. Что касается браузера, то он рассчитан пока только для установки на PinePhone, смартфон, созданный стараниями сообщества Pine64. Вскоре группа обещает представить версию браузера и для других смартфонов, включая Librem 5 и OnePlus 5/5T.
Сейчас в репозитории Fedora 33 (rawhide) появился набор пакетов для мобильных устройств с пользовательской оболочкой Phosh, которая управляется с сенсорного экрана. Развивается она компанией Purism для телефона Librem 5. В ее состав входит композитный сервер Phoc, который работает поверх Wayland. Он базируется на технологиях GNOME (GTK, Gsettings, Dbus).
Разработчики открыли возможность применить окружение KDE Plasma Wayland. Правда, в репозитории пока нет соответствующих пакетов. Что касается уже доступных приложений и компонентов, то вот список:
- oFono — стек для доступа к телефонии.
- chatty — мессенджер на базе libpurple.
- carbons — XMPP-плагин для libpurple.
- pidgin — доработанная версия программы для мгновенного обмена сообщениями pidgin, из которой используется библиотека libpurple для chatty.
- purple-mm-sms — плагин к libpurple для работы с SMS, интегрируемый с ModemManager.
- purple-matrix — плагин к сети Matrix для libpurple.
- purple-telegram — плагин к Telegram для libpurple.
- calls — интерфейс для набора номера и приёма звонков.
- feedbackd — интегрируемый с Phosh фоновый процесс для физической обратной связи (вибросигнал, светодиодные индикаторы, звуковые сигналы).
- rtl8723cs-firmware — прошивка для Bluetooth-чипа, применяемого в PinePhone.
- squeekboard — экранная клавиатура с поддержкой Wayland.
- pinephone-helpers — скрипты для инициализации модема и переключения звуковых потоков при выполнении телефонного звонка.
- gnome-terminal — эмулятор терминала.
- gnome-contacts — адресная книга.
Немного о смартфоне PinePhone
Это мобильное устройство, которое в июле этого года выпустила компания Pine64. Его главное преимущество — возможность использования устройств в качестве десктопного ПК. Конечно, эта система не годится в качестве медиастанции, но для работы — вполне. В частности, этот десктоп идеально подходит в качестве портативной рабочей станции инженера дата-центра, сисадмина и т.п.
- Четырехъядерный SoC ARM Allwinner A64.
- GPU Mali 400 MP2.
- 2 или 3 ГБ ОЗУ.
- 5.95-дюймовый экран (1440×720 IPS).
- Micro SD (с поддержкой загрузки с SD-карты).
- 16 или 32 ГБ eMMC.
- Порт USB-C с USB Host и совмещенным видеовыходом для подключения монитора.
- 3.5 мм mini-jack.
- Wi-Fi 802.11 b/g/n, Bluetooth 4.0 (A2DP), GPS, GPS-A, GLONASS.
- Две камеры (2 и 5Mpx).
- Съемный аккумулятор 3000mAh.
- Аппаратно-отключаемые модули LTE/GNSS, WiFi, микрофоном и динамиками.
ОС — postmarketOS, основа которой — Alpine Linux, это дистрибутив Linux для мобильных устройств.
AnLinux: простой способ установить Linux-окружение на Android-телефон без рута
Любой телефон или планшет, работающий на Android, — это устройство, которое управляется ОС Linux. Да, очень модифицированной ОС, но все же основа Android — ядро Linux. Но, к сожалению, для большинства телефонов опция «снести Android и поставить дистрибутив по своему вкусу» недоступна.
Поэтому, если хочется Linux на телефоне, приходится покупать специализированные гаджеты вроде PinePhone, о котором мы уже писали в одной из статей. Но есть еще один способ получить Linux-окружение практически на любом смартфоне, причем без root-доступа. Поможет в этом инсталлятор, который называется AnLinux.
Что такое AnLinux?
Это специализированное ПО, которое дает возможность использовать Linux на телефоне при помощи монтирования образа, содержащего root-файловую систему любого из дистрибутивов, включая Ubuntu, Kali, Fedora, CentOS, OpenSuse, Arch, Alpine и многих других. Инсталлятор использует PRoot для эмуляции root-доступа.
PRoot перехватывает все выполняемые пользователем вызовы, которые требуют в обычной ситуации root-доступа, и обеспечивает их работоспособность в обычных условиях. В PRoot используется системный вызов ptrace для отладки ПО, который помогает достичь цели. С PRoot все это можно сделать как с chroot, но без root-прав. Кроме того, PRoot предоставляет фейковый доступ пользователю для пседвофайловой системы.
AnLinux — небольшая программа. Но этого достаточно, ведь единственное ее предназначение — установка образов систем и запуск скриптов, поднимающих пользовательское окружение. Когда все сделано, пользователь получает вместо смартфона Linux-ПК, причем Android продолжает работать на фоне. Подключаемся к устройству при помощи VNC-вьювера или терминала, и можно работать.
Конечно, это не идеальный вариант «завести» Linux на смартфоне, но он вполне рабочий.
С чего начать?
Основное — Android-смартфон с версией ОС не ниже Lollipop. Кроме того, пойдет и 32-битное или 64-битное ARM или x86-устройство. Кроме того, потребуется солидный объем свободного файлового пространства. Для этого можно использовать карту памяти или просто устройство с большим объемом внутренней памяти.
- AnLinux (вот ссылка на Google Play).
- Termux (снова понадобится Google Play).
- VNC Client (VNC Viewer — хороший вариант).
- Bluetooth-клавиатура (опционально).
- Bluetooth-мышь (опционально).
- HDMI кабель для мобильного телефона (опционально).
Что же, приступим
Как только установлен Termux, получаем полноценную консоль. Да, рута нет (если телефон не рутован), но ничего страшного. Следующий шаг — установка образа для дистрибутива Linux.
Теперь нужно открыть AnLinux и затем — выбрать Dashboard из меню. Всего есть три кнопки, но выбрать можно лишь одну, первую. После этого появляется меню выбора дистрибутива. Можно выбрать даже не один, а несколько, но в этом случае понадобится большой объем свободного файлового пространства.
После выбора дистрибутива активируются две другие кнопки. Вторая позволяет загрузить в буфер обмена команды, необходимые для загрузки и установки Linux. Обычно это pkg, wget команды и скрипт для их выполнения.
Третья кнопка запускает Termux, так что команды можно вставлять в консоль. Как только все сделано, запускается скрипт, позволяющий загрузить окружение дистрибутива. Для вызова дистрибутива нужно каждый раз запускать скрипт, но установку проводим только один раз.
А что с графической оболочкой?
Если она нужна, то следует лишь выбрать меню для десктопного окружения и использовать больше кнопок — появится не три, а больше. Кроме самого дистрибутива, нужно выбрать еще и оболочку, например, Xfce4, Mate, LXQt или LXDE. В целом, ничего сложного.
Потом кроме скрипта, который запускает дистрибутив, потребуется еще один — он активирует сервер VNC. В целом, весь процесс простой и понятный, он вряд ли способен вызвать затруднения.
После запуска сервера VNC подключаемся со стороны клиента, воспользовавшись вьювером. Требуется знать порт и localhost. Все это сообщает скрипт. Если все сделано правильно, то пользователь получает доступ к своей виртуальной Linux-системе. Производительность современных телефонов на высоте, так что особых проблем не будет. Конечно, вряд ли смартфон сможет полностью заменить десктоп, но, в целом, все это работает.
Этот способ может пригодиться, если вдруг нужно срочно подключиться к серверу, а вы в машине, без ноутбука (конечно, в этом случае все описанные выше операции с AnLinux уже должны быть выполнены). Виртуальная Linux-машина позволяет подключиться к рабочему или домашнему серверу. А если в автомобиле по какой-то причине оказался дисплей и беспроводная клавиатура, то за считанные секунды в салоне можно организовать рабочий кабинет.