• Устанавливаем Linux-программы на смартфон под управлением Android. Устанавливаем Linux-дистрибутив на телефон и планшет под управлением Android

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

    Linux или не Linux?

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

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

    BotBrew: список поддерживаемых устройств

    BotBrew был протестирован на следующих устройствах: Barnes & Noble NOOK Color, LG P970 Optimus Black, Huawei Ascend M860, HTC Desire, HTC Evo 4G, HTC Evo 3D, HTC Inspire 4G, HTC Droid Eris, HTC Hero, Samsung Galaxy Nexus, Samsung Galaxy S2 (GT-I9100), Samsung Galaxy Y (GT-S5360), Motorola Atrix 4G, Motorola Droid/Milestone, Sony Ericsson Xperia X8, Asus EeePad Transformer TF101.

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

    Ну и довершает картину то, что в Android просто нет многих стандартных компонентов Linux, включая, например, даже такие неотъемлемые, как графический стек X Window или библиотека GTK+. Кое-какие попытки все это сюда принести, конечно, предпринимаются, но дальше полурабочих альфа-версий дело не двигается.

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

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

    BotBrew

    Проект BotBrew призван решить многие проблемы с установкой Linux-софта, которые только могут возникнуть у пользователя, и подготовить систему Android к принятию инородных для нее приложений. По сути, система состоит из четырех компонентов:
    • репозиторий с прекомпилированными для Android приложениями, используя который можно установить многие Linux-приложения с помощью одной команды;
    • менеджер пакетов, в качестве которого используется легковесный Opkg или dpkg вместе с apt-get в экспериментальной версии BotBrew Bazil;
    • менеджер процессов runit, необходимый для того, чтобы правильно запускать и поддерживать работу демонов, если таковые будут установлены;
    • собственная система сборки, которая содержит в себе все инструменты, необходимые для кросс-компиляции приложений с помощью любого настольного Linux-дистрибутива.
    Для работы это чудо программистской мысли требует всего ничего: права root и немного свободного пространства во внутренней памяти смартфона или на карте памяти. Причем первый вариант предпочтительнее, так как в случае с SD файлы будут свалены на виртуальный диск, работа с которым поддерживается далеко не всеми ядрами.


    Начальная инициализация

    На данный момент классическая версия BotBrew, использующая собственный репозиторий, позволяет устанавливать такой софт, как dcron, GCC, Git, SSH-сервер dropbear, консольный браузер Lynx, сканер безопасности Nmap, инструмент бэкапа rsync, редактор Vim, веб-сервер lighttpd, скриптовые языки Python и Ruby, а также несколько десятков других пакетов. Устанавливается это все, кстати говоря, в выделенный каталог во внутренней памяти смартфона/планшета и никак не захламляет основную систему. Другими словами, избавиться от BotBrew и всего, что ты установил, можно будет, просто удалив один каталог.

    Ставим софт

    Итак, как же использовать BotBrew для установки Linux-софта? Для начала нам понадобится пакет с самой программой. Он есть в Google Play (отмечу, что нужен BotBrew root, а не экспериментальный Bazil) и весит меньше мегабайта. После установки запускаем и нажимаем кнопку «Proceed» внизу экрана, чтобы софтина выкачала все необходимые для ее работы компоненты, такие как консольный менеджер пакетов, и другие утилиты (в терминах Debian Linux - bootstrap). Весят они всего несколько мегабайт, поэтому ждать придется недолго. По окончании установки BotBrew выведет на экран окно с официальной интернет-страницей проекта, которое можно смело закрывать.

    Теперь на экране ты должен увидеть список пакетов, доступных к установке. Их довольно много, но графических приложений по описанным выше причинам ты среди них не найдешь. Зато есть разномастные серверы, компиляторы и интерпретаторы, так что всем, кто хочет серьезно «поиграться» со смартфоном, будет где развернуться. Для установки пакета достаточно тапнуть по его имени и на следующем экране, содержащем информацию о приложении, нажать кнопку «Install».

    Танцы с бубнами

    Если во время bootstrap’а BotBrew возникли проблемы, ты можешь попробовать установить его вручную с помощью следующей команды:

    Wget http://repo.botbrew.com/anise/bootstrap/install.sh -O - | su
    Если и это не помогло, можно попробовать удалить все установки («Remove BotBrew» в настройках) и затем попробовать запустить эту команду.

    После этого пакет появится на вкладке «Installed», однако никакой кнопки «Run» или чего-то подобного ты не увидишь. Приложение придется самостоятельно запускать из консоли, что, впрочем, логично. Само приложение устанавливается внутрь каталоговой структуры /data/botbrew, в котором «эмулируется» реальное окружение Linux-дистрибутива с каталогами /etc, /usr и другими. А чтобы не мучить пользователей необходимостью набирать полный путь до команды, разработчики BotBrew предусмотрели одноименную команду-враппер. Чтобы с ее помощью запустить, например, установленный консольный браузер Lynx, следует набрать такую команду:

    $ botbrew lynx http://xakep.ru
    Как вариант - каталог /data/botbrew/bin можно добавить в переменную окружения PATH, но это придется делать после каждого запуска терминала:

    $ export PATH="$PATH:/data/botbrew/bin"
    С демонами и разными сетевыми сервисами, кстати, дела обстоят намного лучше. После старта демоны сразу будут запущены, а управлять их включением можно через графический интерфейс, доступный по нажатию на кнопку «Play» в нижней части интерфейса BotBrew. Некоторые приложения могут потребовать создания дополнительных пользователей и изменения их параметров, это можно сделать так же, как в обычной Linux-системе:

    1. Создание пользователя:
      $ botbrew adduser vasya
    2. Открытие пользователю доступа в интернет:
      $ botbrew addgroup vasya inet
    3. Переключение BotBrew на другого пользователя:
      $ botbrew su vasya
    Обрати внимание, что все эти изменения будут касаться только виртуального окружения BotBrew и никак не отразятся на основной системе. Консоль можно использовать также для установки приложений в обход графического интерфейса. Для этого следует использовать консольный менеджер пакетов Opkg, синтаксис команд которого полностью совместим в apt-get:

    $ botbrew opkg install dropbear
    Обратная операция:

    $ botbrew opkg remove dropbear
    Чтобы оставаться «на острие прогресса», репозиторий BotBrew нужно время от времени обновлять, нажав на соответствующую кнопку в графическом интерфейсе (ее ни с чем не спутаешь). Новые версии пакетов будут отображаться на вкладке «Upgradable». Достаточно тапнуть по его имени и нажать «Upgrade».

    BotBrew Basil

    В маркете можно найти также приложение под названием BotBrew Basil, помеченное как экспериментальное. По сути, это все тот же BotBrew, но с одним весьма важным отличием. Вместо собственных репозиториев и менеджера пакетов Opkg он использует ARM-репозитории Debian Linux и менеджер пакетов apt-get. Это значит, что количество софта, которое можно установить с помощью «бразильской версии» приложения, намного больше. В десятки раз больше.

    Кроме использования дебиановских репозиториев, Basil отличается также слегка измененным интерфейсом. Например, сразу после запуска он предлагает выбрать каталог установки. По умолчанию используется /data/botbrew-basil, что, на мой взгляд, вполне логично, однако ты можешь выбрать любой другой, в том числе на ext2-разделе карты памяти (FAT не подойдет).

    Второе важное отличие - это возможность выбрать способ использования приложения, которая появляется сразу после нажатия «Proceed». Вариантов здесь четыре:

    1. Use BotBrew on the command line - по сути, аналог установки в стиле обычного BotBrew.
    2. Use the dpkg/APT system - установка вместе с apt-get и репозиториями Debian. Рекомендуемый вариант установки.
    3. Run Python programs - аналог первого варианта с автоматической установкой Python.
    4. Install a minimal Debian - минималистичная установка Debian.
    Поясню второй и четвертый пункты. Первый BotBrew и первый пункт в этом списке делают не что иное, как установку минималистичной Linux-системы (состоящую всего из нескольких команд и библиотек), внутри которой как раз и происходит запуск Linux-софта. Однако apt-get, в отличие от минималистичного Opkg, требует более-менее полноценной установки Linux. Поэтому, выбрав второй пункт, ты получишь у себя на смартфоне этакий микро-Linux. А если мы можем установить микроверсию, почему бы не установить более-менее полноценный дистрибутив. Для этого и существует четвертый пункт.

    После bootstrap’а BotBrew Basil на экране появится все тот же интерфейс управления установкой приложений, знакомый нам по классической версии приложения, а в системе появится команда botbrew2, с помощью которой можно запускать софт. Каких-то существенных отличий в управлении здесь нет, кроме разве что команды apt-get вместо opkg и возможности подключения дополнительных репозиториев (в том числе репозитория первого BotBrew) прямо через интерфейс установки приложений.

    Берем дело в свои руки

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

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

    Тем не менее мы можем воспользоваться наработками других людей, чтобы автоматизировать процесс сборки софта. Одно из наиболее развитых и интересных решений из этой области - набор скриптов SCRIPTSET , разработанный пользователем smitna с XDA Developers. Он позволяет буквально в пару команд собрать множество самых разных приложений, в числе которых htop, ImageMagick, iptables, ELinks, Screen, mc, node.js, Samba, strace, QEMU, Parted, SANE (его можно использовать для прямой печати на принтере с телефона!) и множество других. Скрипт сам выкачает кросс-компилятор, все необходимые зависимости и приложения, наложит патчи, где это необходимо, и сгенерирует готовый для распаковки на телефон архив.

    SCRIPTSET работает только в Linux, но, если у тебя Windows, ты можешь установить Ubuntu в виртуальной машине. Далее следует открыть терминал и установить необходимые для сборки кросс-компилятора инструменты:

    $ sudo apt-get install build-essential cmake autoconf2.13 scons
    После этого можно получить сам SCRIPTSET и распаковать его:

    $ cd ~ $ wget http://goo.gl/zvnom -O scriptset-2.6.zip $ unzip scriptset-2.6.zip
    В результате распаковки мы получим… еще один архив: scriptset-2.6.tar.bz2. Но и это еще не все, архив запакован без традиционного для tar корневого каталога, поэтому его необходимо создать самостоятельно. И уже в него производить распаковку:

    $ mkdir scriptset $ cd scriptset $ tar -xjf ../scriptset-2.6.tar.bz2

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

    $ chmod 755 *.sh

    # vi ~/scriptset/configuration.conf // Каталог установки приложений на смартфоне TARGET_SYSROOT="/data/sysroot" // Целевой процессор TARGET_MARCH="armv7-a" TARGET_MTUNE="cortex-a9" TARGET_MFPU="neon" TARGET_MFLOAT="softfp"

    Этого будет достаточно для корректной сборки любого приложения; целевым процессором будет стандартный ARMv7 с дополнительным набором инструкций NEON. Такой установлен в любом смартфоне, выпущенном за последние три-четыре года. Каталог /data/sysroot будет использован для установки приложений на смартфоне, однако, как это ни странно, его придется также создать и на настольной машине:

    $ sudo mkdir -p /data/sysroot $ sudo chown user:users /data/sysroot $ sudo chmod 777 /data/sysroot
    Как объясняет автор скриптов, такое действие необходимо потому, что пути для ключевых каталогов в некоторые приложения вшиваются на этапе сборки. Поэтому, если бы мы собрали приложение, используя в качестве корневого текущий и любой другой каталог, оно бы просто не заработало на смартфоне из-за различия в путях. Я уверен, что корректнее было бы решить эту проблему с помощью chroot, но проще и быстрее создать нужный каталог, а по окончании работ - удалить его.

    Далее мы должны указать список приложений, которые планируем собирать. Для этого открываем файл package_selection.conf и меняем no на yes в нужных опциях. Например, чтобы собрать bash, ImageMagick и Screen, нужно поменять три следующих строки:

    # vi ~/scriptset/package_selection.conf BASH=yes IMAGEMAGICK=yes SCREEN=yes
    Имей в виду, что настройки, находящиеся между строками # ALWAYS NEEDED, менять нельзя. Эти приложения и библиотеки нужны всегда, и без них другие приложения просто не собираются. Теперь можно скомпилировать приложения. Для этого достаточно запустить скрипт build.sh без аргументов:

    $ ./build.sh
    Если все необходимые пакеты были установлены и компилятор в ходе сборки не выдал никаких ошибок, в результате сборки в текущем каталоге появятся два архива: cs-sysroot.tar.bz2 и android-mysysroot.tar.bz2. Первый - это окружение, необходимое для запуска приложений, созданное кросс-компилятором, а второе - сам набор приложений. Оба этих архива необходимо скинуть на карту памяти смартфона, а затем, запустив на нем эмулятор терминала или подключившись по ADB, выполнить две команды:

    $ tar xjf /sdcard/cs-sysroot.tar.bz2 $ tar xjf /sdcard/android-mysysroot.tar.bz2
    В результате во внутренней памяти смартфона появится каталог /data/sysroot, в котором и будут размещены приложения. Запускать их следует из того же терминала, указывая полный путь. Например:

    $ /data/sysroot/usr/bin/bash
    Ну или после запуска терминала добавить /data/sysroot/usr/bin в PATH:

    $ export PATH="$PATH:/data/sysroot/usr/bin"

    Выводы

    Несмотря на довольно серьезные различия между Android и типичным Linux-дистрибутивом, установить консольные Linux-приложения на смартфон не так уж и сложно. К сожалению, о графических приложениях речи пока не идет, но проекты портирования библиотеки Qt и графического сервера Wayland в Android уже есть, и в скором времени, надеюсь, мы получим рабочее решение.


    Впервые опубликовано в журнале «Хакер» от 08/2013.

    Linuxsoid! мой друг Юрий Герук

    Вторая часть о том как установить Ubuntu на ваш Android смартфон или планшет на данной платформе.

    Доброго времени суток пользователи сайта Linuxsoid! Вчера была опубликована статья, с установкой операционной системой Linux Ubuntu для смартфона или планшета, это был только первый способ как я смог это сделать. Хотелось еще раз сказать, что я не удалял систему Androd, а запустил вторую поверх другой. Я бы не стал дальше интересоваться или даже пытаться установить ее себе, пока мой друг Юрий Герук мне подал хорошую идею, по установке системы и только после этого мне стало интересно и я начал свою работу.

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

    В первой части (Способ №1) я написал как установить систему через программу под названием Complete Linux Installer . Был рассказан полный порядок действий, при работе на данной программе, что скачивать как устанавливать и все прочие. Сегодня я хотел предоставить вашему вниманию второй способ (Способ № 2). Мы с вами будем производить установку Linux Ubuntu на устройство под управлением Androd через мобильное приложение под названием Linux Deploy . Приложение так же доступно для вас в бесплатном доступе на Google Play Market, где скачать его может абсолютно любой желающий пользователь.

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

    1. Смартфон и компьютер с выходом интернет (желательно использовать Wi-Fi) чем лучше соединение, тем быстрее произойдет загрузка.
    2. USB кабель (для подключения вашего устройства к настольному компьютеру или ноутбуку)
    3. Аккумулятор желательно заряженный на 100%, но не меньше 50%
    • Приступаем к выполнению нашего задания! Чтобы не получилось очень длинно,я буду пропускать моменты, которые указывались в способе №1 . Первым и простым шагом для нас это будет получение рут прав себе на устройстве, в предыдущей статье я показывал подробно как это делается.
    • У кого Root права получены может приступать к следующему шагу, а именно включить на своем устройстве отладку по USB (в прошлой статье тоже написано как этого добиться). Берем в руки наш смартфон и переходим в официальный магазин Play Market, где нам предстоит скачать приложение с названием Linux Deploy . Если у вас настроен аккаунт то вы сможете перейти по ссылке с названием программы и установить приложение используя компьютер. После установки открываем приложение и смотрим далее!
    • Как видим на скриншоте выше, нам показана программа с простым и не сложным интерфейсом. При первом запуске программа показывает нам небольшую справку, перечень того чтобы начать пользоваться этой программой. После выполнения этих требований приступаем к настройке. Чтобы настроить нашу программу необходимо перевести ее на Русский язык (делаем у кого автоматом не перевелась программа) Ставим Русский язык и галочку напротив пункта не отключать экран.

    Смотрим как показано на рисунке ниже:

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

    • Создаем новый профиль для нашей новой учетной записи Linux. Для этого необходимо вернуться на главный экран программы, да именно на тот, в котором изображена справка дальнейших действий и нажимаем на шапку программы (где нарисован пингвин). После этого вас автоматически перекинет в новое окно, где от вас требуется нажать на плюсик и создать профиль. Как подражатель примера я создал профиль с названием Linuxsoid.com . Вы можете назвать его как угодно!
    • Когда написали имя профиля нажимаем кнопку ОК. После этого просто выбираем нужный профиль.
    • После этого всего я сворачиваю лавочку и иду спать а вы как хотите дальше сами, конечно же я пошутил! Сворачиваем приложение и возвращаемся в Play Market и качаем Es- проводник (у кого стоит скачивать повторно не надо да и у вас не получиться:-D) . Открываем проводник и создаем папочку под названием Ubuntu. После того как создадите папку, нужно узнать путь к ней. У меня это будет карта памяти как у вас я не знаю.
    • При создании нажимаем на желтый плюсик, после того у вас появиться всплывающие окно, где выпираем создание папки и плавно перетекает в наименовании папки (лучше писать на английском языке, не стоит испытывать судьбу своего смартфона, одно скажу к хорошему это не приведет проверенно на собственном опыте). По окончанию нажимаю на лог истории и смотрю путь к нашей с вами папки. У меня получилось так: /sdcard/ubuntu/.

    Первоначальная настройки программа прошла успешно? Тогда переходим к скачиванию и установки дистрибутива к себе на устройства, в новь созданную папку. Для этого нужно открыть приложение Linux Deploy и нажать, как бы на стрелочку похожею на загрузку, где вас должно перекинуть на новое окно с нужной для нас информацией. Что мы там видим? Программа предлагает нам установить систему, но для этого нужно ее выбрать. В этом окне нажимаем на дистрибутив и перед вами откроется все доступный выбор систем (Которые возможно пойдут на вашем устройстве). Я выбираю Linux Ubuntu. После того как выбрал нажимаю на установить и у вас должна начаться установка (загрузка), она занимает по времени около одного часа. поэтому лучше запитать смартфон к зарядке!

    • По окончанию установки нажимаем на кнопку старт и у вас должно произойти подключение к нужным серверам. Прелесть этого приложения в том, что ему не надо дополнительно прописывать терминал и давать команды приложение автоматически будет прописывать нужные команды. По окончанию вы увидите как показано на рисунке! Это в том случае если у вас прошло все как по маслу и не вылезли другие ошибки.
    • После таких надписей необходимо скачать и установить себе на устройство дополнительно приложение под названием VNCViewer как и в первом способе по установке. В сервере создаем новое подключение где адрес пишем localhots а в имя указываем любое и нажимаем подключиться. Приложение будет подключаться и если получиться спросит у вас пароль! Пароль на всех серверах всегда одинаковый (changeme) ну если вы подключаетесь через компьютер пароль будет другой я его не могу вам сказать так как я его не знаю.

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

    На этом все если возникнут проблемы пишите их в комментариях поможем вам их устранить по мере возможности. Материал подготовлен Александром Макаренков для сайта Linuxsoid.com.

    12 ноября 2011 в 03:17

    Переселение души: linux на android планшете

    • *nix

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

    Моя история начинается с прочтения , после которой я и решился приобрести чудо китайского планшетостроения: 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 +

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

    Здраствуйте у меня есть мини-PC ug 802, как я могу установить на него линукс? teltar

    Это очень интересная для меня тема, друзья, поскольку я профессионально занимаюсь администрированием Linux-серверов. На серверах это интересно, но для меня уже буднично и обыденно. А вот установка дистрибутивов Linux на устройства с ARM-архитектурой — это интересней на порядок.

    В чем разница между компьютером и смартфоном или планшетом?

    На самом концептуально разница небольшая — и мобильные и десктопные устройства, или даже серверы сделаны по одним и тем же принципам. Однако, для мобильных устройств используют иную архитектуру процессора. CPU для десктопов разработаны на архитектурах x86 или amd64. А в большинстве мобильных устройств установлен процессор на ARM-архитектуре . Исторически, это связано с тем, что такие процессоры имеют значительно меньшее энергопотребление, что есть жизненная необходимость для мобильных устройств.

    Какие ОС можно установить на мобильные устройства?

    Так вот, все программы, в том числе и операционная система, должны быть разработаны специально под эту архитектуру, для того чтобы работать на этом оборудовании. Посему, обычные версии Linux, устанавлеваемые на десктопы или серверы здесь не подойдут. К счастью, есть множество дистрибутивов и версий для этой архитектуры. Начиная с пресловутой Android, которой оснащены большинство смартфонов и заканчивая экзотическими дистрибутивами, вроде специализированного Backtrack (ныне Kali Linux). Но больший интерес, конечно, представляют какие-то более известные дистрибутивы.

    Что такое Android?

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

    Ядро — базовый функционал, который позволяет использовать все устройства и опции аппаратной платформы — то есть драйвера и управление устройствами. Также в ядро включены некоторые базовые программы и утилиты командной строки. Дело в том, что в семействе Linux (именно в этом значении чаще всего подразумевается — семейство операционных систем на этом ядре, а не само ядро) — графическая оболочка это отдельная часть, свой уровень абстракции.

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

    Это android-девайс. Соответственно, в нём по-умолчанию должна быть установлена Android. Которая, фактически, и есть Linux. Но с некоторыми серьёзными ограничениями. Установка какого-нибудь другого Linux, может значительно расширить возможности мобильного устройства. Возможности использования становятся фактически безграничны. Ну представьте себе, использовать мобильник в качестве сервера! Множество инструментов становятся доступны. Если это планшет, подключив к нему периферийные устройства через OTG-кабель, можно использовать его как полноценный компьютер! Зачем? Это уже другой вопрос. Надеюсь, наш читатель поделится своими затеями в комментариях.

    Как установить Linux на android-устройство?

    Итак, установка.

    Вариантов два — можно сделать полноценную установку, что называется — на «железо». Это фактически перепрошивка устройства. При этом, мы теряем нативный фунцкионал устройства, предусмотренный производителем. А это может быть совсем не тем, чего нам хотелось. К примеру, мини-компьютер UG 802, за который интересуется наш читатель — это устройство, предназначенное для расширения фунциональности телевизоров. Ибо его можно вставить прямо в HDMI-порт любого телевизора, превратив его в Smart.

    К счастью, есть второй способ установки Linux — прямо внутри основной операционной системы устройства, в данном случае Android. Это позволяет запустить так называемое chroot-окружение внутри Android. При этом вы получите две родственных операционных системы, работающих параллельно на одном ядре — андроидовском. И между ними можно будет переключаться.

    Такой подход удобен для смартфонов и планшетов, но может не подойти для UG 802. В случае с ним, может понадобиться перепрошивка нужной операционной системы. А это уже некоторый риск, что можно испортить устройство.

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

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

    Кто такие хакеры?

    Да-да, не удивляйтесь, это именно хакинг — нестандартное вмешательство в работу и устройство систем и программ, их изменение и расширение функциональности. Именно таково исконное значение этого слова. А хакер — это вовсе не взломщик и не писатель вирусов, как большинство людей привыкли думать. Это в первую очередь исследователь. Да, он ломает системы, вскрывает то, что не было задумано быть вскрытым, но делает это с целью познать, а не навредить.

    https://xakep.ru/2012/10/22/android-tablet-linux-install/ — статья об установке Linux на смартфоны в старейшем журнале, который как раз является отражением сути хакерства.

    https://habrahabr.ru/post/221543/ — хабр, не менее старый и даже более известный ресурс. А статья здесь свежее, и очень подробно описывает опыт установки Arch Linux поверх Android, в виде chroot-окружения.

    https://geektimes.ru/post/44220/ — гиктаймс — сайт от создателей хабра, и на нем нашелся подробный мануал по установке Debian поверх Android на смартфон. Статья хоть и очень старая, но затрагивает фундаментальные вещи, которые необходимо понимать прежде чем приступать к такой операции. Это если и не поможет вам установить, но поможет набраться знаний, без которых невозможно дальнейшее развитие темы и решение проблемы. А изучив такие статьи, вы будете чувствовать себя уже более уверенно и сможете искать информацию по теме уже более точечно, на конкретные вопросы, которые нужно будет решать при установке.

    К примеру, наверняка, на вышеупомянутых сайтах эти статьи по теме не единственные. Можно всегда попробовать поискать ещё статьи об этом на таких специализированных ресурсах. Я нашел и просмотрел пару топиков об установке linux на мобильные устройства на 4pda.ru вот так , например

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

    При возникновении проблем (а они возникнут с долей вероятности 99% :)) можете также задавать вопросы здесь, будем собирать информацию, решать проблемы вместе, мне это тоже очень интересно.