Как я могу настроить базовый образ Ubuntu для Arm на моем телефоне Android без рутирования?

Я хотел бы установить Canonical размещенный базовый образ Ubuntu для руки на моем телефоне Android.

Мне нужен простой пошаговый ответ о том, как начать.

Я хотел бы иметь возможность использовать Ubuntu для запуска приложений на моем телефоне без рутирования.

См. этот вопрос для установки приложения.

1
задан 23 April 2021 в 10:13

1 ответ

Настройка Ubuntu в Termux состоит из трех частей:

  1. Установка базового образа
  2. Установка DE (в этом ответе я буду использовать XFCE, так как он удобен для пользователя, но не тяжелый) и VNC-сервера
  3. (необязательно) Включение звука, поскольку протокол VNC не поддерживает звук

Самый простой способ - Если вы не хотите пачкать руки, установите Termux и просто загрузите либо Andronix ( Веб-сайт , GitHub ) или AnLinux , и установите с ними Ubuntu 20.04. Эти приложения предоставляют сценарии для загрузки и извлечения базового образа, для установки окружения рабочего стола (например, XFCE) и настройки сервера VNC, который вам просто нужно скопировать и вставить в Termux.

enter image description here enter image description here enter image description here

Пользовательский интерфейс Andronix

Как им пользоваться?

Когда закончите, введите команду ./ start-ubuntu20.sh , чтобы открыть Ubuntu, и команду exit , чтобы покинуть Ubuntu. После запуска Ubuntu введите команду vncserver-start , чтобы запустить сервер VNC (с рабочим столом XFCE), и команду vncserver-stop , чтобы остановить его. (к сожалению, он называется ubuntu20 , хотя на самом деле это Ubuntu 20.04, а не Ubuntu Core 20. Как только вы поймете, как работает сценарий, вы можете переименовать все в ubuntu20.04 или что-то еще)

enter image description here Некоторые записи (например, время безотказной работы) неверны из-за поддельных записей / proc , иначе последние версии Android не позволили бы Ubuntu работать.

Как получить доступ к рабочему столу XFCE с помощью VNC Viewer?

Установите приложение VNC Viewer на Android, например VNC Viewer - удаленный рабочий стол или androidVNC . И откройте адрес localhost: 5901 , чтобы подключиться к серверу VNC. Совет : выберите качество: высокое или 24- битовый цвет (4 бит на пиксель) для лучшего качества изображения. Кроме того, VNC Viewer - Remote Desktop очень хорошо поддерживает портретный и ландшафтный режимы. Другие программы просмотра VNC, похоже, плохо поддерживают портретный режим.

xfce foliate Приложения, работающие на рабочем столе XFCE. Я установил тему значков Tango и тему Arc GTK

. Однако эти приложения будут загружать Ubuntu Base из своего репозитория GitHub (где они сохранили копию), а не с веб-сайта Canonical. Все скрипты в этих приложениях доступны в их репозиториях GitHub под бесплатными лицензиями.

Что делает этот сценарий?

Этот сценарий загружает образ rootfs Ubuntu для архитектуры вашего устройства, а затем настраивает его для работы с proot. Последние версии Android (v10, v11) налагают некоторые ограничения, поэтому этот сценарий создает фальшивые записи в / proc , чтобы заставить Ubuntu и Android нормально функционировать.


Включение звука

Andronix создал сценарий для включения звука. Выполните следующую команду в оболочке termux ( Не Ubuntu ).

 pkg install wget && wget https://andronixos.sfo2.cdn.digitaloceanspaces.com/OS-Files/setup-audio.sh && chmod +x setup-audio.sh && ./setup-audio.sh

Использование звука

Запустите Ubuntu в оболочке Termux и откройте другую оболочку Termux (не открывайте там Ubuntu). Запустите pulseaudio --start в новом Termux shell (не в Ubuntu), и теперь Ubuntu сможет воспроизводить аудио. Аудио демонстрация - Youtube Video

Обратите внимание, что файл setup-audio.sh является загадочным (вероятно, так, что конкурент Andronix не может его использовать), и его читаемый форму можно найти здесь . Она настолько загадочна, что сотрудники Unix и Linux Stack Exchange подумали, что это может быть вредоносное ПО, но я подтвердил, что это не так.


Немного сложный метод - объедините шаги 1 и 2 за один раз (но загрузите изображения из Canonical, а не из репозитория Andronix на GitHub).

Andronix имеет автоматизированный сценарий для загрузки rootfs, установки DE и последующей настройки сервера VNC.

Однако сценарий Andronix загружает rootfs из их репозитория GitHub (переименованная версия rootfs Ubuntu 20.04 (не 20.04.2)), а не с сервера Canonical.

Мы изменим сценарий, чтобы вместо этого использовать изображение с сервера Canonical. Сначала установите wget и nano в Termux (если он еще не установлен), а затем загрузите сценарий.

pkg install wget nano

wget https://github.com/AndronixApp/AndronixOrigin/blob/master/Installer/Ubuntu20/ubuntu20-xfce.sh

Теперь откройте скрипт в Nano.

nano ubuntu20-xfce.sh

Измените содержимое строки 29 (используйте клавиатуру Хакера или scrcpy - см. Советы : №6. В противном случае это будет сложно редактировать на мобильном устройстве),

wget "https://github.com/AndronixApp/AndronixOrigin/raw/master/Rootfs/Ubuntu20/focal-${archurl}.tar.gz" -O $tarball

к следующему

wget "https://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.2-base-${archurl}.tar.gz" -o $tarball

Теперь сохраните файл ( ctrl + x ) и запустите его.

sh ubuntu20-xfce.sh

