Armbian установка на планшет

Обновлено: 01.07.2024

Многим из читателей знаком дистрибутив Armbian - “серебряная пуля” для владельцев устройств серии Orange Pi. Без “этих ребят” наши одноплатники давно пылились бы на антресолях.

Возможно, кто-то уже убедился, что “ядра” под определенный процессор от Allwinner (H2/H3/A20/A10) одинаковые, а “дистрибутив” различается только настройками script.bin (для legacy-ядер) или uboot и Device Tree.

Механизм Device Tree был введен в ядрах 4.x для облегчения портирования Linux на новые устройства. Это файл, описывающий “дерево устройств” в некотором универсальном виде. При старте системы он передается в качестве параметра загрузчику, который уже в свою очередь правильно инициализирует систему. Вроде так :).

Таким образом открываются возможности для установки Armbian даже на те устройства, где он официально “не существует”.

Во избежании недоразумений - всё нижеописанное относится к устройствам на Allwinner A10/A20, других у меня в данный момент нет :) или они поддержаны.

Для этого есть два пути:

  • Путь правильный - собирать свою систему, благо разработчики Armbian предоставляют такую возможность. Нужно выбрать загрузчик под своё устройство, который будет использовать нужный DT-файл. Вполне годный вариант, если вы точно знаете, что у вас за девайс, и он поддержан в исходниках ядра linux-sunxi.
  • Путь неправильный - выбрать “похожий” вариант устройства и подкрутить его DT-файл. Потребуется куча усилий, но в результате вы можете вернуть к жизни какой-нибудь убогий девайс на Android 4.0.4.

Ясное дело, я выбрал путь второй (устройства черти-какие). Помня успешный опыт установки legacy-ядер от уважаемого romanrm от Cubieboard/Cubieboard2 на чудо-устройства из Поднебесной я решил попробовать установить mainline-версию Armbian на выводок устройств с КДПВ (картинки-для-привлечения-внимания).

Итак, слева направо:

  • Подделка под MK808C. Работает на Allwinner A20, но, в отличие от оригинала имеет всего 512 мегабайт памяти. Про оригинал можно почитать вот тут. Прошивка Android 4 для него есть, как пишут на 4pda - получена от продавца. Так что никаких кастомов и обновлений, то есть тупиковая ветвь эволюции. “Похож” на Cubieboard 2.
  • Measy U1A. Типа бренд. Allwinner A10, 1 гб памяти. Из положительных вещей - на нём работает Cyanogen. “Похож” на Cubieboard 1.
  • Странный образец по имени Intcrown. Очень похож на предыдущий, но вот только Cyanogen поставить нельзя (другой WiFi чип), есть какая-то прошивка на 4pda, искать в теме про MK802II (даже вспоминать об этом не хочу). Опять-таки похож на Cubieboard 1.

Ну а дальше всё просто - качаем дистрибутивы Armbian для Cubieboard 2 и 1, пишем на microSD и грузим. Небольшая загвоздка с Cubieboard 1 - в Armbian он помечен, как deprecated, т.е. ветка не развивается, но, к счастью, образ доступен для скачивания.

С удивлением обнаруживаем, что система вполне себе стартует, но в dmesg видим массу “красноты”, ибо у нас нет ни Ethernet, ни Sata, ну может ещё пары устройств. На этом этапе лучше обновить систему командами apt-get update и apt-get upgrade.

И тут начинается некоторая магия. Примеры будут для Cubieboard 1, для второй версии принцип тот же.

Шаг первый

Делаем копию DTB-файла, который будем мучить.

cd /boot/dtb sudo cp sun4i-a10-cubieboard.dtb sun4i-a10-cubieboard_patched.dtb

В файле /boot/armbianEnv.txt добавляем строчку:

Перегружаем устройство и проверяем, что всё работает, как до редактирования.

Шаг второй

Для начала нужно декомпилировать dtb-файл в формат, пригодный для редактирования.

dtc -I dtb /boot/dtb/sun4i-a10-cubieboard_patched.dtb -O dts -o /boot/dtb/sun4i-a10-cubieboard_patched.dts

Шаг третий

Теперь открываем полученный .dts и редактируем. Хороший вопрос - что и как убирать :) Смотрим в dmesg, находим несуществующие устройства типа ethernet, sata, ir и меняем их статус из “okay” на статус “disabled”.

Вот пример для sata:

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

dtc -I dts /boot/dtb/a10-cubieboard_patched.dts -O dtb -o /boot/dtb/a10-cubieboard_patched.dtb

Финально я лично получил вполне работающую систему. Главное тут - “не перехимичить” с устройствами, иначе останетесь без USB или там hdmi-вывода.

Шаг четвертый, последний и необязательный

В armbianconfig отключите обновления uboot и ядра. Это полезно, если не хотите повторять все приседания или гадать, почему система не грузится после обновления этих компонентов.

На выходе - правильно работающее устройство с ядром 4.x, которое вполне справится с задачами домашнего сервера.

Что ещё можно сделать? Например, для первого и третьего девайса на фотографии установить в nand систему на legacy ядре. В этом случае, правда, придётся выполнять отключение в script.bin - как его редактировать, можно почитать в документации на linux-sunxi. Но устанавливать не просто систему, а с GUI - ведь там будет работать аппаратное ускорение. И карманная рабочая станция вполне готова к работе :), а про винтажный Android забыть, как про страшный сон - всё равно прошивки скоро невозможно будет найти.

Да, кстати, если кто-то будет собирать какие-то 3rd-party драйвера с гитахаба в Armbian, тут нужно выполнить ещё один шажок, а именно:

После этого драйвера вполне себе собираются.

На этом вроде всё. Пожалуй, про Android-свистки уже хватит, много уже про них написано.

Поскольку предыдущая статья получилась очень уж объёмной, я решил разбить её на две части.

В этой части я рассмотрю некоторые аспекты настройки системы и устройств ввода, таких как кнопки планшета, тачскрин и G-сенсор.

armbian-config

Я уже использовал утилиту armbian-config , которая позволяет произвести некоторые настройки системы.

armbian-config

Пункт Timezone позволит настроить часовой пояс.

Пункт Install запускает процедуру установку системы на другие устройства. Например можно перенести систему на встроенную в планшет NAND память и не использовать для этого SD карту. Конечно в этом случае, можно будет распрощаться с Android-ом.

WiFi этот пункт я уже использовал, для подключения к точке доступа.

Hotspot создать свою точку доступа. В случае планшета - это не актуально.

Hold полезный пункт, позволяющий предотвратить обновление пакетов ядра и поддержки железа. Без “заморозки” можно при очередном обновлении окирпичить систему.

Softy установка пакетов приложений для решения типовых задач.

Monitor простой лог загрузки системы.

Fexedit редактор script.bin. Но я предпочитаю делать это руками через консоль.

Bootenv редактор файла /boot/armbianEnv.txt .

Network редактор файла /etc/network/interfaces .

Services управляет загрузкой системных сервисов при старте системы.

Welcome управляет информацией, которая будет отображена при логине в систему. Можно отключить лишнее, например здоровый баннер с надписью Cubieboard .

Nightly переключает систему на ветку нестабильных пакетов ночных билдов. На ваш страх и риск.

Switch позволяет выбрать свежее ядро для системы. Но там отсутствуют интересные возможности, такие как поддержка NAND.

Swap файл

Armbian по умолчанию использует swap-файл /var/swap. Т.е. когда оперативной памяти будет не хватать, система начнёт выгружать данные на SD карту или NAND память, что медленно и не полезно для таких устройств.

Что бы отключить использование свопа необходимо в файле /etc/fstab закомментировать строчку

и перезагрузить систему.

Имя системы

После установки имя системы cubieboard .

Что бы изменить его, надо отредактировать файл /etc/hostname и перезагрузить систему.

Устройства планшета

В принципе, программа минимум уже достигнута:

Кстати, что бы посмотреть на экране, что нибудь повеселее, чем приглашение ко входу можно дать из консоли SSH команду:

И понаблюдать за загруженностью системы уже на экране планшета.

А можно быстренько протестировать фрейм-буфер командой которая заполнит экран мусором:

Заодно можно оценить скорость заполнения.

Но отложим работу с дисплеем на потом, а займёмся другими устройствами планшета.

G-sensor

Он же акселерометр. В планшете установлен чип mma7660 .

Для его использования достаточно подкючить модуль ядра:

Если всё успешно, то в каталоге /dev/input появится дополнительное устройство event* (в моём случае event2 ), а так же устройство js* ( js0 ). Т.е. с точки зрения ядра - акселерометр - это джойстик.

Что бы акселерометр был доступен сразу после загрузки системы следует добавить строчку mma7660 в файл /etc/modules-load.d/modules.conf .

Проверить работу акселерометра можно командой

Можно так же установить пакет apt install joystick и дать команду jstest --normal /dev/input/js0 , но он подтянет за собой ещё клиентские библиотеки X-сервера и некоторые звуковые библиотеки.

Touch screen

В данном планшете используется контроллер ёмкостного тачскрина Goodix GT801 и это ещё одна причина, почему понадобилось legacy ядро - для него есть модуль.

Что бы модуль заработал, потребуется внести изменения в script.bin .

Я внёс следующие правки в d70gt_script.fex :

  • Секцию [ctp0_para] переименовал в [ctp_para] .
  • Имя чипа ctp_name = "Goodix-TS-1GT801" переименовал в ctp_name = "Goodix-TS" .
  • Изменил параметр ctp_screen_max_x = 1280 .
  • Изменил параметр ctp_screen_max_y = 768 .

Размеры тачскрина не соответствует реальным размерам дисплея. Это сделано специально, поскольку драйвер в составе armbian понимает только два разрешения: 800*480 и 1280*768 . Конечно можно взять исходные коды ядра, добавить в драйвер нужное нам разрешение и пересобрать модуль. Но это я отложил на потом.

Теперь можно конвертировать скрипт fex2bin d70gt_script.fex /boot/script.bin и перезагрузить планшет.

Проверим, что модуль успешно загружается:

Механические клавиши

Поддержка клавиш планшета осуществяется загрузкой модуля sun4i_keyboard .

Наверное одно из самых недолговечных домашних электронных устройств - это планшет. Недлоговечное не в плане быстрой поломки (хотя и такое за ними водится), а в плане быстрого устаревания.

ПО ориентируется на флагманы, а устройство из среднего или низшего ценового диапазона ещё год назад вполне сносно работавшее вызывает только желание приложить его об стену.

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

В любом случае, пока живы “мозги” планшета, можно постараться извлечь из планшета пользу установив на него ОС с ядром Linux.

Ради такого дела был извлечён из закромов планшет промаркированный Icoo D70GT . В целом данная методика подойдёт и для других планшетов на базе Allwinner процессоров.

Icoo D70

Характеристики я нашел на Icoo D70W:

  • Android 4.0.3 (ICS)
  • CPU: All Winner A10, 1.2GHz; -GPU: Mali 400
  • Оперативная память (RAM): 1GB,DDR3
  • Емкость аккум: 3600 мАч
  • Встроенная память: 16GB
  • Экран: емкостный, 1024 x 600
  • WiFi 802.11 b/g/n
  • Камера: 1.3 Мпикс (gc0308)

Icoo D70GT попроще. Реальные отличия в характеристиках:

  • Емкость аккум: 3100 мАч
  • Встроенная память: 8GB
  • Экран: емкостный, 1024 x 600, но с плохими углами обзора.
  • Камера: 0.3 Мпикс Сенсор gc0308 по данным script.bin с разрешением 640x480.
  • WiFi 802.11 b/g/n (0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter)

Максимальная частота в 1.2GHz вызывает сомнения, по крайней мере когда я попробовал поднять максимальную частоту до 1.2Ghz и запустил stress тест планшет очень быстро перестал откликаться на внешние раздражители. Так что пока, примем максимальную частоту за 1GHz.

Но пора переходить к практической стороне вопроса.

Выбор образа Armbian

Выбираем образ Armbian для платы с похожими характеристиками. Можно не угадать с первого раза и планшет не стартанёт.

Я взял образ для Cubieboard 1, причём не mainline kernel , а legacy .

Правда куби уже находится в неподдерживаемых устройствах, но нам и не нужны последние новшевства.

А образ с legacy ядром выбран из тех соображений, что с ним можно использовать script.bin и он поддерживает NAND память.

После скачивания архива, нужно распаковать его и записать образ на microSD карту объёмом не менее 2Gb. Будет большим плюсом, если карта будет обладать хорошей скоростью на чтение и запись.

Как выбрать карту и записать на неё образ можно прочитать в официальной документации Armbian.

Под linux-системами можно воспользоваться штатными средствами.

У меня система автоматически монтирует подключённые диски, так что предварительно необходимо размонтировать карту:

Для записи образа удобно воспользоваться утилитой ddrescure , она наглядно показывает процесс записи на карту:

Путь к устройству MicroSD карты зависит от количества дисковых устройств в вашей системе, у меня это /dev/sdc .

Если ddrescue не установлено, и нет желания или возможности его установить, можно воспользоваться обычным dd .

Извлечение script.bin

Для нормальной работы планшета под управлением Armbian требуется файл инициалзиации script.bin он данного устройства.

Пока одной рукой я качал и записывал образ Armbian, другой рукой извлекал этот файл из android-прошивки планшета.

Прежде всего установил adb . На debian-based системах это делается одной командой:

После установки, подключил планшет к ПК по USB. Отладка по USB должна быть разрешена.

Зайдя в шелл планшета через adb

я сделал дамп раздела nanda (boot раздел) целиком, потому что смонтировать его непосредственно на планшете у меня не получилось. Возможно ещё придётся выполнить на планшете su для перехода под суперпользователя.

Следущим шагом скопировал полученный образ раздела:

После этого смонтировал образ из файла локально и извлёк из него script.bin .

Копию я заботливо сохранил d70gt_script.bin.

Редактирование script.bin

Как видно из расширения, этот файл имеет определённый бинарный формат, и не предназначен для редактирования человеком.

Для решения этой проблемы в составе Sunxi tools присутствует конвертер sunxi-fexc и обёртки для него bin2fex и fex2bin .

В образе Armbian эта утилита уже присутствует, для пк её понадобится собрать самостоятельно, как - описано на странице sunxi tools, или установить из репозитория ос. например: sudo apt install sunxi-tools .

Я преобразовал полученный script.bin в текстовый формат:

и отредактировал полученный файл своим любимым текстовым редактором.

Для начала я изменил два параметра в секциях [usbc0] и [usbc2] , что бы usb порты были доступны сразу после загрузки (внимательный читатель уже обратил внимание, что fex файл схож по формату с ini файлом).

Параметры называются одинаково:

И всё что требуется - лишь заменить 0 на 1 :

Это укажет, что при загрузке устройство должно активировать USB порты.

Нулевой порт - это OTG порт, а на втором порту подключен WiFi модуль.

В этом планшете порт 1 не используется, поэтому он запрещён в секции [usbc1] с помощью параметра

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

Подробнее о параметрах fex файлов можно почитать на странице Fex Guide.

После того, как файл отредактирован, я сохранил его и конвертнул обратно в script.bin .

Обратите внимание, что я сохранил результат в новый файл new_script.bin, что бы не потерять оригинальный.

Подготовка системы

К этому моменту исходный образ Armbian уже записан на microSD. Для надёжности, я делаю ещё раз sync .

Подмонтировав свеже записанный раздел, я заменил script.bin новым:

Теперь пришло время настроить сетевой интерфейс.

В файл <sdcard>/etc/network/interfaces требуется добавить следующие строчки:

Что бы интерфейс появлелся, необходимо добавить в загрузку модуль ядра g_ether . Просто добавляем его в файл <sdcard>/etc/modules-load.d/modules.conf .

Всё это позволит использовать USB OTG планшета, как виртуальную сетевую карту и соединить таким образом планшет и ПК.

Теперь размонтирую SD карту и безопасно её извлекаю, вставляю карту в планшет.

После включения планшета, или перезагрузки из андроида планшет загрузит Armbian с SD карты.

Всё было сделано верно, и на экране появилось приглашение ко входу.

Login screen

На скриншоте виден кусок лога, я не разбирался почему, но иногда лог загрузки выводится, а иногда нет.

Подключение по сети

“Почему же сразу нельзя было настроить WiFi?” спросите вы. Да, на более другом планшете можно было это сделать, но не в этом случае.

Всё дело в том, что в планшете используется WiFi модуль Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter, а в использованном нами образе Armbian-а подключаемый модуль ядра для этого устройства присутствует, но собран для архитектуры sun5i, а само ядро для архитектуры sun4i.

Вот эта ма-аленькая деталь, не даёт его нормально использовать.

Поэтому для начала я и стал устанавливать соединение с великой паутиной по тому интерфейсу, который доступен.

Подключил планшет к ПК USB кабелем. Не следует использовать низко-качественные кабели - поимеете кучу проблемм.

В логах dmesg на ПК можно посмотреть, что было создано новое сетевое устройство:

Сперва как usb0, а затем переименовано в enp0s29u1u5 .

На вашей системе оно будет иметь другое имя, а может так и остаться usb0.

Теперь настраиваю новый интерфейс на ПК.

Но на самом деле не всё так просто оказалось. Возможно это проблема моего планшета, но интерфейс на ПК периодически отваливался и терял настройку. Так что я прописал настройки статического IP через Network Manager, что бы при поднятии интерфейса он автоматически выставлял нужный IP.

Так же разово прописал маскарадинг, что бы наш планшет мог ходить в интернет.

Наконец настало время осуществить торжественный вход на планшет. По SSH.

Соединение через USB получилось довольно тормозное, так что надо подождать и не паниковать.

По-умолчанию для пользователя root задан пароль 1234 .

После успешного входа, armbian произведёт предварительную самонастройку, запросит изменение пароля root и создание нового пользователя, расширит раздел на SD карте на весь доступный объём.

Arbian попросил перезагрузить систему, для завершения настройки и я удовлетворил его желание командой reboot .

SSH позволяет входить на отдалённую систему не только по паролю, но и по RSA ключам. Это удобнее и безопаснее, так что можно скопировать свой публичный ключ на планшет командой ssh-copy-id root@192.168.99.70 и облегчить себе процедуру входа.

Дождавшись окончания перезагрузки (это видно на экране планшета, по появлению приглашения ко входу) я опять вошел на планшет и проверил, что мировая сеть доступна.

Если по каким-то причинам настроить маскарадинг не удалось, можно установить на ПК какой-нибудь прокси-сервер, например tinyproxy . Для обновления системы через apt его вполне хватит.

Если используется прокси, то надо будет на планшете указать его адрес.

Теперь обновляю систему целиком с помощью apt .

Потребовалось запастись терпением, что бы дождаться завершения процесса установки. Сама загрузка пакетов происходит достаточно быстро, а вот распаковка пакетов дело долгое. Особенно долго распаковывается ядро и его заголовки.

Перед выполнением команд обновления, можно запустить screen или tmux . В случае потери соединения процесс обновления не прервётся и к нему можно будет вернутся командой screen -r ( tmux a ).

Уф, я не засекал, сколько времени длилось обновление системы, но по ощущениям это было от получаса до часа. Время сильно зависит от скорости записи на SD карту.

Теперь можно в очередной раз перезгрузить систему командой reboot и опять войти на планшет.

В обновлённой системе модуль 8192cu успешно загрузился. В этом можно убедится дав команду lsmod | grep 8192cu .

Так же можно убедиться, что WiFi интерфейс стал доступен:

Настроить подключение к точке доступа проще всего с помощью ncurses утилиты armbian-config которая была установлена при обновлении.

Интерфейс у неё простой и понятный, так что не вижу смысла подробно останавливаться на ней.

Отмечу только, что соединение устанавливается посредством NetworkManager и доступные конфигурации лежат в каталоге /etc/NetworkManager/system-connections/ .

В завершении откроем файл /etc/network/interfaces и закомментируем одну строчку ранее добавленную при настройке интерфейса usb0 :

Если это не сделать, то планшет будет пытаться ходить в интернет через USB сетевое подключение, а это совершенно не нужно.

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

Теперь для чистоты эксперимента перезагрузим планшет (любимая команда reboot ) и после перезагрузки зайдём на планшет уже по WiFi.

Я понимаю, что телефон без звонилки – уже не телефон. Однако проскакивает такой вопрос в голове моей.

Суть такова: настраивается супергипер эмуляция процессора arm, подключаются к виртуалке флеха с дебианом и телефон на андроиде. Потом происходит обычная установка Debian Gnome, только в качестве диска указывается не хард виртуалки, а телефон. И потом перезагрузка телефона. Будет ли это чудо так работать?

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


Установка любого Linux на телефон или планшет на Android вместо последнего в первую очередь упирается в отсутствие драйверов и залоченность загрузчика на самом аппарате.

Vsevolod-linuxoid ★★★★★ ( 24.07.20 12:46:23 )
Последнее исправление: Vsevolod-linuxoid 24.07.20 12:49:42 (всего исправлений: 3)


Можно запустить линукс только через chroot (с правами root) или proot (без прав). Какие-то другие варианты установки требуют от тебя флагманской модели.

Во-первых, там вроде как бздя.

Во-вторых, я так и не нашел в нем крысу, гном или кеды.


Vsevolod-linuxoid ★★★★★ ( 24.07.20 12:58:52 )
Последнее исправление: Vsevolod-linuxoid 24.07.20 12:59:33 (всего исправлений: 1)

простите, да, линух. А крысы нет, unable to locate package xfce4.

ps. Просто не думал, что в линухе есть pkg. pps. Говорят установить xorg-repo, такого пакета тоже нет

zagatov_lev ★ ( 24.07.20 13:03:33 )
Последнее исправление: zagatov_lev 24.07.20 13:07:25 (всего исправлений: 1)

Ну, чисто линукс на телефоне уже давно есть, это - postmarketOS. Ссылку выше уже привели.

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

Я лично, вижу другую схему использования линукса на андроид-смартфоне: запуск линукс-дистрибутива под ARM в контейнере на базе текущего ядра ведроида и удалённый доступ к нему по сети через SSH, Xpra и подобные решения. Xpra в теории может даже 3D ускорение устройства юзать (на практике, всё совсем не так хорошо).

Тут уже возникают другие проблемы ведроида: довольно специфическое ведро в котором часто отсутствует функционал нужный для полноценной контейнеризации, проблемы с SELinux, который в новых ведроидах идёт по-умолчанию, и много других подобных мелочей.

Я пытался организовать себе подобную контейнеризацию добавив всё необходимое в конфиг ядра и кастомную сборку LineageOS - вроде даже получилось что-то работоспособное и не такое тормозное как существующие решения для ведроида, но это, всё-таки решение не для каждого.

DawnCaster ★★ ( 24.07.20 13:05:41 )
Последнее исправление: DawnCaster 24.07.20 13:13:49 (всего исправлений: 1)

А эмуляторы arm есть, которые нормально работают с usb устройствами?


Ты читать доки будешь? Там четко сказано: нужно подключить репозиторий с x11 программами!

И как в контейнере на Android, который на ядре Linux, может быть BSD, если контейнер — это не виртуальная машина, и он использует ядро хоста?

И там не совсем pkg, как я понял, тамошний pkg — это просто надстройка над apt, причем сам apt тоже пашет.

Vsevolod-linuxoid ★★★★★ ( 24.07.20 13:08:47 )
Последнее исправление: Vsevolod-linuxoid 24.07.20 13:08:56 (всего исправлений: 1)

Ничего такого там нет.

Я пытаюсь его подключить, но он не подключается. unable to locatepackage x11-repo.


У тебя вообще хоть что-то ставится? Что выдает


Хм. у меня Xfce на Termux пашет, завел по инструкции с wiki.

Установил. как я понял, нужно vnc на компе?


Или на самом телефоне. 127.0.0.1 никто не отменял. Хотя у меня лучше работает X-server для Android.


Буду краток. Ненужно. А если очень хочется, то Linux deploy. Это не эмуляция, а chroot. Даже через фреймбуфер заводили вывод, а не через тормозной vnc. А вообще я его использовал как удалённый сервак, тренироваться. По WiFi цепанулся с компа и сиди себе, настраивай

Ну просто так, попробовать, какого это. Все равно телефон даже на запчасти не разберешь.


Ну тогда Linux deploy твой путь

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


Всё достаточно сложно, чтобы просто сказать никак.

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

Если запускать на голом железе, то проще продать свою мобилу и купить другую, из тех что поддерживается SailfishOS… Да, Sailfish, не postmarket. В этом случае хотя бы можно пользоваться телефоном как телефоном с довольно необычным, но всё же удобным интерфейсом.

Салифиш платный, нет?


Только с поддержкой Android приложений.

В целом, если хватает денег на Xperia XA2, то можно и купить лицензию. Я не пожалел, когда брал на Xperia X, жалко само устройство уже попало мне юзанным и быстро пришло в негодность.

a1batross ★★★★★ ( 24.07.20 16:19:56 )
Последнее исправление: a1batross 24.07.20 16:21:10 (всего исправлений: 1)


Возможно ли установить Debian ARM на телефон с Android?

Обычно если человек задаёт такой вопрос, ответ: «нет».

подключаются к виртуалке флеха с дебианом и телефон на андроиде. Потом происходит обычная установка Debian Gnome, только в качестве диска указывается не хард виртуалки, а телефон.

  • Ты не получишь так доступ к внутренней флеш-памяти, где ОС стоит;
  • Загрузчики первых стадий специфичны для конкретных моделей железки;
  • Драйверов оборудования нет;
  • Конфигурации оборудования специфичны для конкретных моделей;
  • Настольными системами тяжело даже на планшетных ПК пользоваться, если нет клавиатуры и мыши. Чего уж там о телефоне говорить с его крохотным экраном.

Всё может быть. Только шансы исчезающе малы.

Для успеха нужно потратить намного больше времени и сил, чем ты рассчитывал на эту затею выделить.

чего уж там о телефоне говорить с крохотным экраном

Крохотный? У меня монитор на ноутбуке чуть больше современных телефонов. Тлф 5.5”, ноут 7”. Искренне не понимаю, как можно работать с монитором больше.


Что за модель такая?


И твоя «работа» на нём это игры, так?


На стандартный нет, нельзя.

На pinephone можно.

Ну, офис, игрушки консольные, интернет.


fehhner ★★★★★ ( 25.07.20 00:49:02 )
Последнее исправление: fehhner 25.07.20 00:49:27 (всего исправлений: 1)


только в качестве диска указывается не хард виртуалки, а телефон

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

И потом перезагрузка телефона. Будет ли это чудо так работать?

Так просто - не будет. Фирмварь телефона не имеет механизма поиска загрузчика или ядра ОС на файловых системах вроде менеджера загрузки EFI, в ней захардкожен участок накопителя с которого следует грузить ядро, т. е. отдельный раздел который вместо файловой системы содержит образ ядра в особом формате mkbootimg. Если ты сумеешь его туда правильно записать - оно теоретически загрузится, но не сможет ничего сделать т. к. не сможет обнаружить никаких устройств кроме описанных самой архитектурой arm. Потому что у фирмвари телефона нету механизма передачи описания устройств от фирмвари вроде ACPI. Вернее, есть device tree, но на всех этих телефонах он не работает лол. То есть, дерево, которое передает ядру uboot, содержит только те устройства, которые нужны самому uboot для того чтоб загрузить ядро, при этом предполагается, что в собранном конкретно для этого телефона ядре должно быть вкомпилено полное дерево. О драйверах устройств пока что даже речь не идет, заметь.

Читайте также: