Установка линукс на планшет вместо виндовс. Устанавливаем Linux на Windows-планшет

06.07.2019

Доброго времени суток всем.

Моя история начинается с прочтения данной статьи , после которой я и решился приобрести чудо китайского планшетостроения: superpad. Данный планшет брался как игрушка для «поковырять немного», по совместительству, читалка, игралка на пары и смотрелка в долгую дорогу… Сразу отмечу, что у меня два usb винчестера на 500 гб и 1тб, на которых и хранится все самое важное для веселой жизни, и разбиты они в ntfs и ext4. И, естественно, планшет их не видит.

Вот мой доброволец

Вот и первая причина поковыряться. После просмотра 200 страниц форума на xda-developers.com очертились определенные

На данном этапе все попытки вскрытия данного планшета отложились в долгий ящик. До славного времени для студента – сессии. А так как на сессии студенты делают абсолютно все, лишь бы не по предмету, то веселые ночные посиделки в интернете на заведомо буржуйских сайтах возобновились. И пришла гениальная идея поставить на данный планшет православный linux, в моем случае – ubuntu.
Что из этого вышло, смотрим ниже.

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

Нам понадобятся:

рассмотрим основные этапы загрузки android и linux
1. Power on and boot ROM code execution Power on and boot ROM code execution
2. The boot loader The boot loader
3. The Linux kernel The Linux kernel
4. The init process The init process
5. Zygote and Dalvik console(bash, zsh...) / wm(kde, gnome...)
6. The system server Boot completed
7. Boot completed

Как видно, отличия начинаются с этапа выполнения init.
Его-то и проще всего поменять.

Честно напишу, думал, что можно использовать только адроидовский инит и что он намертво прикручен к ядру. И даже получив пример рабочего ramdiskа от другого планшета , не думал, что он заведется…

содержимое ramdiska
bin dev etc home init init.rc lib linuxrc mnt newroot opt proc root sbin sys tmp usr var
В /bin лежит busybox, в /sbin – switch_root ссылкой на него.
Код init из ramdiskа от zt-180

#!/bin/sh echo Starting from initram image. Echo Waiting for SD-CARD wake up... sleep 3 echo "Mounting new rootfs" mount -t ext2 /dev/mmcblk0p2 /newroot && echo OK echo Hold on, switching root... exec switch_root /newroot /sbin/init echo hrm, have a shell instead exec /bin/ash

Остается прошить ramdisk в память (я использовал burntool под xp) и - вуаля, этап загрузки. Да, прошивал я вместо recovery, так что для запуска Linux приходится зажимать клавиши при старте.

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

Настраиваем автологин на первую консоль
В /etc/init/tty1.conf заменяем последнюю строчку на exec /bin/login -f Yor_Login < /dev/tty1 > /dev/tty1 2>&1 потом в своем ~/.bashrc можно прописать команды, которые будут стартовать при автоматическом логине.
Боремся с икс-сервером
У меня он определенно не дружил с тачскрином, xorg.conf и xterm… удалил драйвер synaptic, закинул в ~/.xinitrc следующее:
#!/bin/bash # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ # /etc/X11/xinit/xinitrc # # global xinitrc file, used by all X sessions started by xinit (startx) # invoke global X session script #. /etc/X11/Xsession xclock -geometry 50x50-1+1 & exec xterm -geometry 80x66+0+0 -name login
Боремся с рабочей средой
Я захотел поставить kde, так как мне безумно нравится отрисовка графики библиотекой qt. Сразу скажу: да, поставилось и завелось, но КАК…
Во-первых, сразу настроил автологин:
в /etc/kde4/kdm/kdmrc находим и меняем под себя следующее
AutoLoginEnable=true # If true, auto-login after logout. If false, auto-login is performed only # when a display session starts up. # Default is false #AutoLoginAgain=true # The delay in seconds before automatic login kicks in. # Default is 0 AutoLoginDelay=3 # The user to log in automatically. NEVER specify root! # Default is "" AutoLoginUser=Login # The password for the user to log in automatically. This is NOT required # unless the user is logged into a NIS or Kerberos domain. If you use this # option, you should "chmod 600 kdmrc" for obvious reasons. # Default is "" AutoLoginPass=Password
и, как написано, делаем chmod 600 kdmrc в консоли под рутом, чтобы нехорошие личности не подсмотрели наш пароль.
Во-вторых, при входе подозрительно долго висела заставка, и я, засомневавшись, вызвал startkde из консоли. После долгого и нудного показа всевозможных ошибок наконец загрузилась плазма в режиме нетбука. Графические эффекты выключены, так как мы сидим под framebufferом, и наблюдаются местами дичайшие тормоза, но все же это kde и оно загрузилось!
Тонкая подстройка всего и вся под себя
У каждого своя, оптимизацию я пока что не проводил, а сделать предстоит очень многое: ускорить загрузку, оптимизировать рабочее пространство. Посматриваю в сторону более легковесного wm – e16 – но пока основным не сделал. так же нужно откалибровать тачскрин, благо что виртуальная клавиатура уже есть в kde.
Посматриваю в сторону openbox +

.
В этой статье мы расскажем вам, как успешно установить рабочую версию Ubuntu на планшет Windows 2-в-1.

Завидуете быстрому распространению дешевых Windows планшетов 2-в-1? А не запустить ли на таком Linux? Испанский производитель смартфонов BQ, конечно, договорился с Canonical ради продаж планшета Aquarius M10 с предустановленной Ubuntu, но ожидаемая цена - более £200; а зачем переплачивать, когда, оказывается, можно - правда, со значительной настройкой - установить Linux на одно из тех дешевых устройств Windows?

Все эти устройства используют малобюджетный четырехъядерный процессор Intel Atom, известный под общим названием Bay Trail, и нам удалось найти один такой планшет; на нем мы и сфокусировались на нашем уроке. Это устройство - Linx 1010, с процессором Atom Z3735F, 2 ГБ ОЗУ, 32-ГБ встроенной EMMC (плюс слот для дополнительной карты microSD), двумя полноразмерными портами USB и сенсорным экраном с поддержкой мультитач. Его можно приобрести со съемной клавиатурой и трекпадом на площадках типа www.ebuver.com за £ 150. Эти устройства поставляются с предустановленной Windows 10, но, как вы поймете, на них можно и запустить, и установить разновидности Linux.

В идеальном мире вы бы просто создали живой USB-диск с Linux, подключили его к компьютеру- и вперед; но придется преодолеть ряд затруднений. Во-первых, эти планшеты сочетают 64-битный процессор с 32-битным EFI, а большинство дистрибутивов ожидают 64-битный процессор с 64-битным EFI или 32-битный процессор с традиционным BIOS, так что они не распознают USB-диск при загрузке. Во-вторых, хотя по мере свежих выпусков ядра аппаратная поддержка быстро улучшается, она все-таки из коробки не очень полная. Но не волнуйтесь - если вы временно согласны жить с ограниченными возможностями (ситуация улучшается почти ежедневно), вы можете установить и запустить работающий Linux на планшете с процессором Bay Trail. Вот что надо делать.

Стоит изготовить полную резервную копию вашего планшета в его текущем состоянии, чтобы при необходимости восстановить его исходные настройки. Лучшим инструментом для этого однозначно является бесплатное Windows-приложение под названием Macrium Reflect Free (www.macrium.com/reflectfree.aspx). Установите его на планшет, затем создайте резервную копию всего диска на microSD-карте памяти планшета и после этого создайте предохранительный загрузочный USB-накопитель Macrium для восстановления из резервной копии. Учтите: слот карты памяти microSD не обнаруживается спасательным диском, и чтобы вернуть свой планшет в состояние по умолчанию, вам понадобится USB-читалка для карт microSD, распознаваемая программой Macrium.

Подготовив резервную копию, беритесь за дело. Планшеты Bay Trail очень похожи, но не идентичны, поэтому стоит поискать модель вашего планшета в сочетании с соответствующими терминами (‘Linux’, ‘Ubuntu’, ‘Debian’ и т. д.) и посмотреть, что всплывет. Вы, вероятно, найдете таких энтузиастов, как Джон Уэллс (www.ifwhome.com), у которых есть подробные руководства и загружаемые скрипты для запуска Ubuntu на планшете Asus Transformer T100TA, и большая часть оборудования работает. Еще один хороший ресурс - вики DebianOn (https://wiki.debian.org/InstallinaDebianOn), где вы найдете много других планшетов, снабженных указаниями, что работает и на какие проблемы нужно обратить внимание, и полезными ссылками для получения дополнительной информации.

К сожалению - нашему - для планшета Linx 1010 нет единого удобного инструментария, и нам пришлось немного поэкспериментировать, прежде чем мы нашли лучший способ.

Поддержка оборудования


Каково текущее состояние аппаратной поддержки планшета Bay Trail? Оно, конечно, варьируется от устройства к устройству, но есть и различия.

Вот что вы должны искать при тестировании планшета:
» ACPI
Это касается управления питанием. «Из коробки» оно практически отсутствует, но последние ядра имеют тенденцию поддерживать отображение состояния батареи - Linx, похоже, является здесь исключением из правил. Приостановки и спящего режима следует избегать.

» Wi-Fi
Последние ядра снова улучшили поддержку, но многие устройства используют беспроводные адаптеры SDIO, не поддерживаемые без заплаток или заказных драйверов вроде найденных на https://github.com/hadess/rtl8723bs.

» Bluetooth
Последние ядра часто нуждаются в заплатках, хотя наш планшет Linx держал связь по Bluetooth, даже когда внутренний адаптер Wi-Fi перестал работать.

» Звук
Проблема многих планшетов; даже если драйвер распознан и загружен, требуемая прошивка может отсутствовать. Будьте здесь осторожны - есть сообщения пользователей о повреждении звуковых карт при попытке активировать их.


Обновите ядро до 4.1 или новее, чтобы Ubuntu работал с сенсорным экраном вашего планшета


» Сенсорный экран
Как мы видели, старые ядра их не поддерживают, но обновление до ядра 4.1 или новее должно дать положительные результаты, хотя и с некоторой настройкой.

» Камера
Здесь мало что сделано до сих пор. В большинстве случаев вам придется подождать появления драйверов.

.
Для планшета Linx 1010 мы решили остановиться на Ubuntu. Мы в долгу перед Яном Моррисоном за огромную работу по созданию модифицированной версии Ubuntu (14.04.3 LTS), которая работает не только как liveCD, но и как установщик. Мы экспериментировали с последними релизами Ubuntu -15.10 и ежедневными сборками 16.04 - но хотя live-дистрибутивы работают нормально, их установка оказалась невозможной. Впрочем, еще не все потеряно, как вы узнаете попозже. Итак, самый простой и легкий способ установить Ubuntu на планшет с процессором Z3735F - взять неофициальную «официальную» сборку квази-Ubuntu 14.04.3 LTS от Яна. Она поставляется с поддержкой 32-битной UEFI, встроенной в ISO, и включает самодельные драйверы для ключевых компонентов, в т.ч. процессора Z3735F и внутреннего адаптера Wi-Fi. Однако нет поддержки сенсорного экрана, поэтому к планшету придется подключить съемную клавиатуру и тачпад.

Перейдите на www.linuxium.com.au на вашем основном ПК и посмотрите соответствующий пост (от 12 августа 2015 г., но последнее обновление в декабре) в разделе Latest. Нажмите на ссылку Google Drive и выберите ссылку синего цвета Download [Загрузить], чтобы сохранить файл Ubuntu-14.04.3-desktop-linuxium.iso в папку Загрузки.


Можно создать себе установочный диск Ubuntu на настольном ПК с помощью утилиты UNetbootin - это быстро и (в данном случае) работает эффективно


После этого берите свежеотформатированную флешку - она должна быть емкостью не менее 2 ГБ и отформатирована в FAT32. Простейший способ создания диска - использовать UNetbootin, выбрать флешку, отыскать ISO-образ Ubuntu и создать USB-накопитель. Записав, извлеките накопитель. Подключите его к одному из USB-портов в Linx, затем включите, одновременно удерживая кнопки включения и + уровня звука. Секунд через пять вы должны увидеть подтверждение, что меню загрузки вот-вот появится - когда это произойдет, стукните пальцем по Boot Manager [Менеджер загрузки]. Клавишей курсора выбери те пункт EFI USB Device и нажмите Enter, чтобы открыть меню Grub. Далее, выберите Try Ubuntu without installing [Попробовать Ubuntu без установки] и снова нажмите Enter.


При появлении запроса установите разделы вручную - вам надо сохранить исходный раздел EFI


Вы увидите экран загрузки Ubuntu, и после длительной паузы (и пустоты на экране) должен появиться рабочий стол. Вы должны также получить мгновенное уведомление, что обнаружен внутренний адаптер Wi-Fi - это один из ключевых признаков того, что данный ремикс дистрибутива Ubuntu создавался специально для устройств Bay Trail.

До сих пор вы должны были работать с планшетом в портретном режиме; пора переключить его в более удобный ландшафтный вид, и мы сделаем это, нажав кнопку Settings [Настройки] в правом верхнем углу экрана и выбрав System Settings [Системные настройки]. Выберите Displays [Экраны], задайте в раскрывающемся меню Rotation Clockwise [Вращать по часовой стрелке] и нажмите Apply [Применить] (сама кнопка большей частью за пределами экрана, но приглядевшись, вы обнаружите ее левый кусок вверху экрана).

Затем подключитесь к своей сети Wi-Fi, на жав кноп ку бес проводной связи на панели меню, выбрав свою сеть и введя пароль. Теперь вы готовы дважды щелкнуть по Install Ubuntu 14.04.3 [Установить...] и следовать знакомому мастеру для установки Ubuntu на свой планшет. Вы заметите утверждение установщика, что планшет не подключен к источнику питания, хотя вы должны были сделать это перед установкой - это симптом плохой поддержки ACPI в Linux для этих планшетов.

Рекомендуем перед нажатием кнопки Continue [Далее] отметить Download updates while installing [При установке загрузить обновления], после чего вы, вероятно, увидите ошибку ввода/вывода fsyncing/closing - просто нажмите Ignore [Пропустить], а затем Yes [Да], когда появится запрос на отмонтирование различных разделов.

На экране разбиения диска появится с виду отличная новость- Ubuntu предлагается установить рядом с Windows; но работать это не будет, в основном из-за попытки установиться на карту microSD вместо внутренней памяти. Эта карта не обнаруживается при загрузке, и установка в итоге потерпит неудачу. Вместо этого мы собираемся установить Ubuntu вместо Windows, так что выберите Something els [Другое].

Игнорируйте любые предупреждения о /dev/sda - вместо этого сосредоточьтесь на /dev/mmcblk0, который находится во внутренней флэш-памяти. Вы увидите четыре раздела - нам необходимо сохранить два первых (Windows Boot Manager и неизвестный) и удалить два раздела NTFS (/dev/mmcblk0p3 и /dev/mmcblk0p4 соответственно). Выберите поочередно каждый из них и нажмите кнопку «-», чтобы удалить.

Далее выберите созданное свободное пространство (31145 МБ или около того) и нажмите кнопку «+». Сначала создайте основной раздел - уменьшите отведенное место на 2048 МБ, оставив их для раздела подкачки, установите точку монтирования/, все остальные параметры оставьте прежними - и жмите ОК. Теперь выберите оставшееся свободное место и снова нажмите кнопку «+». На этот раз установите Use as [Использовать как] в swap area [область подкачки] и нажмите OK. Наконец, нажмите выпадающее меню Device for bootloader installation [Устройство для установки загрузчика], выберите раздел Windows Boot Manager [Менеджер загрузки Windows] и нажмите кнопку Install Now [Установить сейчас]. Остальной процесс установки должен пройти гладко. По окончании, однако, не нажимайте сразу кнопку Continue testing or Reboot now [Продолжать тестировать или сразу перезагрузить]. Во-первых, надо выполнить важный шаг, делающий вашу копию Ubuntu загружаемой - установить 32-битную версию загрузчика Grub 2. В пошаговом руководстве (см. врезку ниже) показан простой способ сделать это с помощью удобного скрипта, любезно предоставленного Яном Моррисоном.

Эксперименты с поддержкой Linux



С подключением внешнего адаптера Wi-Fi, установка Debian на нашем планшете Linx 1010 была довольно простым процессом


Единственный другой дистрибутив, который мы смогли успешно установить на планшет Linx 1010, был Debian Jessie (8.3). Его уникальность в том, что и 32-, и 64-битные версии работают с 32-битным UEFI без каких-либо изменений, но нет поддержки живого режима: придется установить его прямо на жесткий диск.
Поддержка Wi-Fi не предоставляется из коробки - чтобы наша подключаемая карта распознавалась, пришлось добавить несвободный пакет прошивки для флэш-накопителя USB. Аппаратная поддержка была минимальной, хотя обновление ядра до 4.2, по крайней мере, позволило распознать внутренний адаптер Wi-Fi.

Еще мы попробовали Fedlet - ремикс Fedora (http://bit.ly/ fedora-fedlet) в качестве live-USB, но чтобы загрузиться, пришлось использовать утилиту Windows (Rufus) для создания USB-флешки. Производительность была крайне низкой, а внутренний адаптер Wi-Fi не распознался. Зато работал сенсорный экран.

Нам также удалась загрузка из специализированного Arch Linux ISO, имеющего поддержку SDIO WiFi и 32-битного UEFI. Его можно взять на http://bit.ly/arch-baytrail. но его установка быстро обрывается. Версия Porteus с http://build.porteus.org запускается и работает, но требует много возни, а затраченные усилия не дали результатов лучше, чем все остальные варианты, которые мы пробовали.

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

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

Большинство планшетов на данный момент поставляются с операционной системой Android, есть и планшеты с Windows, но планшеты на Linux встречаются очень редко. С появлением Ubuntu Touch положение в этой сфере немного улучшилось, но все еще остается не настолько хорошим как хотелось бы.

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

Естественно, лучшим планшет для линукс будет планшет, поставляемый с Ubuntu Phone или тот который официально поддерживается этой системой. Это гарантирует что все оборудование будет совместимо и все будет работать правильно. Но таких планшетов очень немного и стоят они достаточно дорого.

Планшеты с Ubuntu Phone

На данный момент он всего один. Это BQ Aquaris M10. У компании BQ уже есть два смартфона с Ubuntu Touch, а теперь она замахнулась на создание планшета. Он поступил в продажу этой весной и уже доступен по цене $ 400. Давайте пока рассмотрим его характеристики:

  • Экран 10,1 дюйм с поддержкой мультитач
  • Процессор: MediaTek Quad Core MT8163A 1.5GHz
  • Батарея: 7280mAh
  • Full HD (1080p) камера для записи видео в высоком качестве
  • ОЗУ: 2 Гб
  • Встроенная память 16 Гб
  • Поддержка MicroSD до 64 Гб
  • Основная камера 8 мегапикселей с поддержкой автофокуса
  • Фронтальная камера: 5 мегапикселей
  • Фронтальный микрофон
  • Разъем HDMI
  • Габариты: 246х171х8.2 мм
  • Вес: 470 г.

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

Планшеты официально поддерживаемые Ubuntu Phone

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

Ubuntu Phone официально поддерживает несколько устройства из линейки Google Nexus и еще несколько производителей. Вот они:

  • Nexus 10
  • Google (ASUS) Nexus 7

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

Планшеты поддерживаемые сообществом

Кроме официально поддерживаемых Canonical планшетов, Ubuntu Phone была портирована на несколько других устройств сообществом. Вот эти устройства:

  • Asus Transformer Infinity
  • Asus Transformer
  • Asus Transformer Pad TF300T
  • Samsung Galaxy Note 10.1
  • Sony Xperia Tablet Z
  • Dell Streak 7
  • HP Touchpad
  • Toshiba Thrive
  • Toshiba AC100
  • Aionol Novo7 Venus
  • Samsung Galaxy Tab2

Возможно со временем будут появляться другие устройства, поддерживающие Ubuntu. Наблюдать за процессом портирования Ubuntu Phone для планшетов и Android устройств, можно в соответствующей ветке форума XDA . Если вы знаете другие планшеты, на которых хорошо работает Ubuntu Phone, напишите в комментариях.

х86 планшеты для Linux

Третий и самый распространенный способ получить планшет с linux - это покупка Windows планшетов для Linux. По сути, Linux можно установить на любой планшет с процессором архитектуры x86. Обычно на таких планшетах установлена операционная система Windows.

Здесь вы вольны в выборе, можете устанавливать любой дистрибутив, не только Ubuntu, также можете поставить две системы сразу Windows и Linux. Но здесь есть пару НО. Во-первых, неизвестно насколько хорошо будет поддерживаться х86 планшет операционной системой. Проблемы с оборудованием никто не отменял. Второе вам может не понравиться внешний вид планшета и его характеристики, поскольку такие планшеты уже старые, а большинство новых уже работают на процессорах ARM. И вы же понимаете что интерфейс обычного Linux, мягко говоря, не очень готов для использования на планшетах.

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

ARM планшеты для Linux

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

Еще одним минусом можно назвать то что вы сможете установить не все дистрибутивы, а только те, что поддерживают ARM и доступен будет только портированый для ARM софт, а это еще сильнее усложняет ситуацию.

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

Выводы

Как видите из этой статьи, планшеты на Linux существуют и ими в принципе можно пользоваться. Но это все еще редкое и сложное явление. Самый простой и надежный способ - это Ubuntu Phone, здесь и интерфейс приспособленный, и аппаратное обеспечение поддерживается. Второй, и более-менее надежный способ - установка Linux на x86 планшет. Ну а ставить Linux на планшет ARM я вообще не рекомендовал бы, дело это сложное, нет гарантий что все будет работать так как нужно. А что вы думаете обо всем этом? Стоит ли использовать LInux на планшете? У вас есть планшет с Linux? Напишите в комментариях!