• Устанавливаем Linux на Windows-планшет. Выбираем планшет для Linux

    Планшет с Windows 8 (иллюстрация: Paxabay)

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

    • В первую очередь необходимо выяснить, какой «образ» необходим для вашего планшета. В этом примере используется Linux-дистрибутив, который называется «Ubuntu». При этом вы можете выбрать между 32-битным, 64-битным и ARM-вариантами. Как правило, в планшетах устанавливаются ARM-процессоры.
    • Кроме того, необходимо скачать и установить программу Win32 Disk Imager.
    • Также для инсталляции вам понадобится USB-флешка емкостью по меньшей мере 4 Гбайт. Для начала отформатируйте эту USB-флешку под систему FAT32 и затем запустите утилиту Win32 Disk Imager. В «Image File» выберите файл Ubuntu, который скачали ранее, а в «Device» выберите букву, соответствующую имени вашей USB-флешки. После всех этих действий нажмите на «Write».

    Windows-планшет: загружаемся с USB-флешки


    USB-флешка с Linux

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

    • Выключите ваш планшетный компьютер и вставьте флешку в USB-порт. Снова включите планшет. Теперь он должен автоматически загрузиться с USB-флешки.
    • В том случае, если ваш планшет загрузился «обычным» образом, снова выключите его и нажмите одновременно кнопки питания и увеличения громкости звука, чтобы войти в UEFI (BIOS). Здесь теперь вы можете указать, что планшет должен загружаться с USB-флешки.

    Устанавливаем Linux на планшет

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

    • Во время инсталляции выберите пункт «Установить Ubuntu рядом с Windows 8». После этого можно будет распределить флеш-память планшета между операционными системами. Позже вы сможете использовать ваш планшет как с Linux, так и с Windows.

    С красивой надписью «ASUS» и резистивным сенсорным экраном на два касания. Я был предельно рад, пока не обнаружил, что нетбук в режиме планшета (то бишь с убранной клавиатурой и тачпадом) использовать практически невозможно. Опечалившись, я перепробовал разные версии Windows, дистрибутивы Linux, и, не найдя утешения, оставил там федору - письма набирать, да интернеты читать.
    Но сейчас можно снова посмотреть, появились ли достойные рабочие среды для таких устройств.

    ALT GNU/Linux Netbook Live с LXDE

    Натолкнуло на всё это дело недавняя новость о выходе специальной версии Alt Linux, которая официально поддерживает моё устройство.
    Загружаемся, и видим почти стандартную LXDE-среду с кучей предустановленного софта:

    Приятное

    • Рабочая и настроенная на работу на планшете виртуальная клавиатура «из коробки»
    • Рабочий поворот экрана
    • Работает быстрее, чем Gnome3 или Unity
    • Отечественная разработка:)
    Неприятное
    • Тачпад не заработал, совсем. Такая же проблема была в LiveCD федоры, но пропала с установкой
    • Очень маленькие элементы управления, не адаптированные под пальцетыканье. Нужно доставать стилус
    • Отсутствие мультитача, и, следовательно, жестов. Это не так страшно, в иксах это только появилось, и для жестов можно использовать twofing
    • Нельзя сделать щелчок ПКМ. Совсем
    • Внешний вид - не для слабонервных («Дистрибутив ориентирован на профессионального пользователя», как говорит страница ветки в вики ALT Linux)

    Fedora 17 RC1 с Gnome3

    Совсем недавно вышел GTK+ 3.4, в котором теперь есть кинетический скроллинг. Самый близкий мне дистрибутив с GTK3.4 - это Fedora 17 (всё еще в бете), так что её я и возьму. Также, в неё уже включен X.org с мультитачем, что естественно нужно протестировать, как можно быстрее. Скриншот:

    Приятное

    • Кинетический скроллинг - это круто, правда, особенно, когда видишь это впервые в любимом линуксе
    • Удобный «Пальцетыкательный» интерфейс
    Неприятное
    • Кинетический скроллинг не работает в Firefox, в эмуляторе терминала
    • Пока нет даже намека на жесты
    • Ужасная экранная клавиатура: маленькие клавиши, веселое игнорирование системной раскладки (на клавишах латинские буквы, а вводятся русские), не всегда «выпадает»
    • Нельзя сделать ПКМ
    Не смотря на большое количество недостатков, прогресс со времени Fedora 16 (читай с Gnome 3.2) огромен. Кажется, что еще чуть-чуть и можно будет предустанавливать её на планшетные компьютеры, но это лишь моё субъективное мнение.

    Balsam Professional Live Image

    Все мы, наверное, помним недавно анонсированный планшет с Plasma Active . Я долго думал, какой дистрибутив с ней брать. Если что, вот список . В итоге, пришлось попробовать все, но только один из них заработал нормально. Итак, Balsam Professional с Plasma Active:

    Приятное

    • Красивый и удобный для использования на планшете интерфейс
    • Относительно удобная виртуальная клавиатура
    • Кинетический скроллинг
    • Направленность дистрибутива именно на планшеты
    Неприятное
    • Общая сырость, местами недоделанность
    • В отличии от других испытуемых, этот образец тормозил и запускался через два раза
    • Нет мультитача, жестов. В Kubuntu Active они скорее всего есть , но у меня оно не заработало
    • Нет русской локализации. Вообще никаких локализаций нет, как и раскладок клавиатуры
    • Скудные настройки
    • Нет курсора при работе с тачпадом
    Хорошая идея, хорошее начало. Желаю разработчикам удачи, чтобы у них получилось закончить эту привлекательную среду.

    Ubuntu 11.10 с Unity (UPD1)

    Один из самых первых моих дистрибутивов. Благодаря uTouch убунту раньше всех научилась мультитачу и жестам.

    Приятное

    • Хоть какие-то, но всё же жесты
    • Боковое меню удобно листать пальцем
    Неприятное
    • Не удобно делать ПКМ, но зато его можно сделать
    • Иногда работает довольно неторопливо
    • Нет виртуальной клавиатуры, поддерживающей мультитач
    • Не всегда удаётся нажать какую-нибудь кнопку пальцем, приходится доставать стилус
    • Нет кинетического скроллинга, нужно ждать обновления GTK+ до 3.4
    • Скролл-бары! Стандартные совершенно непригодны к использованию на планшетах
    Ubuntu, не смотря на прошлый негативный опыт, вызвала у меня только положительные эмоции. Если Марк разработчики сделают удобную и функциональную экранную клавиатуру для Unity, то я буду использовать этот дистрибутив.

    Android-x86

    Android-x86 - Это проект по портированию Android на архитектуру IA-32 . Из всех основанных на ядре linux систем, эта - определенно больше всех подходит для планшетов. Но увы, релиз ICS-x86 еще не состоялся, и в системе еще очень много багов.

    Приятное

    • Ориентированный на пальцы интерфейс
    • Жесты, мультитач
    • Куча нужных вещей, которые очень нужны на планшете
    Неприятное
    • Нет нормальных клавиатур, работающих под x86 (Или они еще не готовы к ICS, я не знаю), неудобная стандартная клавиатура
    • Помимо клавиатур, большая куча софта не хочет запускаться. Будем надеется, что с выходом смартфона на Intel Atom это изменится
    • Неудобное переключение между физической и виртуальной клавиатурой, ну почему они не могут работать одновременно?
    • Невозможно настроить поворот экрана
    • Много мелких и неприятных багов

    Вместо заключения

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

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

    А зачем он нужен?

    Для начала, давайте разберёмся, зачем вообще вам может понадобится Linux на мобильном аппарате. Обычному среднестатистическому пользователю, вероятно, это не сильно нужно, но ведь есть и специалисты, например, разработчики, администраторы и другие. Конечно, в качестве основного рабочего инструмента это довольно спорное решение. Но если рассматривать его как мобильного помощника, который выручит в дороге или где-то вдали от основного компьютера, право на жизнь у этого варианта есть.

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

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

    Как устанавливать и что для этого нужно

    Итак, вы всё же решили установить на свой планшет Linux. Что вам для этого понадобится:

    • само устройство (ядро прошивки должно поддерживать loop-устройства, тактовая частота не меньше 1 ГГц - все эти данные легко найти или в документации к аппарату, или в сети);
    • полученные на нём root-права;
    • около 4 гигабайт свободного объёма памяти;
    • поддержка файловой системы Ext2.

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

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


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

    Кроме образа и скрипта, вам ещё понадобятся эмулятор терминала для Android и VNC Viewer. Также не забываем включить в настройках системы.


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

    — cd /sdcard/ubuntu

    — sh ubuntu.sh

    После чего скрипт запросит у вас разрешение (например, 1024х768 или другое) и, если вы скачали максимальный образ, графическую оболочку, в которой вы желаете работать. У вас есть выбор между Gnome и LXDE, на мобильных устройствах лучше выбирать второй вариант.

    Останется ответить ещё на пару запросов: логин/пароль (ubuntu/ubuntu), IP-адрес (localhost) и порт (5900). Готово, перед вами полноценный Ubuntu с оболочкой LXDE.


    Плюсом этого способа установки является то, что он требует наименьшее количество действий от пользователя и не ставит Linux вместо Android, а имитирует его. Конечно, существуют способы поставить Linux второй системой или вообще заменить «зелёного робота», но для старта и ознакомления с открывающимися возможностями, вышеописанного способа более, чем достаточно.

    Здравствуйте, дорогие читатели лучшего мобильного портала сайт! В этой статье, я расскажу вам о запуске полноценных операционных систем на Android. Сегодня, речь пойдёт о двух операционных системах - Windows XP и Linux. Итак, приступим к делу.

    LINUX

    Начнем с более легкой инструкции - запуск Linux на Android. Для начала предупрежу, что для данного способа нужны ROOT права. Также, если вы используете смартфон на базе Android 5.0 Lollipop, Android 6.0 Marshmallow или более поздней версии, то вам нужно кастомное ядро. В этой статье используется Nexus 5 с установленным ядром «ElementalX». Итак, приступим.

    Инструкция:
    1. Для начала, нужно скачать и установить программу BusyBox, которая является обеспечением большинства стандартных инструментов Unix.

    2. Далее, скачиваем и устанавливаем программу Linux Deploy, это главный компонент и без него у нас ничего не получится, так как он скачивает дистрибутив из официального зеркала, создает образ диска на microSD карте, монтирует его и устанавливает дистрибутив операционной системы.
    3. Открыв приложение Linux Deploy, переходим в конфигурационную панель. Здесь, выбираем какой дистрибутив вы хотите использовать. В данной стать будет использоваться выбранный по умолчанию дистрибутив Debian в среде LXDE.

    4. Выбрав дистрибутив, нажимаем на кнопку установить. Установка длится около 30 минут.
    5. По окончанию установки, приложение запустит среду Linux и сама настроит рабочее окружение, которое включает в себя базовую систему, сервер SSH, сервер VNC и графическую среду которую мы выбрали ранее. Также, можно через программу можно настроить сервера SSH и VNC.
    6. Вы можете подключиться как и через SSH, так и через VNC, я использую сервер VNC, но вы можете использовать какой хотите.
    7. Если вы подключились через сервер SSH, введите порт «22», а пароль по по умолчанию «changeme».
    8. Если вы, как и я, хотите подключиться через сервер VNC, скачайте программу VNC, запустите ее и в поле впишите адрес «localhost:5900», пароль по умолчание, такой же как и у сервера SSH - «changeme».

    9. Радуйтесь запущенным дистрибутивом Linux!

    Windows XP

    Теперь, о более сложном - запуск Windows XP на Android. Вы скажете как? Ответ прост - Bochs. Именно с этим приложением мы будем эмулировать Windows XP. Bochs - это программа, которая эмулирует операционные системы на базе x86, оно было создано для эмуляции таких операционных систем как, Windows DOS, Windows 3.1, Windows 95, Windows 98. Но сегодня мы попробуем более сложную задачу. Важно отметить, что работа Windows XP будет очень-очень медленна, а также, не будет соединения с интернетом, так что, если у вас есть терпение и вас не интересуют проблемы, которые могут возникнуть, то вперед! Итак, начнем.

    Что нужно:
    1. ISO файл Windows XP
    2. Qemu Manager для ПК
    3.
    4. Bochs SDL
    5. Blank Disk Image

    Инструкция:
    1. Откройте Qemu Manager для ПК и создайте новую виртуальную машину. Назовите ее как хотите, в данном случае ее название будет «XP».

    2. Впишите сколько оперативной памяти вы хотите выделить для виртуальной машины, этот шаг только для ПК, на Android девайсе это никаким образом не скажется. Выберите опцию «не использовать виртуальный диск». Нажмите «далее».

    3. Следующим шагом, нужно перейти в вкладку драйверов и выберите «жесткий диск 0». Далее выберите путь к ранее скачанном «Blank Disk Image».

    5. Наконец, выполнив все пункты, выберите зеленую кнопку в левом верхнем углу, чтобы запустить виртуальную машину. С этого момента, просто установите Windows XP на виртуальную машину как на простой ПК.

    6. После того, как установка завершится, разархивируйте.zip файл Bochs SDL. Переместите «Blank Disk Image» в папку SDL. Переименуйте файл «Blank Disk Image» в «c».

    8. Скачайте и установите приложение Bochs на Android. Далее, откройте его. Приложение само должно определить наличие Windows XP и запустить ее. Помните, это работает очень-очень медленно!

    Чтобы загрузиться на рабочий стол операционной системы Windows XP, нужно подождать как минимум, 10 минут.

    9. Радуйтесь запущенной Windows XP!

    На этом все. Всем спасибо за внимание!

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


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

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

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

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

    2. Получаем права root: $ su
    3. Создаем блочное loopback-устройство, подключаем к нему образ диска и монтируем его: # 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

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

    4. Подключаем все необходимые для работы дистрибутива виртуальные ФС: # mount -t proc proc /mnt/ubuntu/proc # mount -t sysfs sysfs /mnt/ubuntu/sys # mount -o bind /dev /mnt/ubuntu/dev
    5. Настраиваем так, чтобы из chroot-окружения можно было получить полноценный доступ в Сеть: # 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
    6. Переходим в chroot-окружение: # chroot /mnt/ubuntu

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

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

    1. Обновляемся и устанавливаем TightVNCserver: # apt-get update # apt-get install tightvncserver
    2. Создаем файл /root/.vnc/xstartup и пишем в него следующее: #!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey export XKL_XMODMAP_DISABLE=1 icewm & lxsession

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

    3. Запускаем Xvnc с помощью враппера vncserver с правами root: # export USER=root # vncserver -geometry 1024x800

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

    4. Устанавливаем на смартфон приложение AndroidVNC, запускаем его, указываем IP-адрес и порт 5901, подключаемся. На экране должен появиться рабочий стол LXDE.

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

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

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

    5. Запускаем эмулятор терминала (или выполняем «adb shell»), монтируем все необходимое и переходим в chroot (почти так же, как в случае с Ubuntu): # 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, который позволит использовать смартфон в качестве переносного системника, подключаемого к любому монитору.