Linux on DeX — работаем в Ubuntu на Android

Как установить Linux на Samsung Galaxy

Экосистема компании Samsung включает платформу DeX, которая поначалу имела очень ограниченный функционал, и могла работать только с мобильными приложениями Android. Не так давно разработчики сделали так, чтобы пользователи смартфонов и планшетов Samsung Galaxy могли взаимодействовать с настольными программы. Это означает, что теперь можно работать полноценно.

Существует простой способ установить операционную систему Linux на аппарат южнокорейского бренда, и сейчас вы узнаете о нем. Однако, чтобы перевести Galaxy в режим Desktop Experience, вам потребуется монитор и адаптер с USB Type-C на HDMI для подключения периферии.

Существуют удобные мультипереходники от различных производителей, которые можно приобрести за разумные деньги. У Samsung есть собственные решения, но некоторые из них обойдутся в несколько тысяч рублей. Вы всегда можете поискать что-то лучшее, но перед покупкой убедитесь в совместимости с вашим Galaxy.

На рынке доступна док-станция DeX, но она обойдется вам еще в более крупную сумму. Хотя в плюс в том, что там есть все необходимые порты, а в процессе работы телефон будет одновременно заряжаться. Имейте это в виду, когда будете покупать адаптер с USB Type-C на HDMI.

На какие Galaxy-устройства можно установить Linux?

Пока компания Samsung заявляет о поддержке Desktop Experience для 9 устройств, независимо от того, какая версия операционной системы вас установлена, будь то Android Oreo или Pie. Вот полный перечень моделей Galaxy:

  • Galaxy S9 и S9 Plus.
  • Galaxy Note 9.
  • Galaxy S10e, S10, S10 Plus и S10 5G.
  • Galaxy Tab S4
  • Galaxy Tab S5e

В ближайшее время Samsung собирается представить несколько новых гаджетов, включая Galaxy Note 10 и Tab S5. Они оба должны получить полную поддержку DeX и, естественно, Linux.

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

Устанавливаем Linux на смартфон/планшет

Компания Samsung сильно упростила процесс установки LInux на свои гаджеты, создав утилиту Linux on DeX. Все, что от вас требуется, это установить ее как обычное приложение и настроить. Также в процессе потребуется образ операционной системы Ubuntu, который можно скачать полностью бесплатно.

  1. Скачайте программу Linux on DeX по этой ссылке и выполните установку. Если телефон потребует активировать опцию “Неизвестные источники”, тогда сделайте это не задумываясь, поскольку это необходимое действие.
  2. Загрузите образ ОС Ubuntu, который мы и будем устанавливать на Galaxy. Лучше сделайте это прямо со смартфона, чтобы потом не пришлось копировать образ более чем на 4 ГБ с компьютера. Его сразу же нужно разархивировать. Образ доступен на официальном сайте Samsung, перейдите по ссылке и нажмите там “Download“.
  3. После запуска Linux on DeX вам потребуется ввести логин “dextop” и пароль к нему “secret”.
  4. Теперь нужно выбрать образ Ubuntu, или прямо там скачать, если вы еще этого не сделали, а затем требуется создать так называемый контейнер, выбрав для него имя и объем памяти (лучше не меньше 15 ГБ).

Далее следует нажать кнопку “Create“, то есть создать, и потом уже запустить контейнер по кнопке “Run“.

После недолгого ожидания вы сможете пользоваться настольной операционной системой Ubuntu.

Linux на Samsung Galaxy можно использовать практически для любой работы, но все упирается в производительность мобильного устройства. Некоторые пытаются создавать 3D-модели на Samsung Galaxy S10, но после тестов становится понятно, что задержка рендеринга очень заметная.

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

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

Samsung: «Linux on DeX» входит в бета-версию. Как принять участие?

Мечтаете ли вы использовать Android-телефон в качестве Linux-ПК при подключении к большому экрану и полноразмерной клавиатуре? Если это так, вы полюбите Samsung.

Южнокорейский технический гигант запустил приложение «Linux on DeX» в бета-версии и приглашает ранних последователей зарегистрироваться, чтобы помочь проверить его.

Ранее известный под названием «Linux on Galaxy» приложение Samsung Linux на DeX позволяет владельцам конкретных устройств Samsung «запускать» Ubuntu Desktop на своем устройстве вместе с Android.

