- Арч на телефон
- Arch linux on phone
- Установка Archlinux на телефон с Android во второй раздел SD или просто подпапку системной карты памяти
- Готовим устройство
- Собираем минимальный стартовый вариант
- Приводим в порядок пакеты
- Добавляем автомонтирование и прочие плюшки
- RebelLion420 / TermuxArchSetup2020.md
- Установка ArchLinux ARM рядом с Android без chroot
- Нам потребуется
- Все действия Вы выполняете на свой страх и риск.
- Я использовал
- Часть 1: Подготовка
- Часть 2: Поиск и решение проблем
- Проблема 1: ping не работает
- Проблема 2: Не работает DNS
- Если Вы запороли PATH
- Ставим необходимые пакеты
- Проверяем gcc
- Часть 3: Подготовка к работе без chroot
- Нужно заранее позаботится о Root.
- Часть 4: Поехали!
- Что дальше
- Послесловие
Арч на телефон
Может здесь вы мне поможете
Тащить сюда весь караван-сарай не буду. Просто ссылки
archlinuxarm
4pda
И да, я хочу поставить его именно на железо, а не виртуализовать. Это не весело
первое что напрашивается — без патчей ядра вы скорее всего убьете телефон. ибо та хрень, что стоит в soc, ядру скорее всего не ведома. а если ничего не знаете про загрузчик то может оказаться что переписаное ядро просто не запустится. из за банальной ошибки адресации.
по тем же причинам надо полностью переписывать правила udev
второе — ну доведете вы телефон до какой нибудь консоли, а дальше что? с x все плохо. с приложениями еще хуже. дальвик как ни странно меньшее зло.
год назад я тоже ругался на телефон и мечтал поставить арм арч. из прочитаного понял что это во первых не весело а во вторых сильно кропотливо. именно по этой причине я не вижу сборок федориного горя убунту и арча для телефонов.
а сейчас я понял почему сисадмин на работе так радовался зеленой бочке с мороженкой. предыдущие версии зеленой бочки еще хуже.
патчи наверное можно достать. а образ хрени из soc можно сделать (если это поможет делу)? полагаю, что загрузчик — это u-boot
если есть сообщество archlinuxarm, то они уже должны были переписать не один udev.
и иксы 320×400 они тоже скорее всего придумали, по логике
про подмену юзерспейса на этапе загрузки андроида я где то читал на внглийском. там кажется дебиан на nexus ставили. Но после прочтения этого самого руководства я понял что без нового телефона и средств аппаратного восстановления прошивки я рисковать старым не буду
проблема в приложениях. поставь размер окна 320*240 допустим для гимпа или ooо и чеши затылок.
Что касается установки archlinuxarm на телефон параллельно с андроидом, то виртуализация тут ни при чём – речь идёт об использовании пакетов Arch с ядром андроида в чруте или прямо в его корневой ФС. Ограничения такого способа:
1) невозможно запустить systemd, вместо него придётся использовать скрипты запуска
2) графические программы можно запустить в андроид-версиях X-сервера вроде X-SDL, но пользоваться ими на тачскрине будет затруднительно
3) я не нашел способа перенаправить вывод звука линуксовых программ в звуковую подсистему андроида. Прямой вывод звука через ALSA в ядре андроида работает часто криво, не на всех андроид-телефонах, и даже если работает, вызывает зависание андроидовского медиасервера.
© 2006-2021, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.
Источник
Arch linux on phone
At least for better performance your android specification must be:
— 256 mb ram (Minimum), less if you don’t want install desktop environment.
— 600 mhz, 1ghz is recommended.
— SD Card free space for Archlinux is 1.5gb (minimum but not suitable if you want to install more productive application), 4GB is recommended
— Rooted only devices
Apps that you need on Android (install it from playstore)
1. Arch Linux Installer. https://play.google.com/store/apps/details?id=com.azlinux765.alinstaller
Search on google com.azlinux765.alinstaller you will find the package. But i’m not sure if it still work or not for Android devices (2018 & up). On these post i’m using Ice Cream Sandwich OS.
2. Install Android Terminal Emulator
https://play.google.com/store/apps/details?id=jackpal.androidterm
3. Install Android VNC Viewer
https://play.google.com/store/apps/details?id=android.androidVNC
4. PC Keyboard
https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard
Then, tap on Download/Install Arch Linux, and tap allowed on Root access, and here’s status of your devices:
Then tap on «Install» this will create Archlinux image on SDcard, and download the filesystem of archlinux:
Enter to continue, you will be back on Arch Linux Installer Menu, and «Run Arch Linux» Button will be up. Tap on it to start arch linux:
And you will go to Android Terminal Emulator. Archlinux is running:
rm -r /root/.vnc
rm -r /tmp/.X*
export HOME=»/root»
export USER=»root»
export DISPLAY=»:1″
vncserver -geometry 800×480
For input, tap on menu button on android, then send text, «startlxde» to start lxde :
Then send enter keys (again f rom menu b utton — > send keys:
Now your desktop ready to use:
Now try to install some apps, same as archlinux pc version, but with limited software, make sure your sd card have more spaces. If you done playing with archlinux arm. Disconnect vnc server, then, go to android termina l em ulator. then type exit, to shutdown.
If done, if you wan t to start it again, when run Arch Linux, start s tart.sh script again, then set vnc, then connect. That ‘s it. Enjoy.
All content based on Arch Linux Installer Documents sites , with some my trial & error.
Источник
Установка Archlinux на телефон с Android во второй раздел SD или просто подпапку системной карты памяти
Привет всем. Тут уже была статья на тему Botbrew, где в целом описано что это такое и что это дает. Вкратце:
Проект BotBrew призван решить многие проблемы с установкой Linux-софта, которые только могут возникнуть у пользователя, и подготовить систему Android к принятию инородных для нее приложений.
As of July 2014, updates to the Emdebian distributions ceased. There will be no further updates and no further stable releases.
Готовим устройство
Первое, что нам понадобится — создать папку, куда будем ставить наш линух. Варианта два — папка на разделе /data или отдельный ext4 раздел карты памяти. Во втором случае раздел надо будет как-то смонтировать в основную ФС телефона. Сделать это можно например с помощью Link2SD. Далее я буду исходить из того, что используется второй раздел SD, смонтированный в /data/sdext2, ставить будем в папку /data/sdext2/arch.
Также надо понять, репозиторий для какой архитектуры процессора будем использовать. У меня Qumo Quest 454 с процессором armv7l и для него подошел http://mirror.archlinuxarm.org/arm/.
Подключаем телефон по USB, заходим на него через adb и понеслась.
Собираем минимальный стартовый вариант
Для минимальной установки понадобятся следующие пакеты (выполняем от рута, версии пакетов со временем могут стать новее):
После того, как все скачалось, распаковываем:
У нас получилось что-то типа минимальной установки Archlinux. Теперь попробуем сделать в нее chroot, предварительно смонтировав системные папки ():
Если все прошло успешно, то запустится bash из нашего минимального окружения и станет доступен pacman. У меня при запуске любого процесса система ругалась, что не может найти libsuc.so, описанный в LD_PRELOAD. В этом случае просто чистим LD_PRELOAD:
Приводим в порядок пакеты
Итак, мы в chroot’е, у нас работает pacman и bash. Первым делом приведем в порядок то, что есть. Пропишем DNS и загрузим репозитории:
Теперь поставим официально то, что просто так распаковали и добавим остальные минимально необходимые для жизни пакеты и еще вернем на место dns, который нам побила установка filesystem:
Если все прошло удачно, то имеем полноценный за вычетом systemd и ядра Archlinux. Выходим из chroot и размонтируем все, что намонтировали:
Добавляем автомонтирование и прочие плюшки
Чтобы пользоваться тем, что получилось легко и просто, прикрутим init от botbrew-basil. Это утилита, которая проверяет, смонтировано ли у нас все, что надо и делает chroot в наше окружение. Я не смог найти, как скачать ее с репозитория botbrew, поэтому пока что просто выложил на Яндекс.Диск, ссылка. Копируем init в /data/sdext2/arch и добавляем атрибут на исполнение.
Заходим в adb shell и набираем:
В результате все, что надо само однократно подмонтируется и мы окажемся в свежепоставленном Arch. В виде бонуса init создаст в корне chroot’а папки /storage, /mnt и /android, куда смонтирует куски оригинальной файловой системы.
Чтобы наслаждаться линухом не через USB провод, а прямо с телефона, можно прописать /data/sdext2/init /bin/bash в качестве шела в любимом терминале. Дальше можно по вкусу создать пользователей, поднять sshd и т.п. Но любой арчевод и так знает, как это сделать, поэтому здесь про это писать не буду.
Спасибо за внимание, дополнения и исправления приветствуются.
UPDATE: небольшой скрипт, который я запускаю один раз после ребута
Источник
RebelLion420 / TermuxArchSetup2020.md
So, to get started you need to get the base OS installed using the instructions from the official docs .
$ pkg install bsdtar wget proot tergent tmux openssh
Tmux is a multiplexer that lets you run multiple persistent windows and sessions on a single terminal. I had trouble getting it working in the Arch proot, so a workaround is configuring tmux from your host Termux and then creating a tmux session and starting the chroot from there. For more information on using tmux read this article, and to learn how to customize the appearance and behaviors more try this one as well as looking at the tmux-plugins Github organization for community-built add-ons.
This should download and install the Arch system. The install itself will take around 10-30 minutes depending on your device. When the process finishes you’ll be in a root shell in your new Arch distro! Of course like any new Linux distro, not everything will work out of the box.
You will want to change the password and maybe even the username of your new Linux user. This can be done with 2 commands.
To add your user:
$ useradd -mG root -s /bin/bash
For the password:
Once you’re user is set up, you can use a crash-tested script I made that should run through and handle any exceptions. If not, it should at least make it easy enough to figure out what went wrong. First download and run it with sudo to avoid repeating your password:
$ sudo pacman -Syyu wget
$ wget —no-check-certificate ‘https://docs.google.com/uc?export=download&id=107Fh0l_p0ItVkUufOhP9to-OU_6KYhPW’ -O fresharch.sh
$ chmod +x fresharch.sh
$ sudo bash fresharch.sh
If all the instructions were followed correctly yay should install and you’ll have a functional Arch Linux with AUR support on your Android device.
Источник
Установка ArchLinux ARM рядом с Android без chroot
Нам потребуется
Все действия Вы выполняете на свой страх и риск.
Я использовал
Часть 1: Подготовка
1. Скачаем архив с ArchLinux ARM с зеркала:
Дальнейшие действия необходимо проделывать на Android устройстве
2. Создаем файл для будущего образа с помощью make_ext4fs.
Если у вас есть отдельный раздел на карте памяти — желательно использовать его. В моем случае 16Гб SD карта была забита важными данными и возможности сдвинуть главный FAT раздел не было.
В зависимости от настроек /sdcard может быть как внешней, так и внутренней картой памяти.
3221225472 это 1024*1024*1024*3, следовательно будет создан образ в 3Гб. Размер образа определите для себя по вкусу. Помните что на FAT32 нельзя создать файл больше 4Гб
3. Примонтируем образ и распакуем файлы ArchLinux ARM
4. Несмотря на то, что наша цель — обойтись без chroot, для базовой настройки и проверки работоспособности chroot все же нужно сделать. В противном случае обновлять, доставлять пакеты Вам придется уже на боевой системе.
Часть 2: Поиск и решение проблем
Проблема 1: ping не работает
Вспоминаем, что у Android серьезная система разграничения прав. И в нем существует пермишен на «Полный доступ к сети». Без этого пермишшена пользователи не могут получить полный доступ к сокетам. То что надо.
Вернемся к Android консоли и пропишем комманду id:
У вас вывод может быть другой
Но вот незадача, chroot не обновляет group. Поможет вот такой «хак»:
Пробуем еще раз:
Проблема 2: Не работает DNS
Удаляем симлинк на systemd и запишем нормальные DNS:
Если Вы запороли PATH
Если произошло такое, что простые комманды вида ls,cat,su не работают(не видятся) системой, Вы можете попробывать вызвать их напрямую: /system/bin/ls, /system/bin/cat, /system/xbin/su.
Или перезагрузить устройство.
Ставим необходимые пакеты
Проверяем gcc
Часть 3: Подготовка к работе без chroot
Самое главное, что позволяет ArchLinux работать без chroot рядом с андроидом — тот факт, что папки и файлы ArchLinux и андроид различны и не мешают друг другу.
Если Вы не уверены в том, что файлы не пересекутся, выполните эти команды из Android консоли:
Покажет пересечение файлов. У меня это выглядит так:
Выполним копирование файлов из /etc/ в /arch/etc/ из Android:
Ключ -a обязателен, так как при использовании обычного -R права скопированы не будут.
Нужно заранее позаботится о Root.
Android приложения требуют, что бы комманда su сразу же давала доступ к суперпользователю и не запрашивала пароль.
Часть 4: Поехали!
Создадим нужные каталоги и воспользуемся mount —bind что бы виртуально заменить директорию, не изменяя ее на диске.
Если что-то сделано неправильно, Вы можете перезагрузить устройство и попробовать снова. Порядок монтирования важен. При ошибке с монтированием стандартные команды могут взятся из ArchLinux до того, как все каталоги будут смонтированы.
Что дальше
В итоге мы имеем практически полноценный ArchLinux за исключением systemd с свежими версиями пакетов.
Можно установить http, php, mysql. При правильной настройке на уменьшение потребления памяти даже на моем смартфоне с ОЗУ 512Мб они работали корректно.
Можно установить иксовые библиотеки и с помощью X сервера для Android пользоваться ПО для линукса. xterm заработал корректно.
Можно собирать любые программы (и, о нет, ядра) для Linux без ПК.
Можно установить Java для ARM и использовать Java приложения.
Послесловие
Большой проблемой остается systemd и его привязка к PID 1. Для того, что бы сохранить PID 1 нужно влезть в init андроида и прописать exec после инициализации устройств. Это можно сделать заменив init андроида shell скриптом, но тогда остается вопрос что делать с оригинальным init андроида. Так как место на загрузочном диске ограничено несколькими мегабайтами, нужно будет использовать switch_root в заранее созданный образ. Мне пока не удалось завести systemd таким способом.
Мне 16, и это моя первая публикация. Конструктивная критика приветствуется.
Источник