Простой и эффективный способ запустить GNU/Linux поверх Android на устройстве x86?

У меня довольно мощный телефон x86-64 Android . Я хочу запустить настольный дистрибутив GNU/Linux (предпочтительно на базе Debian) поверх Android.

У меня стоковая прошивка, но с рутом и Xposed Framework.

Я знаю о Complete Linux Installer , и он кажется отличным. Но у них есть заранее подготовленный образ. Я предполагаю, что образ ARM, поэтому он не будет работать? Верно? Кроме того, они говорят, что мое ПЗУ должно поддерживать «петлевые устройства». Является ли? И если это не так, есть ли настройка, чтобы включить его?

Но я уверен, что должна быть масса других способов сделать это? FWIW У меня есть доступ к ноутбуку с процессором Intel, который я могу использовать для этого процесса. (Но я не слишком заинтересован в том, чтобы часами возиться, чтобы заставить его работать.)

Помимо этого, я хочу действительно воспользоваться характеристиками телефона. Удобный процесс также является плюсом.

Обратите внимание, что, несмотря на то, что я принял здесь свой собственный ответ, я все же очень приветствую дополнительные ответы.

Полный установщик Linux дает сбой на моем Samsung S4 с root-правами, работающем под управлением CM13. Однако Linux Deploy работает.
@Matthieu CLL также разбился на моем Samsung S3 с root-правами. Ни разу не пробовал LD на самсунге.
Вам не нужно использовать какое-либо стороннее приложение для запуска Linux на устройстве Android. Просто получите rootfs любого дистрибутива, который вы хотите запустить, смонтируйте его и chrootвставьте в него из любого приложения эмулятора терминала, такого как Termux. Обычно требуется очень минимальная конфигурация, например, добавление нового пользователя, добавление DNS-сервера и т. д. Я использую Ubuntu, ArchLinuxARM и VoidLinux таким образом на своем устройстве. Кроме того, chrootя также использую пространства имен mount, PID, network и UTS для дальнейшей изоляции среды Linux от Android. Также можно использовать VNC или XServer, но я обычно этого не делаю.

Ответы (1)

Я нашел способ сделать это, что я очень доволен.

Я использовал развертывание Linux . (Требуется рут, но вот альтернатива для тех, кто не хочет рута.)

Вот почти полная версия Xubuntu 16.04 (x86-64), работающая на моем телефоне.

введите описание изображения здесь

Он работает очень хорошо. У меня не было проблем с производительностью. Обратите внимание, что это не виртуальная машина. Android и Xubuntu используют одно и то же ядро ​​Linux одновременно. Если во время работы я переключусь на монитор ОС (в Android), я действительно смогу увидеть, как работают отдельные процессы из Xubuntu ( dpkgи т. д.) и сколько процессорного времени они используют. (Однако это должно быть включено в настройках.)

Внешняя клавиатура и мышь обязательны (хотя и не обязательны). И внешний монитор тоже хорошая идея. Или вы можете просто VNC в эту систему прямо с другого компьютера. Linux Deploy поддерживает это из коробки.

Настройка действительно проста. Настройки Linux Deploy по умолчанию в значительной степени работают. Просто выберите свой дистрибутив и среду рабочего стола. Но по умолчанию система создает файл размером 2 ГБ .imgв качестве файловой системы. Этого мне было мало. Итак, поскольку внутренняя память моего телефона ext4отформатирована, я смог установить ее на 40 ГБ. Если у вас FAT32, максимум будет 4 ГБ. Но также возможно иметь каталог или раздел вместо .imgфайла. (Хотя я так и не понял, как это сделать.)

Подробно процесс описан здесь . Перейдите к разделу «Развертывание Linux». Важно установить правильную версию Busy Box. В противном случае это не сработает.

У такого рода вещей есть потенциал. Если у вас есть достаточно мощный телефон, во многих случаях он может заменить ваш настольный компьютер.

Вы упомянули , что внешняя клавиатура и мышь являются обязательными . Вы имеете в виду, что вы могли бы установить его на свой телефон? Мне было бы интересно это сделать, так как мой встроенный микрофон Samsung S4 не работает, но телефон мощный.
Вы также можете принять свой собственный ответ. Я думаю, что это имеет смысл, когда VirtualBox работает на Android! :)
@Matthieu Конечно, клавиатура и мышь возможны на S4. Просто возьмите кабель USB-OTG и концентратор. Еще лучше получить OTG, поддерживающий зарядку одновременно (редко). Подключил к внешнему экрану, и твой телефон стал настоящим настольным компьютером. Лично я использую Bluetooth для клавиатуры и мыши. Что касается Virtual Box, хотя мне удалось его установить, я все еще не смог заставить его работать (хотя это было бы так здорово). Я думаю, что на вашем Samsung вам нужно ARM скомпилировать много пакетов из исходников. ? Как вы думаете, сможет ли S4 справиться с этим?
Я не уверен. Одна из причин, по которой я хотел иметь полноценный Linux, заключалась в том, чтобы получить gcc для компиляции нативного материала, но я пока не мог его найти (я тоже не очень старался). Virtual Box на ARM, вероятно, нуждается во многих из них. Спасибо за USB-OTG, звучит красиво!
@Matthieu VirtualBox никогда не удастся установить на ARM. Это чисто для х86. (Мой телефон x86.) Но для большинства других программ FOSS вы можете скомпилировать ARM из исходного кода. Некоторые вещи также доступны через apt-get. Но с х86 однозначно проще. И да, OTG — это круто. Вы даже можете подключать устройства хранения и (с концентратором с питанием) жесткие диски. А с помощью root вы можете получить драйверы Android для NTFS и HFS+. Он становится все более и более похожим на настоящий настольный компьютер.
Я попробовал Ubuntu и его apt-get, но не удалось установить пакеты gcc, вероятно, из-за того, что libc не был таким стандартным. Без компилятора будет сложно заставить что-либо работать (кроме того, что уже работает, конечно). Хотя Terminal IDE звучит как неплохой проект для компиляции на Android...
@Matthieu Нет ли другого способа получить компилятор?
Я думаю, что Terminal IDE — лучшая (бесплатная) ставка.
@Matthieu, я уверен, ты разберешься.
@beeshyams Я чувствую, что принятие моего собственного ответа препятствует дальнейшим ответам. И я хочу поощрять больше ответов. Есть несколько способов сделать это. Я чувствую, что принятие моего собственного ответа на самом деле не служит никакой цели.
Намерение благородно, а) но вы забываете, что вы можете принять лучший ответ в более поздний момент времени б) Это проблема ниши, это означает, что существует рабочее решение для тех, кто ищет нишу - ваш выбор, конечно
@beeshyams Хорошо, я принял. Всегда можно изменить его позже, если появится что-то лучше.
Вы можете даже добавить примечание к своему вопросу, в котором говорится, что, хотя у вас есть одно решение, вы бы приветствовали лучшие решения, но это может стимулировать
@beeshyams Хорошая идея.