Эта функция, показанная на конференции Samsung Developer Conference 2018 (SDC18), совместима с двумя устройствами: Note 9 и Tab S4.

Может ли быть добавлено больше устройств, если тестирование пройдет хорошо? Вполне возможно, хотя Samsung не сказал как таковой. Маловероятно, что какие-либо средние или бюджетные телефоны получат поддержку Linux на DeX, так как минимальные требования к аппаратной части устройств 4 ГБ оперативной памяти.

Linux от Samsung на DEX Beta

Linux на DeX позволяет пользователям запускать полный рабочий стол Ubuntu на некоторых устройствах Samsung, с возможностью установки и запуска традиционных приложений Linux, IDE и утилит командной строки.

Приложение «Linux on DeX» — это приложение для Android, которое позволяет создавать внутри него безопасный контейнер, в который можно добавить образ Ubuntu. Ubuntu по-прежнему работает поверх ядра Android и в пользовательском пространстве Android.

Это все немного похоже на Crouton на Chromebook, метод, который позволяет обычному Linux работать вместе с Chrome OS одновременно, используя одно и то же ядро.

Гибридный подход позволяет выполнять некоторые аккуратные интеграции. Например, Linux может читать/записывать в папки и файлы на Android (например, вы можете настроить селфи в GIMP), и Android и Ubuntu совместно используют буфер обмена. Это также означает, что вы можете использовать сенсорный экран телефона в качестве мыши.

Samsung ориентирована на разработчиков с функцией гибридных вычислений, а не на обычного пользователя Android. Они конкретно упоминают следующие преимущества:

  • Загрузка и управление исходным кодом из хранилищ Git
  • Управление и мониторинг сервера с использованием CLI сервера
  • Создание проектов C/C++/Java с использованием IDE

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

Он использует пользовательскую версию Ubuntu

Linux на DeX запускает модифицированную версию Ubuntu 16.04 LTS.

Образ загружается на 3,6 ГБ и использует около 13,6 ГБ памяти при установке внутри контейнера.

Видеодемонстрация этой функции ранее в этом году показала урезанный пользовательский интерфейс рабочего стола.

Но версия, демонстрируемая на SDC18, кажется, использует традиционный рабочий стол с использованием традиционной планировки рабочего стола GNOME.

Linux на DeX работает в полноэкранном режиме (хотя вы можете получить доступ к панели задач Android, переместившись вверх или вниз по экрану).

Аксессуары для док-станции DeX

Для использования «Linux on DeX» пользователям нужен совместимый телефон и непосредственно сама настольная станции DeX.

Док-станция DeX требуется, поскольку она обеспечивает доступ к портам USB, ethernet и HDMI — все это имеет важное значение для добавления внешнего монитора, клавиатуры и мыши.

Хотя большинство взаимодействие GUI в Linux для настольных компьютеров требует стыковка аксессуаров (в основном для поля, больше ничего) режим терминал может использоваться без док-устройства, скажем Samsung.

Зарегистрируйтесь на Samsung Linux on DeX Beta

Если у вас есть совместимый смартфон или планшет Samsung и доступ к аксессуарам станции DeX, вы можете принять участие. Просто зарегистрируйтесь на Linux on DeX Beta по ссылке ниже:

Регистрация продлится вплоть до 14 декабря 2018 года. Ожидайте ошибки, замедление и случайную перезагрузку, когда предел памяти будет достигнут (в конце концов, Ubuntu должен разделить ОЗУ с Android). Вам также необходимо зарегистрироваться с использованием действительной учетной записи Google или электронной почты G Suite.

Samsung планирует отправить участникам бета-тестирования по электронной почте ссылки для загрузки приложения Linux on DeX и пользовательского образа Ubuntu, начиная с 12 ноября 2019 года.

У вас есть совместимое устройство? Будет ли эта функция поощрять вас к покупке?


Запуск Linux на Android

Полноценная операционная система Linux на Android смартфоне может быть очень полезной. Во-первых, можно запустить любую необходимую программу linux, или даже сервис. Вы можете запустить веб-сервер, сервер баз данных или все что захотите. Во-вторых, если у вас планшет с большим расширением экрана, то с помощью клавиатуры и мыши его можно превратить в полноценную рабочую станцию. А учитывая, что мы будем запускать Linux без эмулятора, то получим отличную производительность для игр и просмотра видео.

Операционная система Android основана на ядре Linux, поэтому запуск Linux на Android смартфоне возможен, и даже не так сложен как кажется. Полностью заменить Android на Linux не получится из-за особенностей ARM загрузчика и большого разнообразия драйверов устройств, которые поддерживаются только ядрами производителей. Можно разве что установить специально адаптированную Ubuntu Phone, но это уже совсем другая история. Запускать Linux в эмуляторе мы тоже не будем, мы возьмем ARM версию дистрибутива Linux и запустим его в chroot контейнере уже работающего ядра Android.

Нам понадобиться

  • Смартфон или планшет на базе ОС Android с ROOT правами;
  • Программа автоматического развертывания Linux – Linux Deploy;
  • BusyBox;
  • SSH клиент – ConnectBot;
  • X Сервер для Android – XSDL Server;

Весь перечисленный софт можно скачать и установить с Google Play или форума 4pda. Далее, я буду предполагать что на вашем устройстве уже есть Root права. Начнем запуск linux на android.

Подготовка смартфона

Сначала устанавливаем BusyBox. Зайдите на страницу программы в Google Play и нажмите установить. Когда программа установится, нужно ее запустить и еще раз нажать кнопку install для распаковки всех необходимых компонентов:

Остальные программы устанавливаются стандартным способом из Google Play.

Развертывание Linux на Android

Устанавливать Linux будем с помощью приложения Linux Deploy. Запустите приложение, откройте главное меню программы и выберите пункт Настройки:

Здесь желательно поставить галочки не отключать экран и не отключать wifi, чтобы эти функции работали во пока вы не выключите Linux:

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

Больше ничего в настройках менять не нужно, Переходим к установке Linux. В главном окне коснитесь значка с логотипом загрузки:

Перед тем как нажать кнопку установить необходимо настроить параметры будущей системы, сначала выберите дистрибутив и версию системы, например, Ubuntu Wily, архитектуру, можно оставить как есть armhf:

Дальше выбираем путь образа диска куда будет установлена система, мы будем устанавливать способ в файл. По умолчанию размер образа – 512 Мб, рекомендую взять с запасом если планируете устанавливать графическую оболочку и дополнительные программы. Для LXDE, XFCE понадобиться еще 500 Мб, а для KDE и Gnome – 1,3 Гигабайт:

Потом меняем имя пользователя и пароль, локаль выбираем ru_RU.UTF-8 для поддержки русского языка:

Выбираем окружение рабочего стола если нужно и дополнительные компоненты. Окружение у нас будет LXDE, дополнительные компоненты оставляем только окружение рабочего стола и ssh сервер. Х сервер нам не нужен, так как будем использовать XSDL Server.

Потом ставим галочку напротив GUI:

Графическая подсистема – Х сервер:

В параметрах GUI Номер дисплея – 0, Адрес Х-сервера – ваш адрес в Wifi сети или 127.0.0.1. Галочку XSDL Server не ставим, так как при каждом запуске Х сервер запускается с новым номером дисплея, таким образом, если с первого раза система не запустится номер дисплея уже будет не соответствовать тому что мы указали в настройках и нужно будет перезагружать устройство:

Дальше можете возвращаться в самый верх и нажимать кнопку установить. Установка linux на android займет около полчаса.

Запуск Linux

Осталось запустить linux на смартфоне. Сначала запускаем XSDL Server, выбираем расширение экрана:

Затем размер шрифта:

Переходим в Linux Deploy и нажимаем кнопку старт:

Возвращаемся в XSDL Server и ждем пока загрузится оболочка:

Вот и все, теперь можно работать в установленной системе, устанавливать приложения, смотреть видео и даже попытаться играть в компьютерные игры. Запуск linux программ на android – не такое уж сложное дело.

Небольшой гайд по управлению XSDL сервер:

  • Чтобы открыть виртуальную клавиатуру нажмите кнопку назад.
  • Для клика правой кнопкой мыши коснитесь двумя пальцами экрана.
  • Отмена последнего действия – кнопка меню.

Доступ SSH доступ к Linux

Для доступа по SSH к установленной системе мы скачали ConnectBot. Откройте приложение и наберите:

Затем введите пароль, выбранный при установке системы, дальше вы окажетесь в оболочке Linux:

Решение проблем

Если во время создания образа возникает ошибка:

Making new disk image (4095 MB) . fail
dd: opening `/storage/emulated/0/linux.img’: No such file or directory

Замените в пути 0 на legacy.

А если такая ошибка:

dd: opening `/storage/sdcard0/linux.img’: Read-only file system

Это значит что в вашей системе используются пространства имен для различных пользователей, то есть флешка примонтирована для пользователя, но не для root’a. Поэтому откройте SuperSU и в настройках снимите галочку Создать поименное разделение пространств:

Выводы

Вот и все. вы смогли успешно запустить Linux на смартфоне. Эта система не настолько эффективна как на персональном компьютере, но тоже сильно расширяет возможности Android смартфона. Если у вас остались вопросы, спрашивайте в комментариях!

Как легко установить Linux на DeX? (Руководство)

2 min

Samsung принес поддержку Linux в свою экосистему DeX. DeX уже был отличным способом получить полноэкранный рабочий стол без необходимости использования отдельного компьютера. Однако это был не настоящий рабочий стол. Samsung меняет это, предоставляя поддержку Linux, которая позволит пользователям использовать полноценную операционную систему Linux. Samsung предоставил поддержку Linux практически со всеми функциями, необходимыми для начала работы с Linux. С Linux на DeX вы сможете носить весь свой компьютер в кармане. Являетесь ли вы разработчиком или просто пользователем, который предпочитает ОС Linux, это отличная новость. В этой статье мы покажем вам, как вы можете установить Linux на Dex на поддерживаемые устройства, чтобы вы могли жить в будущем прямо сейчас.

Используйте операционную систему Linux на Samsung DeX

требование

  • Samsung Galaxy Note 9 или Galaxy Tab S4. В настоящее время только эти два устройства поддерживают Linux на DeX. В нашем тестировании мы используем Galaxy Note 9 (Exynos).
  • Монитор с разъемом типа C-HDMI. Для повышения производительности рекомендуется использовать собственный разъем Samsung.
  • Для навигации вы можете использовать дисплей Note 9 в качестве мыши и клавиатуры. Если вы хотите полноценного рабочего стола, вы можете, конечно, подключить беспроводную клавиатуру и мышь.

Установка Linux на Samsung Dex

  1. Загрузите последнюю версию Linux на DeX Beta (Свободно) из APKmirror. По какой-то причине ссылка на Play Store сейчас не работает, и она не работает. Тем не менее, вы можете загрузить приложение из APKmirror, оно совершенно безопасно для использования.

2. Установите приложение Linux на DeX Beta и откройте его. Нажмите на кнопку «плюс» внизу и выберите «Загрузить с сервера». Теперь прокрутите вниз и нажмите на кнопку «Скачать». Приложение начнет загрузку необходимого образа Linux. Это огромный файл размером около 4 ГБ, поэтому убедитесь, что вы подключены к WiFi. 3. Если у вас возникли проблемы при загрузке файла изображения на мобильный телефон, вы можете сначала загрузить его на свой компьютер. После того, как он загружен, распакуйте zip-файл и импортируйте .img-файл в папку LoD на вашем телефоне, Теперь откройте приложение Linux on DeX, нажмите на кнопку «плюс» и выберите «Обзор».

4. Здесь вы увидите файл .img, нажмите на него и укажите имя контейнера. Теперь нажмите «Создать». Контейнер Linux теперь готов к использованию на DeX.

Использование Linux на DeX

1. Теперь подключите смартфон к разъему Type-C и HDMI к монитору. Samsung DeX автоматически запустится на мониторе. Если у вас нет беспроводной мыши и клавиатуры, вы можете использовать дисплей Samsung для навигации DeX, Откройте ящик приложений на DeX и нажмите на Linux на DeX Beta app.

2. После этого нажмите на контейнер, который вы назвали ранее а затем нажмите на кнопку RUN. Если вы хотите вернуться к DeX, просто наведите курсор мыши в нижней части экрана на 2-3 секунды, вы получите док-станцию ​​и оттуда сможете закрыть Linux и переключиться на DeX.

Замечания: имя пользователя по умолчанию – «dextop», а пароль – «секрет».

Как общий опыт?

Честно говоря, Linux на DeX довольно отзывчив, и я был удивлен, увидев такую ​​производительность на бета-канале. Чтобы дать вам представление, Linux работает в контейнере, который является частью экосистемы DeX, и установлен в приложении на Note 9. Существует очень много уровней, но он работает прилично хорошо. Произошла периодическая задержка, но в целом приложения работали быстро без большой задержки.

Пока что это кажется хорошей альтернативой для студентов или разработчиков, которые хотят начать работать с Linux. Чтобы было понятно, он работает под управлением Ubuntu 16.04 LTS с политикой безопасности Android. Если вы новичок в разработке программного обеспечения, то вы можете изучить множество вещей. Для начинающих, у вас есть доступ к терминалу, если вы занимаетесь разработкой для Android, то предустановлен IntelliJ. Эта версия также поставляется с текстовым редактором Geany и Visual Studio Code, что удивительно. Кроме того, вы можете установить Vim или любой другой текстовый редактор по вашему выбору. Существует большая гибкость для разработчиков.

Если вы не разработчик, вы найдете здесь большинство основных приложений. Существует Chromium и Firefox для работы в Интернете, который работает довольно хорошо. YouTube работал очень хорошо с незначительными пропусками кадров. Обратите внимание, что звук будет исходить из динамика Note 9, но вы можете подключить и использовать внешние динамики, если хотите. Пользователи могут использовать терминал для установки пакетов, которые они хотят. Однако могут возникнуть проблемы с совместимостью с программным обеспечением. Мы попытались установить VLC с помощью терминала, и он все же установил, но не смог запустить, потому что он не скомпилирован в ARM. Samsung уже заявил, что будут работать только 64-битные ARM-приложения.

Тем не менее, у потребителей нет причин для разочарования, поскольку они могут использовать обычные приложения для Android во время работы с Dex и могут запускать Linux на DeX, когда им нужен полный рабочий стол. По сути, это полный пакет, и я не уверен, почему Samsung не продвигает эту функцию в большом количестве. Вы можете получить опыт, подобный ПК, с превосходной производительностью. Это определенно выглядит как будущее. Молодец, Самсунг!

СМОТРИТЕ ТАКЖЕ: 13 интересных функций Samsung One UI, о которых вы должны знать

Наслаждайтесь Linux на DeX

Samsung проделала потрясающую работу по установке целой настольной системы обработки на своем смартфоне. Программа Linux on DeX в настоящее время находится в бета-версии, и, конечно, со временем она станет лучше. Когда DeX был впервые запущен в 2017 году, производительность была нестабильной, и это не совсем похоже на работу на компьютере.

Однако с небольшими изменениями DeX стал жизнеспособным и интересным продуктом для использования. Мощные процессоры, высокоскоростное хранилище и более широкое внедрение в ARM сделают Linux на DeX отличной альтернативой для использования в будущем. Так что ты думаешь? Попробуете ли вы установить Linux на свое устройство Samsung? Дайте нам знать в разделе комментариев ниже.

Как установить Linux на Android-смартфон или планшет

Подробная инструкция по превращению любого устройства, работающего под управлением Android, в полноценный компьютер на базе Linux.

Запуск Linux на Android возможен! И для этого не нужно устройство с root-правами: всё необходимое ПО доступно в официальном магазине Google Play. Всего за 10–15 минут вы сможете получить операционную систему, отличающуюся от Android расширенной функциональностью.

Примечание: если вы последуете нашей инструкции, ОС Linux будет запущена в виртуальной среде. Android будет по-прежнему работать в фоновом режиме. Назвать такую систему полноценной было бы неверно. Тем не менее со списком стандартных задач она справляется хорошо.

Перед установкой закройте все ненужные приложения и очистите оперативную память Android-девайса.

1. Из магазина Google Play установите GNURoot Debian и XServer XSDL.

2. Перед началом установки Linux убедитесь, что ваш девайс подключён к стабильной сети Wi-Fi. Запустите GNURoot. Начнётся загрузка необходимых пакетов среды.

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

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

3. Введите следующую команду:

Дождитесь окончания загрузки пакетов. Об этом скажет строчка Reading package lists…Done.

4. Теперь введите ещё одну строчку:

На вопрос «Do you want to continue?» введите английскую букву Y и нажмите Enter. Начнётся установка пакетов.

В этот раз процедура установки займёт немного больше времени. Терпеливо ожидайте окончания инсталляции до появления заветной строки:

Среда Debian Linux установлена, и теперь можно перейти к разворачиванию графической оболочки.

5. Установка всех пакетов дистрибутива Linux выполняется следующей командой:

apt-get install lxde

Есть и вариант установки ядра системы с использованием строки:

apt-get install lxde-core

Подтвердите установку, повторно введя Y и нажав на клавишу Enter. Начнётся процедура загрузки пакетов.

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

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

  • XTerm — для доступа к терминалу из графической оболочки Linux;
  • Synaptic Package Manager — для управления пакетами apt и загрузки приложений;
  • Pulseaudio — для установки драйверов звука.

Все три утилиты устанавливаются с помощью одной команды терминала GNURoot:

apt-get install xterm synaptic pulseaudio

На устройство будет загружено около 260 МБ данных.

7. Теперь сверните приложение GNURoot и откройте ранее установленное XServer XSDL. Согласитесь с загрузкой дополнительных шрифтов. После окончания установки несколько раз тапните по экрану (приложение предложит выбрать разрешение и размер шрифтов — тут всё зависит от ваших предпочтений), пока не увидите заставку с синим фоном и белым текстом.

Повторно запустите GNURoot и поочерёдно введите следующие две команды:

export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4712
startlxde &

Последовательность дальнейшего перезапуска системы (когда вы захотите открыть Linux повторно) выглядит так: запускаете XServer XSDL и ждёте появления синего экрана, открываете GNURoot и вводите две указанные выше команды, возвращаетесь к XServer XSDL.

Если терминал ругается на недопустимую команду, вернитесь к пункту 5 данной инструкции и попробуйте установку «голого» ядра. Проверьте состояние памяти Android-устройства.

8. Теперь откройте XServer XSDL, подождите несколько секунд — и перед вами готовая к работе Linux.

Для установки приложений в нижнем левом углу откройте меню Start и выберите Run. Введите Synaptic и нажмите Enter.

В открывшемся окне воспользуйтесь поиском и установите нужные приложения. Это может быть браузер Firefox, редактор изображений GIMP, офисный пакет Libre и прочие совместимые с Linux программы.

Разумеется, такой вариант установки Linux нельзя назвать полноценным запуском операционной системы на Android. Виртуальная Linux имеет несколько ограничений, но при использовании беспроводных мыши и клавиатуры (возможно и подключение с помощью OTG-переходника и USB-хаба) вы сможете превратить смартфон или планшет в портативный компьютер с функциональностью взрослой ОС.

Устанавливаем 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 по стандартной схеме, без использования каких-либо автоматизированных инсталляторов и прочего.

BackTrack, запущенный на планшете

Хакер #164. Железный дуршлаг

Для начала нам нужен образ жесткого диска с установленным дистрибутивом. Его можно создать самому, воспользовавшись эмулятором QEMU, однако в связи с тем, что процедура установки абсолютно стандартна и типична, описывать ее я не буду, а просто направлю тебя по адресу goo.gl/9nvBi. Здесь лежит архив с образом, на который предустановлен Ubuntu 12.04 с графическим окружением LXDE (было бы неразумно запускать Unity/Gnome на телефоне/планшете). Архив следует распаковать и положить файл ubuntu.img на карту памяти.

Далее надо смонтировать образ и сделать chroot в окружение дистрибутива. Для этого нужны права root, прошивка с поддержкой блочных loopback-устройств и установленный busybox (ищем в Маркете по запросу «busybox installer», в CyanogenMod есть по умолчанию). Последовательность действий:

    Открываем эмулятор терминала в Android (если нет, можно установить из Маркета Terminal Emulator). Либо подключаем смартфон/планшет к компу и получаем доступ к терминалу с помощью adb:

Не забываем, что режим отладки в этом случае должен быть включен: «Настройки -> Для разработчиков -> Отладка Android».

  • Получаем права root:
  • Создаем блочное loopback-устройство, подключаем к нему образ диска и монтируем его:

    Содержимое образа должно появиться в каталоге /sdcard/ubuntu. Проверь, чтобы это было так.

  • Подключаем все необходимые для работы дистрибутива виртуальные ФС:
  • Настраиваем так, чтобы из chroot-окружения можно было получить полноценный доступ в Сеть:
  • Переходим в chroot-окружение:
  • Собственно, на этом установка заканчивается. Теперь можно запускать консольный софт, производить обновление системы, стартовать сетевые сервисы и делать почти все, что можно сделать с обычной десктопной Linux-системой, не забывая, конечно, что некоторый софт, напрямую взаимодействующий с железом и различными специализированными псевдодевайсами, работать не будет. Также не забываем, что виртуальные ФС после завершения работы следует размонтировать.

    Теперь нам необходимо установить и запустить X-сервер Xvnc, экспортирующий дисплей и устройства ввода с использованием протокола VNC. TightVNCserver уже есть в представленном образе и даже настроен, но, чтобы ты лучше понял процесс и смог решить возникшие проблемы, я подробно опишу процесс его установки и запуска.

    1. Обновляемся и устанавливаем TightVNCserver:
    2. Создаем файл /root/.vnc/xstartup и пишем в него следующее:

    Третья команда здесь нужна, чтобы пофиксить проблемы, которые могут возникнуть из-за физического отсутствия на устройстве клавиатуры.
    Запускаем Xvnc с помощью враппера vncserver с правами root:

    В результате выполнения последней команды на экран будет выведен запрос на пароль для доступа к VNC-серверу, лучше указать что-нибудь простое вроде «123». Разрешение можно установить фактически любое, однако лучше, если оно будет совпадать с физическим разрешением экрана устройства.

  • Устанавливаем на смартфон приложение AndroidVNC, запускаем его, указываем IP-адрес и порт 5901, подключаемся. На экране должен появиться рабочий стол LXDE.
  • Чтобы не заморачиваться с ручным вводом всех команд, можно использовать скрипт ubuntu.sh, расположенный здесь: goo.gl/xSpK4. Просто положи его и образ ubuntu.img в каталог ubuntu на SD-карте и запусти скрипт командой sh ubuntu.sh, а через 5–10 секунд подключись к рабочему столу с помощью AndroidVNC. Имей в виду, что скрипт монтирует образ к каталогу /data/local/mnt.

    AndroidVNC — подключаемся к рабочему столу

    Установка Gentoo на ext2-раздел

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

    Проект «Ubuntu for Android» в действии

    Возьмем в качестве подопытной системы Gentoo. Чтобы установить его на ext2-раздел, нам понадобится карта памяти объемом не меньше 2 Гб и рутованный смартфон с установленным busybox. Последовательность действий следующая.

    1. Делаем бэкап данных с карты памяти и создаем на ней дополнительный раздел, объемом не меньше двух гигабайт. Сделать это можно с помощью любой программы для разбивки дисков, однако имей в виду, что если ты хочешь продолжать использовать SD-карту по прямому назначению, то создавать FAT32-раздел следует в начале карты, так, чтобы он стал первым, а дополнительный раздел для установки дистрибутива должен быть вторым.
    2. Форматируем разделы SD-карты:
    3. Берем телефон, заходим в «Настройки -> О телефоне» и смотрим, какой установлен процессор. Далее переходим на страницу goo.gl/PRfux и выкачиваем stage3 для нужной архитектуры, например stage3 для ARM v7 лежит в каталоге current-stage3-armv7a.
    4. Монтируем ext2-раздел карты памяти на компе и распаковываем в него содержимое полученного архива:

    Сразу редактируем конфиги и все, что нужно, по вкусу, включая правку /etc/resolv.conf по образцу из предыдущего раздела.

  • Запускаем эмулятор терминала (или выполняем «adb shell»), монтируем все необходимое и переходим в chroot (почти так же, как в случае с Ubuntu):
  • Доступ к рабочему столу производится таким же способом, как в Ubuntu, за исключением того, что теперь прямо на телефоне придется собрать кучу софта :). Впрочем, можно настроить среду для кросс-компиляции на компе, но это уже тема для отдельной статьи.

    Ubuntu на Galaxy Tab 10.1

    Нативная установка

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

    Нативный X-сервер для Android

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

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

    В любом случае будь готов к тому, что во время установки Linux-дистрибутива все твои данные будут уничтожены. Без этого никак.

    Запуск Ubuntu с помощью стартового скрипта

    Что дальше

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

    Читайте также:  ART или Dalvik на Android — что это такое, что лучше, как включить
    Ссылка на основную публикацию