Теперь перейдите к Как им пользоваться? и Как получить доступ к рабочему столу XFCE? (в предыдущих частях ответа). При желании вы можете выполнить Включение звука , чтобы включить звук.


Сложный метод

  1. Установка базового образа

  • Первым шагом является установка Termux в Android. Он доступен в Google Play (больше не обновляется), а также в F-Droid .

  • Установка rootfs. Это включает в себя множество шагов, поэтому мне бы пригодились сценарии, доступные в GitHub (иначе было бы изобретать велосипед). Некоторые из таких проектов: Andronix , AnLinux , Ubuntu-on-Termux (их гораздо больше). Среди них AnLinux (также доступно на F-Droid ) и Andronix доступны как приложения для Android, чтобы помочь скопировать и вставить команды установки. Сценарий в Ubuntu-on-Termux необходимо загрузить и вручную запустить в Termux. Вы можете редактировать эти сценарии в соответствии со своими потребностями.

У Andronix есть автоматический сценарий для загрузки rootfs, установки DE и последующей настройки сервера VNC. Чтобы использовать это, установите приложение Andronix, выберите Ubuntu 20.04 и установите версию XFCE.

Однако сценарий Andronix загружает rootfs из их репозитория GitHub (переименованная версия rootfs Ubuntu 20.04 (не 20.04.2)), а не с сервера Canonical.

Чтобы использовать версию с сервера Canonical, вместо этого мы будем использовать сценарий в Ubuntu-on-Termux.

Откройте окно Termux и введите следующие команды одну за другой. Первая команда устанавливает wget в Termux, вторая выбирает файл ubuntu.sh с помощью wget, а третья выполняет ubuntu.sh .

pkg install wget

wget https://raw.githubusercontent.com/MFDGaming/ubuntu-in-termux/master/ubuntu.sh

sh ubuntu.sh

Что делает ubuntu.sh ?

Он устанавливает proot в Termux, загружает и извлекает базовый образ Ubuntu 20.04.1 и настраивает сценарий ( startubuntu.sh ), чтобы впоследствии запустить Ubuntu.

После этого введите команду ./ startubuntu.sh , чтобы запустить сеанс Ubuntu, и команду exit , чтобы выйти из сеанса Ubuntu. (Если вместо этого вы используете Andronix или AnLinux, вам, возможно, придется запустить ./ start-ubuntu.sh или ./ start-ubuntu20.sh .)

  1. Установка рабочего стола XFCE и сервера VNC

Вы можете вручную установить xfce4 , xfce4-goodies и tigervnc-standalone-server , tigervnc- common и dbus-x11 , а затем настройте vncserver (создайте пароль, добавьте startxfce4 в .vnc / xstartup и запустите ] vncserver: 1 . Чтобы закрыть, запустите vncserver -kill: 1 ).

Однако мы можем использовать сценарий от Andronix для настройки рабочего стола XFCE и сервера VNC.

Откройте Termux и запустите Ubuntu. Сначала мы установим wget и загрузим скрипт.

apt update && apt install wget
wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/APT/XFCE4/xfce19.sh
sh xfce19.sh

Вы можете указать пароль для VNC (или не указывать пароль, если хотите). Теперь вы можете запустить vncserver с помощью команды vncserver-start и остановить его с помощью команды vncserver-stop .

Системные требования:

  • Последние версии Termux работают с Android 7 и выше. Однако вы можете загрузить немного более старые версии Termux, которые работают с Android 5 и 6 (я убедился, что они работают правильно).
  • Рабочий стол Ubuntu rootfs + XFCE занимает ~ 1 ГБ дискового пространства и ~ 300 МБ ОЗУ.

Безопасность

По умолчанию Ubuntu rootfs не может получить доступ к файлам на вашем телефоне Android. Данные в Termux изолированы от других данных в Android. И вы можете легко удалить все файлы в Termux (включая Ubuntu), удалив данные приложения в настройках Android.Однако я не несу ответственности за какие-либо проблемы, возникающие в связи с этим ответом. Количество звездочек в GitHub даст вам представление о том, сколько людей используют эти скрипты. Они не являются вредоносными программами.

Советы:

  1. В VNCServer можно изменить разрешение экрана. Я обнаружил, что разрешение 700x1500 (в портретном режиме) очень хорошо работает на экране моего 6,5-дюймового телефона.
  2. Vanilla XFCE надоедает, вы можете установить свои любимые темы значков и темы GTK.
  3. Вы можете отредактировать start-ubuntu20.sh / startubuntu.sh , чтобы получить доступ к внутренней памяти и SD-карте вашего телефона.
  4. По умолчанию используется учетная запись root. Однако вы можете создать учетную запись без полномочий root с su -s username и предоставить им доступ sudo.
  5. Выберите качество : высокое или 24-битный цвет (4 бит на пиксель) в VNC Viewer для лучшего качества изображения.
  6. Чтобы редактировать файлы в Termux, установите Hacker's Keyboard ( Google Play , F-Droid ) в Android или используйте scrcpy , чтобы использовать клавиатуру вашего компьютера для редактирование.
  7. Контейнерные приложения (например, Snap и Flatpak), как известно, не работают в этом методе. Цитата из Andronix Docs

Пакеты SNAP / Docker / Flatpak нельзя установить ни в одной среде Linux . В основном это связано с двумя причинами. Во-первых, для обоих требуются модули ядра и шины, которые недоступны в среде PRoot , а во-вторых, оба в основном ориентированы на архитектуры на базе Intel / AMD , а не на архитектуру ARM.

Не стесняйтесь редактировать этот ответ, чтобы улучшить его.

3
ответ дан 23 April 2021 в 23:21

Другие вопросы по тегам:

Похожие вопросы: