Android-планшет как моноблок (а почему бы и нет?)
Android 7 c ядром 3.10.65
Стандартный для седьмого андроида лаунчер (Launcher3 вроде называется).
1 гигабайт ОЗУ.
1.3 ГГц процессор. Mali 400.
Дома как моноблок (всегда любил моноблоки, но они слишком дорогие).
Как это работает? Когда нужно много заниматься писаниной или работать с десктопыми сайтами, то к планшету подключается хаб с воткнутыми туда клавиатурой и мышью. Когда нужно просто почитать книгу или позаниматься другими повседневными делами, которыми занимаются за планшетом (видео на юубе посмотреть, в ВК посидеть. ), то это дело отключается и можно воткнуть зарядку. Планшет одет в чехол-кнжку умеющий превращаться в подставку, так что с горизонтальным положением проблем не возникает.
Браузер — Tint Browser
Для apt и консольных линуксовых утилит — Termux
Магазин приложений — F-Droid
Для доступа к базе данных паролей — KeePassDX (классная штука)
Все остальное — взято в основном из F-Droid, несколько прог с 4PDA (FicLet и Kate, YouTube)
Войдите, чтобы ставить лайки мне нравится
войдите, чтобы ставить лайки
- Опубликовано: 16.09.2020
- ReiCode
Смартфон как системный блок, почему нет?

Linux Deploy от Антона Скшидлевского aka meefik
Современные смартфоны по CPU и объёму оперативной памяти практически сравнялись с настольными компьютерами и ноутбуками: не редкость 8 ГБ оперативной памяти и флэш-накопитель на 512 гигабайт. Например, в последнем айфоне 6-ядерный CPU и 4-ядерный графический процессор, причём CPU сделан по 5-нанометровому техпроцессу. Сейчас ни один CPU для настольных компьютеров не производится по такой технологии. То есть мы дошли до того, что технический прогресс сначала обслуживает смартфоны, потом ноутбуки, а до настольных компьютеров доходит в последнюю очередь.
Возникает вопрос, а почему бы не использовать смартфон как системный блок? Если у него такие мощные характеристики, такой продвинутый CPU и столько памяти, и он всё равно лежит в кармане, так пусть приносит пользу. Давайте добавим ему недостающие части — подключим большой монитор, клавиатуру и мышь.
Всё-таки удобнее вводить команды в Linux-консоли с клавиатуры, а не прицеливаться пальцами по экрану.
«Режим десктопа» на смартфонах
Некоторые смартфоны не заменяют нормальный компьютер, а просто эмулируют десктопный режим.
Например, в ноябре 2019 года вышел складной Huawei Mate Xs стоимостью около $2600. Он работает под Android 9.0 Pie, но в режиме Desktop Mode его можно использовать как системный блок настольного компьютера.

В этом режиме к смартфону подключается внешний дисплей/телевизор и клавиатура. Операции на телефоне не влияют на то, что отображается на внешнем дисплее. Например, вы можете редактировать документ на внешнем дисплее во время разговора по телефону. Уведомления, звонки или сообщения на телефон сигнализируют на внешний дисплей в виде красной точки.

Для системного блока характеристики вполне нормальные: 8 ГБ оперативной памяти, процессор Kirin 980, модем Balong 5000 5G. Оба чипа производства Huawei. Компания давно заявляла, что её процессоры вдвое превзойдут по производительности чипы конкурентов. В данном случае конкурентами являются Qualcomm Snapdragon и Samsung Exynos. Из других характеристик: 512 ГБ флэш-памяти, батареи 4500 мАч (общая ёмкость двух аккумуляторов), функция быстрой 55-ваттной зарядки до 85% за 30 минут.
Аналогичный десктопный режим (Desktop Mode) есть и на других смартфонах, в том числе Galaxy S10, Galaxy Note 9, Huawei P20, P20 Pro, Mate 10/10 Pro, Mate 20 X, P30, Honor Magic 2 (десктопный режим у Huawei) и другие.
Для подключения телевизора выпускаются переходники с USB-C на HDMI.

Адаптер USB-C/HDMI
Есть вариант беспроводного подключения смартфона к ТВ по стандартному протоколу Miracast, если телевизор его поддерживает.
Например, у Huawei в таком режиме экран смартфона работает в качестве тачпада или мышки для управления курсором на экране телевизора.

Обычные клавиатура и мышь подключаются по Bluetooth.
Самое главное, что в версии Android Q (Android 10) десктопный режим добавили в качестве стандартной функции, причём с поддержкой сторонних лаунчеров (Nova, Apex и др.).
Если раньше это была «элитная» функция в топовых моделях, то в самое ближайшее время она станет обычной для многих современных смартфонов.

Десктопный режим в Android Q
Но всё-таки «режим десктопа» — это не полноценный компьютер, а просто некая эмуляция. Да, есть внешний монитор, но мы по-прежнему работаем с Android-приложениями в этой операционной системе, просто проецируем картинку на большой экран.
Для нормального системного блока, конечно, нужна нормальная операционная система, то есть Linux.
Linux-смартфоны
На рынке есть несколько смартфонов, которые изначально проектируются с расчётом на установку операционной системы Linux и работу в десктопном режиме. Например, компания Canonical планировала выпускать собственный Ubuntu Phone на мобильной платформе Ubuntu Touch, но не получилось. Сама платформа была создана и предустанавливалась на некоторые смартфоны, но в 2017 году Марк Шаттлворт объявил о прекращении проекта. Дальнейшую разработку взяло на себя сообщество UBports. Первое обновление вышло 11.01.2019 (Ubuntu Touch OTA-7) для всех официально поддерживаемых смартфонов и планшетов, в числе которых: OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, BQ Aquaris E5/E4.5/M10. Сейчас в продаже можно найти некоторые из перечисленных моделей, которые изначально работают под UBports.
PinePhone
Один из самых известных настоящих Linux-смартфонов, которые изначально поставляются с Linux на борту, называется PinePhone. Его выпускает компания Pine64, производитель ноутбуков и одноплатных компьютеров-конкурентов Raspberry Pi.

Клавиатура, HDMI-монитор и зарядка подключены к смартфону через докинг-станцию USB-C (в центре)
PinePhone дешёвый ($150), но cо средними техническими характеристиками: чипсет Allwinner A64 с четырёхъядерным процессором ARM Cortex A-53 на 1,2 ГГц и графическим видеоускорителем Mali-400MP2, 2 ГБ оперативной памяти, 16 ГБ флэш-хранилища. Впрочем, в июле 2020 года была анонсирована продвинутая версия Community Edition: Manjaro With Convergence Package с 3/32 ГБ оперативной/флэш-памяти, ОС Manjaro Linux и докинговой станцией в комплекте за $200.
Такой смартфон можно использовать как портативную рабочую станцию системного администратора со всем необходимым программным обеспечением. То есть в любом месте вы подключаете монитор, клавиатуру — и запускаете стандартные рабочие инструменты в консоли Linux. С десктопа можно подключаться к интернету через 3G/4G телефона.
На смартфоне установлена postmarketOS на базе Alpine Linux — известный дистрибутив Linux для смартфонов.
Кроме postmarketOS, можно установить Ubuntu Touch, Sailfish OS и Plasma Mobile.
В октябре 2020 года состоялся релиз Fedora Linux, которую тоже можно установить на PinePhone.
Librem 5
Другой известный Linux-смартфон — это Purism Librem 5 на Debian Linux.

Смартфон Librem 5 работает в роли настольного компьютера с монитором, клавиатурой и мышью
Librem 5 работает на PureOS, полностью свободной опенсорсной операционной системе, которая не имеет отношения ни к iOS, ни к Android — это чистый Linux (почему это важно).
PureOS на основе GNU/Linux — стандартная операционная система для всех продуктов компании Purism, в том числе ноутбуков. Другими словами, в смартфоне реализована стандартная функциональность десктопной операционной системы, которая не отличается от такой же системы в ноутбуке The Road Warrior. Например, в смартфоне работает не мобильная версия Firefox, а самый обычный Firefox, как и на стационарном компьютере. То есть Librem 5 — фактически и есть стационарный компьютер, просто маленького размера. Хотя цена немного кусается: $749.

Технические характеристики: восьмиядерный процессор NXP i.MX 8M (Cortex A53) на 1,5 ГГц, графический ускоритель Vivante GC7000Lite GPU, экран 5.7″ (IPS TFT 720×1440), оперативная память 3 ГБ LPDDR4-3200, хранилище 32 ГБ eMMC, батарея 3500 мАч (сменная).
Телефон спроектирован по модульному принципу, чтобы облегчить ремонт, замену вышедших из строя комплектующих и апгрейд.

В качестве источника вдохновения разработчики называют универсальную операционную систему Debian, которая тоже портирована практически на все платформы и архитектуры CPU. Если посмотреть абстрактно на существующий зоопарк гаджетов, то действительно непонятно, зачем нужно так много совершенно несовместимых операционных систем — iOS, Android, Windows и так далее. Гораздо удобнее, когда абсолютно все устройства будут работать на единой свободной и открытой системе. Тогда везде можно запускать одни и те же приложения и у нас больше не возникнет вопросов, как использовать смартфон в качестве системного блока, потому что технически они не будут отличаться друг от друга на уровне операционной системы.
Зашифрованное хранилище паролей Password Safe одинаково работает на всех устройствах PureOS/Debian
Установка Linux на смартфон
С помощью специальных Linux-дистрибутивов отдельные смартфоны можно превратить в некое подобие компьютера.
Linux можно поставить двумя способами:
- Установка на «голое» железо, как postmarketOS.
- Установка утилиты chroot для смены рутовой директории текущего процесса, а уже затем Linux как второй системы.
postmarketOS
Опенсорсная система postmarketOS на базе Alpine Linux — один из дистрибутивов Linux, который разрабатывается специально для установки на смартфоны.

В настоящее время гарантируется нормальная работа на 11 моделях:
- Arrow DragonBoard 410c
- ASUS MeMO Pad 7 (ME176C(X))
- BQ Aquaris X5
- Motorola Moto G4 Play
- Nokia N900
- PINE64 PinePhone
- Purism Librem 5
- Samsung Galaxy A3 (2015)
- Samsung Galaxy A5 (2015)
- Samsung Galaxy S4 Mini Value Edition
- Wileyfox Swift

Кроме postmarketOS, можно упомянуть опенсорсные мобильные системы Sailfish OS и LuneOS на ядре Linux, а также LineageOS (бывшая CyanogenMod) и Replicant на базе Android.
Установка через chroot
Вот список приложений и скриптов для установки chroot на Android с последующей инсталляцией Linux:
- Lil’ Debi
- DebianKit
- Linux Deploy от Антона Скшидлевского aka meefik
- GNURoot
- debox
- Complete Linux Installer
- DebKit
- Termux: окружение Debian/Ubuntu устанавливается без рутового доступа
- MaruOS: использует Linux-контейнеры
- UserLAnd
- Debian Noroot
- AndroNix
Linux Deploy
Linux Deploy — опенсорсное приложение с открытым исходным кодом для простой и быстрой установки GNU/Linux на Android.
Приложение создаёт образ диска на флеш-карте, монтирует его и устанавливает туда дистрибутив ОС. Приложения из новой системы запускаются в chroot окружении параллельно со штатной работой платформы Android. Установка дистрибутива производится с официальных зеркал в интернете. Для работы нужны рутовые привилегии.



Во время установки программа сама настраивает рабочее окружение, которое включает в себя базовую систему, сервер SSH, сервер VNC и графическую среду на выбор. Также через интерфейс программы можно управлять параметрами сервера SSH и VNC.
Установка новой ОС занимает около 15 минут. Поддерживаемые дистрибутивы: Alpine, Debian, Ubuntu, Kali, Arch, Fedora, CentOS, Slackware, Docker, RootFS (tgz, tbz2, txz). Поддерживаемые архитектуры: ARM, ARM64, x86, x86_64, режим эмуляции (ARM ~ x86). Способы подключения к контейнеру: CLI, SSH, VNC, X-сервер, фреймбуфер. Интерфейсы управления (CLI): Android-терминал (или adb), telnet, веб-интерфейс (терминал через браузер). Окружение рабочего стола: XTerm, LXDE, Xfce, MATE, другое (ручная настройка). Инструкции и руководства см. здесь.
Termux
Termux — эмулятор консоли и Linux-окружение под Android, которое устанавливается как обычное приложение под Android и не требует рутового доступа.


Пожалуй, это самый простой способ запустить Linux-инструменты на Android: терминалы Bash, fish или Zsh, текстовые редакторы nano, Emacs и Vim, привычные grep, curl и rsync. Поддерживается пакетный менеджер APT, так что на телефон можно поставить практически любой софт: последние версии Perl, Python, Ruby и Node.js, что угодно.
Подключаем по Bluetooth клавиатуру и дисплей — и можно полноценно работать почти как за обычным Linux-компьютером. Termux поддерживает стандартные сочетания клавиш и работу с мышью.
Это практически идеальный терминал, да ещё с пакетным менеджером.
Подводя итог, если мы хотим использовать как полноценный компьютер под Linux, то у нас есть три основных варианта:
- Купить настоящий Linux-смартфон: PinePhone, Librem 5 или модель на UBports
- Накатить Linux-дистрибутив: postmarketOS или любой дистрибутив через Linux Deploy
- Установить Linux-окружение практически на любой смартфон (Termux)
Затем остаётся лишь подключить внешний дисплей и/или клавиатуру.
С другой стороны, несколько дней назад вышла Ubuntu 20.10 (Groovy Gorilla): великолепная система с поддержкой Raspberry Pi. Согласно опросу на Хабре, Ubuntu — это самый популярный дистрибутив Linux у нашей аудитории, и теперь он впервые официально поддерживает Raspberry Pi. Получается, что отличное десктоп-окружение работает на одноплатнике за $35, который по техническим характеристикам практически не уступает смартфонам от $150 до $2600, парадокс.
На правах рекламы
Закажи и сразу работай! Создание VDS любой конфигурации и с любой операционной системой в течение минуты. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Эпичненько 🙂
Воздушная крепость на Esperient Creato — Страница 1
Открываю этот WIP в рамках небольшого соревнования с AndroniX, а также для изучения движка Esperient Creator.
В качестве референса выбрал свою же работу. Работа нигде не выставлялась, в её теперешнем виде и тоже подлежит обсуждению. Правда может кто помнит её со времён прошлой звёздной лиги.
Не думаю, что удастся сохранить хотя бы один объект не изменённым, однако общие очертания хотелось бы оставить. Задача спланировать внутренние помещения. Просто место где можно побегать. Игровое действие пока не планируется, хотя есть задумки. Вот что осталось после удаления лишнего.
ainex 135.2 618.2 30 октября 2010 в 18:58 # 0
А мне нравится старая, думаю по новой ваще классно будет
Mihanik 266.5 843.8 30 октября 2010 в 19:55 # 0
Спасибо на добром слове. Но я не собираюсь делать ремикс картины. Я собираюсь сделать EXEшник, запустив который, любой желающий сможет походить внутри этой крепости. Сделать так чтобы картинка с игрового движка была красивее и реалистичней чем максовский ренд наверное не возможно.
Ringov 30.0 39.1 30 октября 2010 в 21:12 # 0
Круто! Чувствуется нешутошный батл
Mihanik 266.5 843.8 30 октября 2010 в 22:20 # 0
bubli56 Какой батл? Лига чемпионов, наше соревнование с AndroniX, или тот, что можно разыграть по этой сцене?
Ringov 30.0 39.1 30 октября 2010 в 23:07 # 0
Соревнование с Андрониксом
industrialudaf 2.6 17.6 31 октября 2010 в 02:47 # 0
я бы эти четыре башни продолжил вниз, ввиде нескольких колонн — подпорок ( и статичней будет и угол по сложней получится, в котором можно будет запутаться от страха, если кто-нибудь будет тебя догонять ). Так же обязательно сделал доступным выход (через окна)с центральной башни на крыши этих четырёх зданий. Самые верхушки башен соеденил бы узкой досточкой, с которой падать не рекомендуется в виду скоропостижной кончины по прибытию на землю. А так же можно катакомбочек нарыть. Ну и, конечно — лифты.
Mihanik 266.5 843.8 31 октября 2010 в 08:21 # 0
industrialudaf Все предложения справедливы, пожалуй кроме лифтов. Все-таки это фэнтази, и в летающей крепости лифт… ну если только на магии работает…
industrialudaf 2.6 17.6 31 октября 2010 в 14:33 # 0
Лифты, это вспоминая Unreal Turnament. Смотри сам, мы сыпим — ты фильтруешь.
AndroniX 30.0 20.8 31 октября 2010 в 14:53 # 0
Отлично! Мне нравится идея! Батл конечно ради интереса, но зато поджигает интерес не сидеть на месте. Если еще кто то хочет присоединиться, на удк, или еще каком движке, милости просим. Так даже интереснее 🙂
Mihanik 266.5 843.8 31 октября 2010 в 16:16 # 0
Лифты, это вспоминая Unreal Turnament. Смотри сам, мы сыпим — ты фильтруешь.
Всё правильно, для этого WIP и существует, Бъюсь над общими очертаниями. Хоть для себя определиться, для чего нужна та или иная постройка, советы очень нужны.
AndroniX Да, если бы ты не открыл свой WIP, и не предложил это соревнование, я наверное и не начал. Работы много, проект будет долгим, будем подгонять друг друга, может и доведём до конца.
Народ, кто хочет попробовать себя в игрострое, присоединяйтесь.
Mihanik 266.5 843.8 31 октября 2010 в 18:39 # 0
Вот перемоделил стены, пристроил к ним портик для доступа к пушкам, поэкспериментировал с одной из башен стражей воды. Определяюсь с назначением основных зданий. Не знаю, где у меня главный колдун жить будет, ну или командный состав.
Жду советов по архитектуре крепости. Вообще план такой: моделю всё в максе пока не определюсь с основной геометрией, потом детализую каждое помещение, и по одному переношу их на движок.
AndroniX 30.0 20.8 1 ноября 2010 в 08:55 # 0
Главное соблюдай размеры. Иначе потом пипец будет. Высоту ступенек, толщину стен, высота и размеры окон, и всех таких вот мелочей. Иначе будет смотреться ужасно 🙂
TolsTiy 172.8 244.3 1 ноября 2010 в 10:00 # 0
Я конечно дико извиняюсь за лузерство. Расскажите что это за уровни вы делаете? Для каких приложений? Где используются? А то я вижу, что батл у вас, а как этим пользоваться не пойму
AndroniX 30.0 20.8 1 ноября 2010 в 11:18 # 0
Объясняю в последний раз 🙂
Батл на создание игрового уровня. Движок каждый выбирает сам. В итоге цель -получить максимально красивый уровень по которому можно побегать. Наличие анимированных элементов, врагов, оружия, действующих лифтов и т.п. не обязательно. То есть по желанию. Главное что бы это было очень красиво. Ну или хотя бы атмосферно. Что бы чувствовалось, что ты не в игре, а погружаешься в этот мир. Что зачастую сложнее красоты.
Стилистика уровня тоже на выбор автора. Уровень должен быть побольше чем карта из Counter Strike. Конкретный размер зависит опять же от выбора автора и уровня.
Ringov 30.0 39.1 1 ноября 2010 в 14:20 # 0
Mihanik, рендер на последней схеме офигенно получился!
Только чет у меня некоторые сомнения в пропорциях — вот там где внутренняя линия обороны ворот, ступеньки полукругом по центру — если они будут такого размера, то соответствующий им человек войдет в центральную башню, но там будет малость тесновато, не говоря уж о боковых башнях. Я думаю надо на стадии моделирования понаставить бипедов в разных, так скажем, узловых точках, чтобы контролировать размеры, да и для наглядности. А то вот я сейчас на глаз определяю пропорции, а так бы сразу было видно.
Mihanik 266.5 843.8 1 ноября 2010 в 21:11 # 0
Ещё раз про батл. Он не имеет ни какого официального статуса, просто предложение AndroniX, создать игровой уровень, кто лучше, без ограничений по времени. Изначально оно было обращено к Pir, а я принял этот вызов. Однако, насколько я понимаю систему батлов на 3дмире, ничто не помешает нам создать официальную битву уже постфактум, и провести голосование, опять же по согласию участников. (Это как предложение)
Главное соблюдай размеры. Иначе потом пипец будет. Высоту ступенек, толщину стен, высота и размеры окон, и всех таких вот мелочей. Иначе будет смотреться ужасно 🙂
Только чет у меня некоторые сомнения в пропорциях
Чёрт ребята, вы трижды правы, я наступаю на те же, грабли что AndroniX ступени велики, а башни узки, буду исправлять.
Mihanik, рендер на последней схеме офигенно получился!
Зы рендер стандартный, мне кажется он лучше подходит для запекания статичного освещения в текстуру, именно так я хочу поступить, так как недоволен системой расчёта освещения у движка. Здесь ещё много поэкспериментировать придётся.
AndroniX 30.0 20.8 1 ноября 2010 в 21:54 # 0
После того как закончишь, и увидишь свою работу в правильных размерах, поймешь, что правильные пропорции важны всегда 🙂 На их учет уходит конечно много времени, но результат стоит того.
Pir 161.1 1546.4 1 ноября 2010 в 22:12 # 0
Ого да ты крут
Mihanik 266.5 843.8 1 ноября 2010 в 22:47 # 0
правильные пропорции важны всегда 🙂
Я тоже самое говорю, а сам тороплюсь как голый, сам знаешь куда.
Pir Давай присоединяйся, я знаю, что ты юзаешь УДК и не отнекивайся.
Что бы оставить сообщение вам необходимо войти или зарегистрироваться!
- Форум 3DMir.ru
- Games Development
- Game WIP
- Создать тему
Форум ещё
- 1. Есть кто живой? 69
- 2. Прокачка навыков 2Д 293
- 3. Двигатель Харлей-Девидсон S&S Panhead 268
- 4. Mihanik_W.I.P 90
- 5. Заз 1102 «Таврия» 29
- 6. Экологическая катастрофа в Ташкенте 1
- 7. Воспоминания 3D моделинга 23
- 8. Нужна помощь 6
- 9. Kramar Workshop 38
- 10. Пара вопросов по модели и топологии. 11
- 11. Прибалбус 90
- 12. Полуторка 90
- 13. груЗИЛы 127
- 14. ЯЗь и МАЗь 49
- 15. Газики-Уазики 72
- 16. Рогатый 17
- 17. SH Projects 205
- 18. ГАЗ М 72 201
- 19. 3Д мир. Проект воскрешение. 139
- 20. X-Лада 12
Блоги ещё
- 1. Всех с праздником 3DECEMBER. 10
- 2. Майор Гром 2
- 3. C Праздником 2-3December. 2
- 4. Книжная тема 19
- 5. Большой автоконкурс 2016 — награждение 20
- 6. Кто в какие игры играет в свободное от работы время? 49
- 7. precise3dmodeling.com 5
- 8. Астрологи объявили неделю «Марсианина» 19
- 9. innoBright выпустили Altus 1.2 2
- 10. Dell представила 30-дюймовый OLED дисплей UltraSharp 10
- 11. С Новым 2016 Годом. 8
- 12. Радиоактивные люди))) 2
- 13. Allegorithmic выпустили Substance Painter 1.7 0
- 14. Chaos Group представили V-Ray 3.3 для 3ds Max 10
- 15. Paragon from Epic Games — Announce Trailer 0
- 16. Thinkbox Software представили Sequoia 0
- 17. The Foundry выпустили Mari 3 0
- 18. Вышел After Effects and Premiere Pro 2015.1 0
- 19. Autodesk выпустили 3ds Max 2016 Extension 2 0
- 20. CLO Virtual Fashion опубликовали отличное двухминутное видео, в котором собраны лучшие проекты, созданные с помощью Marvelous Designer 5. 1
Популярные уроки ещё
Реклама
Создание логотипа Windows
Эксклюзивное интервью с Дмитрием Филипповым
Анатомия животных
Моделирование Normandy из игры Mass effect
-
3DMir.ru
- Главная
- Блоги
- CGWiki
- Пользователи
- Статьи и заметки
- Обратная связь
-
Галерея
- 3D AWARD
- Художественная
- Архитектура
- 2D AWARD
- Художественная
- На модерации
-
Уроки
- 3ds max
- Maya
- Photoshop
- VRay
- ZBrush
- Статьи и интервью
-
Скачать
- VRay материалы
- HDRI карты
- Текстуры
- Чертежи
- Панорамы
- 3d модели
-
Форум
- 3ds max
- Maya
- Photoshop
- ZBrush
- VRay
- Mental Ray
Устанавливаем Linux-дистрибутив на телефон и планшет под управлением Android
Прошло совсем немного времени с момента выпуска первых смартфонов под управлением ОС Android до того, как энтузиасты научились запускать на них полноценные дистрибутивы Linux. Сегодня методики установки Linux-дистрибутивов на Android-устройства широко известны, а в репозитории Google Play есть даже автоматизированные системы установки и запуска Linux. В этой статье я попытаюсь аккумулировать весь накопленный опыт работы с Linux на смартфонах, расскажу, зачем это нужно, и покажу, как избежать возможных подводных камней при переносе Linux на смартфон или планшет.
Зачем?
На первый взгляд может показаться странным, что кто-то пытается запустить на мобильном устройстве операционную систему, в принципе не предназначенную для работы с экраном небольших размеров и без достаточно точного манипулятора (мышь) и клавиатуры. Однако не стоит делать поспешных выводов. Дистрибутив Linux может дать владельцу смартфона достаточно много преимуществ, среди которых набор старых проверенных инструментов, таких как утилиты командной строки, продвинутые редакторы, FTP- и SSH-серверы, сетевые инструменты и средства разработки приложений. Запустив Linux без графической оболочки на смартфоне с хардварной клавиатурой (Motorola Droid, к примеру), можно достаточно комфортно всем этим пользоваться прямо на ходу без необходимости покидать сам Android. Все инструменты доступны в любой момент, а смартфон продолжает оставаться смартфоном, позволяя принимать звонки и слушать интернет-радио.
Второй аргумент за установку Linux на смартфоне — это возможность использовать его в качестве переносной рабочей станции, которую можно подключить к любому ПК и тут же получить доступ к терминалу с помощью SSH/Telnet-клиента либо клиента VNC/RDesktop. Это по определению лучше, чем флешки с установленным Linux, так как нет необходимости, во-первых, перезагружать машину, а во-вторых, гонять туда-сюда данные; результаты твоей работы будут доступны сразу после того, как отключишь смартфон от компа.
Наконец, наибольший выигрыш Linux дает на планшетах, экран которых позволяет более-менее сносно работать в графической среде, а возможность подключить мышь и клавиатуру через OTG-кабель так и вообще дает шанс превратить планшет в полноценную рабочую станцию. При этом никакой особой разницы между установкой дистрибутива Linux на планшет и смартфон нет.
Как?
Перенести Linux на Android действительно просто, и главную роль здесь играет ядро Linux. Любой Linux-дистрибутив представляет собой набор приложений и библиотек, работающих поверх ядра Linux, а так как Android сам основан на почти неизмененном ядре Linux, эти приложения и библиотеки можно без каких-либо проблем запустить внутри среды Android. Достаточно лишь подыскать дистрибутив, для которого существует порт на платформу ARM (не забываем, что 99% всех Android-девайсов работают на ARM), установить его с помощью ARM-эмулятора на виртуальный жесткий диск (то есть в файл), скинуть этот файл на SD-карту устройства, открыть терминал, смонтировать образ в качестве loopback-устройства и сделать chroot внутрь. Все! Это так же просто, как запуск FTP-сервера в chroot-окружении — простой и проверенный десятилетиями метод.
Единственный камень преткновения, когда ты решаешь запустить дистрибутив Linux внутри Android, — графическая среда. В то время как с доступом к консоли никаких трудностей не возникает благодаря наличию полноценного эмулятора терминала, с графическими приложениями начинаются проблемы — нативного X-сервера для Android нет, а запустить обычный X-сервер внутри самого дистрибутива невозможно из-за коренных отличий в архитектуре графической подсистемы зеленого робота. Несмотря на то что в основе она использует стандартный Linux Framebuffer, поверх которого можно запустить X-сервер, эксклюзивное право его использования изначально принадлежит более высокоуровневым библиотекам Android, поэтому остается либо загружать Linux-дистрибутив вместо Android (что совершенно непрактично), либо придумывать обходные пути.
Проверка работы необходимых модулей
Имей в виду, что поддержка loopback-устройств и файловых систем ext2/ext3, необходимых для подключения образа, имеется далеко не во всех ядрах Linux, установленных на смартфонах под управлением Android. Проверить наличие поддержки можно с помощью команды lsmod | grep -e loop -e ext2.
Энтузиасты вышли из этой ситуации, используя простой метод «удаленного» подключения к рабочему столу с помощью любого доступного для Android VNC-клиента. Внутри chroot-окружения запускается X-сервер Xvnc, и все приложения работают под его управлением. Пользователю остается лишь установить VNC-клиент, вбить локальный адрес — и вуаля, на экране появляется полноценный рабочий стол.
Единственное узкое место при использовании удаленного рабочего стола — это производительность. Даже работая локально, VNC не может обеспечить должный ее уровень, которого бы хватило для плавной прокрутки или перемещения окон без лагов. Решить эту проблему пока не удалось, проекты разработки нативного X-сервера, который бы использовал графическую подсистему Android, еще очень сыры и не могут быть использованы для запуска полноценных графических сред. Впрочем, никто не запрещает их использовать; к примеру, X Server от Darkside Technologies Pty Ltd (goo.gl/ap3uD) вполне сгодится для запуска простого софта.
Изначально Linux для Android существовал только в виде образа с уже установленной системой, а также пояснительной инструкции, как этот образ подключить и использовать. Затем появились скрипты, которые автоматизировали процесс подключения образа и запуска Linux, но и они требовали некоторой работы головой. Наконец, в последнее время появились инсталляторы, доступные в Google Play (например, goo.gl/RSA1j), в некоторой степени автоматизирующие процесс запуска дистрибутива, хотя, по сути, это все то же руководство по установке, но интерактивное, с прямыми ссылками на скачивание образов и скриптов.
Альтернативные варианты
Выше я уже упомянул о том, что дистрибутив Linux вполне может быть загружен вместо Android, благодаря чему удастся задействовать Framebuffer для прямого доступа к видеоадаптеру и существенно ускорить работу графического интерфейса. Однако делать это на смартфоне практически бессмысленно — Linux непригоден в качестве основной системы на небольших экранах, к тому же принимать звонки и пользоваться интернетом будет невозможно. А вот на планшете Linux будет выглядеть вполне достойно.
Обычно на устройство, изначально работающее под управлением Android, так называемая нативная версия Linux-дистрибутива устанавливается следующим образом. На внутреннем NAND-накопителе планшета создается дополнительный раздел, на который копируется Linux-дистрибутив. Затем загрузчик U-Boot (он применяется в большинстве планшетов) настраивается таким образом, чтобы использовать этот раздел в качестве загрузочного. В результате планшет будет автоматически загружать Linux-систему после включения питания.
Чтобы оставить возможность загрузки Android, загрузчик U-Boot перенастраивают таким образом, чтобы раздел с Linux-системой был не основным, а выполнял функцию «раздела для восстановления» (Recovery Mode), доступного с помощью включения устройства с зажатой клавишей громкости (тот самый, который используется для перепрошивки устройства и выполнения различных восстановительных операций). Таким образом удается получить устройство с двойной загрузкой: Android по умолчанию и дистрибутив Linux при загрузке в режиме восстановления. Сам Recovery Mode при этом остается доступным только с помощью специальных инструментов.
В случае если NAND-памяти оказывается недостаточно для размещения полноценной Linux-системы, ее части (обычно раздел /usr) выносят в образ или раздел на SD-карте. Кстати, ext2-раздел на карте памяти также можно использовать для установки Linux, запускаемого в chroot-окружении.
Установить нативный Linux-дистрибутив сложнее, чем работающий в chroot-окружении, но это стоит того, если у тебя есть планшет и OTG-кабель, с помощью которого можно подключить клавиатуру и мышь.
Практическое занятие
Как я уже говорил, для запуска под управлением Android пригодны только дистрибутивы, портированные на архитектуру ARM. Прежде всего это Ubuntu и Debian, причем первый по понятным причинам пользуется гораздо большим интересом среди роботоводов. Также можно установить Gentoo и несколько специализированных дистрибутивов, например Backtrack. Рассмотрим самый типичный случай, то есть установку Ubuntu по стандартной схеме, без использования каких-либо автоматизированных инсталляторов и прочего.



Другие статьи в выпуске:
Хакер #164. Железный дуршлаг
- Содержание выпуска
- Подписка на «Хакер» -60%
Для начала нам нужен образ жесткого диска с установленным дистрибутивом. Его можно создать самому, воспользовавшись эмулятором QEMU, однако в связи с тем, что процедура установки абсолютно стандартна и типична, описывать ее я не буду, а просто направлю тебя по адресу goo.gl/9nvBi. Здесь лежит архив с образом, на который предустановлен Ubuntu 12.04 с графическим окружением LXDE (было бы неразумно запускать Unity/Gnome на телефоне/планшете). Архив следует распаковать и положить файл ubuntu.img на карту памяти.
Далее надо смонтировать образ и сделать chroot в окружение дистрибутива. Для этого нужны права root, прошивка с поддержкой блочных loopback-устройств и установленный busybox (ищем в Маркете по запросу «busybox installer», в CyanogenMod есть по умолчанию). Последовательность действий:
-
Открываем эмулятор терминала в Android (если нет, можно установить из Маркета Terminal Emulator). Либо подключаем смартфон/планшет к компу и получаем доступ к терминалу с помощью adb:
$ cd путь-до-Android-SDK/platform-tools $ sudo ./adb shell
# mknod /dev/block/loop255 b 7 255 # mount -o remount,rw / # mkdir /mnt/ubuntu # mount -o loop,noatime -t ext2 \ /sdcard/ubuntu.img /mnt/ubuntu
# mount -t proc proc /mnt/ubuntu/proc # mount -t sysfs sysfs /mnt/ubuntu/sys # mount -o bind /dev /mnt/ubuntu/dev
# sysctl -w net.ipv4.ip_forward=1 # echo "nameserver 8.8.8.8" > /mnt/ubuntu/etc/resolv.conf # echo "nameserver 8.8.4.4" >> /mnt/ubuntu/etc/resolv.conf # echo "127.0.0.1 localhost" > /mnt/ubuntu/etc/hosts
# chroot /mnt/ubuntu
Собственно, на этом установка заканчивается. Теперь можно запускать консольный софт, производить обновление системы, стартовать сетевые сервисы и делать почти все, что можно сделать с обычной десктопной Linux-системой, не забывая, конечно, что некоторый софт, напрямую взаимодействующий с железом и различными специализированными псевдодевайсами, работать не будет. Также не забываем, что виртуальные ФС после завершения работы следует размонтировать.
Теперь нам необходимо установить и запустить X-сервер Xvnc, экспортирующий дисплей и устройства ввода с использованием протокола VNC. TightVNCserver уже есть в представленном образе и даже настроен, но, чтобы ты лучше понял процесс и смог решить возникшие проблемы, я подробно опишу процесс его установки и запуска.
-
Обновляемся и устанавливаем TightVNCserver:
# apt-get update # apt-get install tightvncserver
#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey export XKL_XMODMAP_DISABLE=1 icewm & lxsession
# export USER=root # vncserver -geometry 1024x800
Чтобы не заморачиваться с ручным вводом всех команд, можно использовать скрипт ubuntu.sh, расположенный здесь: goo.gl/xSpK4. Просто положи его и образ ubuntu.img в каталог ubuntu на SD-карте и запусти скрипт командой sh ubuntu.sh, а через 5–10 секунд подключись к рабочему столу с помощью AndroidVNC. Имей в виду, что скрипт монтирует образ к каталогу /data/local/mnt.

Установка Gentoo на ext2-раздел
Итак, мы установили Ubuntu с помощью образа с файловой системой и шаманств с loopback-устройством и chroot-окружением. Сделать это оказалось несложно, а с применением скриптов так и вообще очень легко, но что, если пойти дальше и установить более хардкорный дистрибутив, и не с использованием образов, а на выделенный ext2-раздел на карте памяти? Так мы сможем решить проблему некоторых прошивок и ядер без поддержки loopback-устройств и к тому же сможем насладиться нормальным дистрибутивом, установленным по всем правилам.

Возьмем в качестве подопытной системы Gentoo. Чтобы установить его на ext2-раздел, нам понадобится карта памяти объемом не меньше 2 Гб и рутованный смартфон с установленным busybox. Последовательность действий следующая.
- Делаем бэкап данных с карты памяти и создаем на ней дополнительный раздел, объемом не меньше двух гигабайт. Сделать это можно с помощью любой программы для разбивки дисков, однако имей в виду, что если ты хочешь продолжать использовать SD-карту по прямому назначению, то создавать FAT32-раздел следует в начале карты, так, чтобы он стал первым, а дополнительный раздел для установки дистрибутива должен быть вторым.
- Форматируем разделы SD-карты:
$ sudo mkfs.vfat /dev/sdc1 $ sudo mkfs.ext2 /dev/sdc2
$ sudo mount /dev/sdc2 /mnt $ sudo tar -xxpf stage3-*.bz2 -C /mnt
# mount -o remount,rw / # mkdir /mnt/gentoo # mount /dev/block/mmcblk0p2 /mnt/gentoo # mount -t proc proc /mnt/ubuntu/proc # mount -t sysfs sysfs /mnt/ubuntu/sys # mount -o bind /dev /mnt/ubuntu/dev # sysctl -w net.ipv4.ip_forward=1 # chroot /mnt/gentoo
Доступ к рабочему столу производится таким же способом, как в Ubuntu, за исключением того, что теперь прямо на телефоне придется собрать кучу софта :). Впрочем, можно настроить среду для кросс-компиляции на компе, но это уже тема для отдельной статьи.

Нативная установка
Запустив Ubuntu с использованием VNC-сервера, ты заметишь неторопливость его работы, которая связана с издержками протокола VNC на передачу картинки «по сети». Чтобы избежать этой проблемы, можно установить Ubuntu в качестве основной системы рядом с Android, так, чтобы она смогла использовать видеоадаптер напрямую. К сожалению, универсального способа сделать это не существует. Каждое устройство по-своему уникально, включая различные таблицы разделов NAND-памяти, на которую производится установка, различные устройства и драйверы для их работы.

К счастью, процесс установки нативной версии дистрибутива хорошо описан для многих устройств в русскоязычных форумах, поэтому найти инструкцию будет несложно. Стоит, тем не менее, сразу обратить внимание на несколько особенностей такого типа установки:
- Отдельный или основной NAND-раздел. Linux-дистрибутив может быть установлен как в заблаговременно созданный раздел в NAND-памяти, так и в основной загрузочный раздел. В первом случае разработчик прошивки обычно оставляет возможность загрузки Android с помощью специального скрипта либо через загрузку Linux-дистрибутива в режиме восстановления, во втором он будет установлен вместо Android и для возвращения возможности загрузки робота придется заново перепрошивать устройство.
- Возможность двойной загрузки. Если Linux-дистрибутив будет установлен на отдельный раздел, разработчик может оставить возможность загрузки Android. Однако стоит сразу обратить внимание, как эта загрузка происходит: с помощью режима восстановления либо скрипта, запускаемого с обычного компа. Все-таки второй способ будет неудобен в дороге.
- Поддержка оборудования. Оригинальное Linux-ядро Android-прошивки уже включает в себя все необходимые драйверы, которые могут понадобиться для работы полноценной Linux-системы, однако далеко не во всех Linux-прошивках все заведется само собой. Часто возникают проблемы с Wi-Fi-адаптером и сенсорным экраном, который неадекватно реагирует на прикосновения. Поэтому перед установкой прошивки стоит внимательно прочитать о возможных осложнениях.
В любом случае будь готов к тому, что во время установки Linux-дистрибутива все твои данные будут уничтожены. Без этого никак.

Что дальше
Linux-дистрибутив, установленный рядом с оригинальной Android-системой, может стать очень удобным рабочим инструментом, однако на данный момент «Linux внутри Android» считается скорее игрушкой и способом покрасоваться перед друзьями, нежели серьезным решением. Уверен, что в скором времени, когда для Android появится полноценная реализация графического сервера Wayland, ситуация начнет меняться и мы увидим дистрибутивы с адаптированным для небольших экранов интерфейсом, а также полноценные Linux-приложения, распространяемые в форме обычных APK-пакетов. Также не стоит забывать о проекте «Ubuntu for Android» — в его рамках идет работа над официальным портом Ubuntu для Android, который позволит использовать смартфон в качестве переносного системника, подключаемого к любому монитору.
WWW
goo.gl/UGDe3 — описание процесса подготовки образа Ubuntu собственными силами (на английском).