Який лінукс для телефону. Тонка підстроювання всього і вся під себе. Порівнюємо «Linux» та ядро ​​Linux

Перший у Росії докладний огляднової мобільної ОС

Нещодавно ми розповідали вам про альтернативні операційні системи, представлені на виставці Mobile World Congress 2015. У тому числі йшлося і про Ubuntu Touch. З усіх мобільних ОС ця - єдина, з якою нам досі не довелося познайомитися, оскільки просто не було комерційних апаратів з нею на борту. Але ось, нарешті, до нас у редакцію приїхав замовлений ще у лютому смартфон BQ Aquaris E4.5 – перший смартфон на Ubuntu Touch. Тож тепер ми можемо ліквідувати прогалину та докладно вивчити цю ОС (самому смартфону буде присвячено окремий матеріал).

Для початку – коротка (але вже дуже драматична) історія Ubuntu Touch. Ubuntu – найпопулярніший на даний момент (і вже багато років поспіль) Linux-дистрибутив для десктопів. Розробляє його компанія Canonical, яку очолює мільярдер (і, до речі, другий у світі космічний турист) Марк Шаттлворт. Як і Microsoft, Canonical одного разу схаменулась і зрозуміла, що непогано було б заявити про себе і на мобільному ринку, не обмежуючись десктопної ОС.

Але, на відміну від Microsoft, компанія Canonical не настільки багата, щоб вкласти в цю справу мільярди доларів і купити потужних виробниківсмартфонів, як Nokia. Тому шлях від перших збірок ОС до фінального релізу на комерційних пристроях виявився дуже тернистим. На початку 2013 року ОС демонструвалася на Барселонській Mobile World Congress. Як демонстраційний пристрій використовувалися планшет Google Nexus 10 та смартфон Google Nexus 4, на яких замість Android була встановлена ​​мобільна ОС Ubuntu.

До речі, щоб уникнути подальших непорозумінь обмовимося, що ми називатимемо її Ubuntu Touch. У різний час Canonical називала її і Ubuntu Phone OS, і Ubuntu для смартфонів, і Ubuntu Touch. Важлива відмінність від десктопної Ubuntu (яку, наприклад, теж можна було б встановити на планшети з процесором Intel x86).

Після демонстрації Ubuntu Touch на MWC компанія Canonical розповсюдила раннє складання, яке ентузіасти могли самостійно спробувати встановити на деякі моделі смартфонів та планшетів. Але амбіції самої Canonical були набагато більшими: компанія хотіла не просто створити ще один Linux-дистрибутив, але й вийти на ринок смартфонів із власним продуктом. Та не просто смартфоном, а суперсмартфоном, який, маючи 4 ГБ оперативної пам'яті, міг при підключенні до монітора перетворюватися на повноцінний комп'ютер під керуванням десктопної Ubuntu.

Модель отримала назву Ubuntu Edge і на неї на IndieGoGo. Проте ціль компанія Canonical поставила абсолютно нереалістичну: 32 млн доларів - ніхто ніколи стільки не запитував через краудфандингові сервіси. Незважаючи на величезний ентузіазм Linux-спільноти та досить великі пожертвування низки IT-організацій, тому всі зібрані гроші довелося повернути жертводавцям, і проект Ubuntu Edge було скасовано.

Ця невдача змусила Canonical змінити стратегію та взяти курс на смартфони сторонніх виробників, причому бюджетного сегменту. На MWC 2014 можна побачити прототипи цих смартфонів. Тоді ж був оголошений старт попереднього замовлення на планшет Intermatrix U7. На жаль, . Далі була ще одна спроба – ентузіасти спробували зібрати на IndieGoGo гроші на планшет UbuTab з двома ОС – Ubuntu Touch та Android. Хоча грошей просили набагато менше, ніж Canonical на горезвісний Ubuntu Edge, але все одно не зібрали. Щоправда, на сайті UbuTab планшет доступний для покупки, а постачання обіцяють розпочати у квітні. Однак наживо ніхто цього планшета поки що, судячи з усього, не бачив. На тій же MWC 2015 його не було (про стенд Ubuntu на цій виставці ми вам розповідали).

Загалом, перший і поки що, схоже, єдиний комерційний пристрій на цій ОС - BQ Aquaris E4.5. Його ми використовуємо для того, щоб вивчити операційну систему.

Інтерфейс

Мабуть, найважливіша складова Ubuntu для рядового користувача - це інтерфейс, що має іншу логіку, ніж Android або iOS. По-перше, вся взаємодія з інтерфейсом здійснюється за допомогою свайпів (кнопки Home тут у принципі немає); по-друге, робочий стіл операційної системи містить не іконки додатків, як в iOS і, частково, в Android, а набір віджетів, що динамічно оновлюються; по-третє, для швидкого доступудо ключових або відкритим програмамвикористовується вертикальна панель-меню зліва, явно взята з десктопної Ubuntu з інтерфейсом Unity.

Для порівняння – скріншот десктопної Ubuntu (фрагмент).

Втім, робочого столу, як порожнього простору, в Ubuntu Touch немає.

Ubuntu Touch підтримує багатозадачність. Для переходу між програмами використовується свайп з правого краю екрана ліворуч. З 3D-галереї, що відкрилася після цього жесту, мініатюр можна прибрати непотрібні програми (вертикальним свайпом).

Ще один жест - вертикальний свайп з верхньої межі екрана - відкриває панель сповіщень та швидких налаштувань. Загалом, як у Android. Набір швидких налаштувань має деякі нюанси, але загалом він стандартний.

Робочий стіл

Але - повернемося до робочого столу, що включає сім екранів. Перший називається «Сегодня» і виконує функцію агрегатора найважливішого контенту з решти шести. Тут ми бачимо дату, інформацію про час сходу та заходу сонця, погоду (на поточний день та наступний), події календаря, нещодавні повідомлення, виклики, завдання, популярні темиу Twitter. Дивно, що тонкого налаштуванняекрану «Сьогодні», як і інших екранів, тут немає. Тобто, припустимо, якщо я хочу отримувати інформацію про погоду від іншого постачальника, а не того, який використовується за умовчанням, нічого зробити не можна.

Другий екран називається NearBy, що варто було б перекласти як «Поруч» (дивно, що в русифікованій ОС екран називається англійською). Перехід між екранами, що логічно здійснюється горизонтальними свайпами.

Тут ми знову бачимо погоду (незрозуміло, навіщо було розміщувати її в самому верху на обох екранах), найближчіфотографії з Flickr, актуальні статті Wikipedia (хоча корисність цього сумнівна - Вікіпедія все-таки не ресурс новин) і список найближчих концертів. Нагорі є рядок «Що ви відчуваєте» (явно навіяна фейсбучним «Про що ви думаєте?»). Чесно кажучи, вміст NearBy дуже сумнівний, хоча ідея подати інформацію, так чи інакше пов'язану з місцезнаходженням користувача, є перспективною.

Зрештою, на третьому екрані ми бачимо список встановлених програм.

Не можна сказати, що формою та стилем іконки нагадують десктопну Ubuntu. Швидше, це якийсь дитячо-пародійний варіант іконок iOS та OS X дворічної давності. Зверніть увагу, наприклад, на іконки "Браузер", "Музика", "Контакти", "Калькулятор", "Налаштування системи".

Що стосується набору встановлених додатків, то, з одного боку, тут досить багато зайвого (наприклад, додатку іспанських газет), а з іншого боку, не вистачає найпростіших речей - насамперед поштового клієнта. Але про встановлені програми ми ще поговоримо, а зараз давайте повернемося до вивчення екранів ОС та особливостей інтерфейсу. Зазначимо серйозний недолік, пов'язаний саме з інтерфейсом - неможливість змінити розташування іконок або об'єднати їх. Хіба що можна вибрати відображення категорії програм (наприклад, утиліти або аудіо/відео). Очевидно, це має допомогти, коли іконок стане дуже багато і знайти серед них потрібну буде дуже проблематично.

Четвертий екран є агрегатором новин. Тут ми бачимо рубрику "Заголовки" з великими картинками-прев'ю (стрічка прокручується горизонтально), далі йдуть "Новини всередині країни", "Міжнародні новини", "Спорт", "Техніка", "Фінанси".

Виглядає дуже непогано, і, напевно, це було б зручно, якби можна було налаштувати агрегатор новин для роботи з російськомовними ресурсами. Поки що немає не лише можливості налаштування країни (що особливо дивно виглядає в контексті наявності рубрики «Новини всередині країни»), а й можливості вибору альтернативних джерел. Єдине, що можна зробити - це зняти галочки з тих джерел, які тут представлені, виключивши таким чином із добірки якісь ЗМІ.

П'ятий екран – «Музика». Тут ми бачимо альбоми з 7digital, найближчі концерти з Songkick, популярні композиції з Grooveshark та популярні музичні відео з YouTube.

Як і у разі новин, змінити список ресурсів не можна. Але Головна проблеманавіть не в цьому, а в тому, що ви не можете відразу прослухати треки або подивитися відео. При натисканні на вміст Grooveshark або YouTube вас просто перенаправляють на мобільні версії цих сайтів. Аналогічна історія і з вмістом наступного екрану – «Відео». Тут ми бачимо мініатюри роликів з YouTube та Vimeo, але після натискання на них відкривається браузер.

Щоправда, тут можна подивитися відеоролики, зняті вами на камеру смартфона. А на наступному екрані – «Фотографії» – ви побачите галерею фотографій, зроблених на ваш смартфон. Крім цього, ми тут виявляємо пропозиції додати облікові записи Instagram і Facebook, щоб фотографії з них теж відображалися. І це була б справді корисна можливість. Була б. Якби воно працювало. Додаємо акаунти – і нічого не відбувається. Epic fail. Дякую хоч фотографії з Flickr можна подивитися - але тільки мініатюри, які відображаються.

Додамо ще дві ложки дьогтю в розповідь про екрани. По-перше, переходити від одного до іншого можна лише послідовно. Тобто не можна перейти від першого одразу до п'ятого, наприклад. Будьте ласкаві зробити чотири свайпи (а екрани ще й підгальмовують). По-друге, якщо ви з якогось екрану перейшли на інтернет-сторінку або в будь-який додаток, то назад на той же екран ви вже не повернетеся - тільки на перший екран «Сьогодні», звідки вам знову доведеться «свайпати» до потрапляння на потрібну сторінку.

Це, а також повна неможливість наповнювати екрани джерелами на власний розсуд та відсутність гнучких налаштувань (наприклад, не можна скоригувати відображення контенту) і є головним недоліком робочого столу Ubuntu Touch.

Програми

Тепер подивимося, які програми є на пристрої та в Магазині Ubuntu. Всього на смартфон встановлено 25 додатків. Тішить, що більшість з них можна видалити (на відміну, наприклад, від ситуації з Android та iOS). Невидалені - тільки ті, що мають критичне значення для роботи пристрою та незамінні. Наприклад, це «Телефон», «Повідомлення», «Контакти», «Браузер», «Установки системи», « Зовнішні накопичувачі»... При цьому карти, програма погоди, навіть музичний плеєр і переглядач фотографій можна деінсталювати.

Для деінсталяції треба натиснути на іконку, утримуючи її, після чого відкриється сторінка магазину, де вже кнопка «Видалити». Дивно, що не придумали щось на зразок хрестика в iOS або альтернативних оболонках Android, але й цей варіант зручніший, ніж у Android за умовчанням.

В основних додатках ОС у рядку магазину, де відображається назва розробника, зазначено Ubuntu Core AppРозробники. Але далеко не всі програми Ubuntu Core App Developers є як передвстановлені. Наприклад, у магазині ми можемо знайти такі справді необхідні речі, як Terminal, Document Viewer, File Manager. Чому їх немає в стандартній поставці (натомість там є якісь зовсім не перші потреби речі) - загадка.

Зазначимо ще одну цікаву деталь: як месенджер пропонується використовувати Telegram Павла Дурова. Причому, якщо шукати в Магазині Viber або WhatsApp, ми все одно побачимо Telegram. Але мало того. Telegram ще й досить глибоко інтегрований в операційну систему: зокрема, на панелі повідомлень, що висувається зверху, можна побачити останні повідомлення Telegram, а на екрані блокування – кількість непроглянутих повідомлень. Очевидно, Шаттлворта залучила філософія цього месенджера: жодної реклами, жодної оплати, максимальної захищеності.

У свою чергу, як стандартний навігаційний сервіс пропонується використовувати Here Maps. Версія програми зазначена як 2.0. Але найцікавіше, що серед підтримуваних цим сервісом платформ Ubuntu Touch не значиться (навіть як експериментальна). Хоча є, наприклад, Firefox OS. І судячи з зовнішнього вигляду Here Maps, це не нативна програма, а веб-додаток. Про те, що це таке, ми поговоримо далі.

Що стосується решти встановлених додатків, то ми б відзначили, насамперед, їхню простоту і непоказність. Всі вони досить примітивні і за функціональністю, і на вигляд (щось типу перших версій Android), зате інтуїтивно зрозумілі. Але й тут трапляються дивацтва. Наприклад, у музичному плеєрі є загадкова кнопка «Додати до...» (куди?). Крім того, неможливо запустити програму відеоплеєра і вже з нього вибрати відеофайл.

В цілому, головна проблема набору встановлених програм - відсутність багатьох необхідних речей. Причому якщо якісь із цих речей можна знайти в Магазині (Менеджер файлів, Термінал), а для якихось існують аналоги (Telegram замість Viber і WhatsApp), тобто абсолютно кричущі прогалини: наприклад, хоча смартфон має фронтальна камера, відеоспілкування неможливо, адже немає ні Skype, ні Hangouts, ні будь-якої іншої альтернативи. Також немає поштового клієнта. І навіть Gmail тут лише у вигляді веб-програми.

Веб-програми

Крім нативних додатків, написаних на Qt/QML, розробники можуть створювати веб-застосунки на HTML5, що працюють повністю в інтернеті. Фактично, це мобільні версії сайтів, «упаковані» в самостійну оболонку, завдяки чому вони можуть бути присутніми в Магазині Ubuntu, у списку додатків та на панелі швидкого запуску. Ну і адресний рядокне займатиме частину екрана.

Щось подібне ми бачили у Firefox OS, але там веб-додатки відокремлювалися від нативних. У випадку ж з Ubuntu Touch все повалено в одну купу. І якщо ви, наприклад, шукаєте клієнт для Instagram в Магазині, то не зможете сказати, який з відображених варіантів нативний, доки не зайдете в опис кожного з них. Зайве пояснювати, чому веб-додатки гірші за нативні: це і продуктивність, і неоптимізований під конкретний пристрій інтерфейс, і, головне, необхідність інтернет-з'єднання. Крім того, цілком логічно, що веб-програми не можуть нормально використовувати апаратні можливості смартфона: наприклад, веб-додаток Instagram не має доступу до камери (звідки б йому взятися, якщо його немає в веб-версії Instagram?).

Простіше кажучи, ви з тим самим успіхом могли б просто відкрити мобільну версіюсайту через браузер На скріншотах вище ми бачимо мобільну версію Instagram, відкриту через браузер (ліворуч) та веб-додаток Instagram ( неофіційний клієнт) з Магазину Ubuntu. У Play Store та App Store такої халтури, звичайно, немає. При цьому в Android та iOS вам ніщо не заважає створити іконку швидкого запуску потрібного веб-сайту на робочому столі. Виходить, фактично, той самий веб-додаток, що на Ubuntu Touch. Але Canonical вигідніше «підмішувати» веб-застосунки в загальний набір програм у магазині. А це позначається на зручності пошуку.

Налаштування та взаємодія з іншими ОС

Оскільки Ubuntu Touch – вільна ОС, то логічно чекати там максимум свободи для користувача. Однак меню налаштувань і в цілому можливості персоналізації операційної системи виглядають дуже скромно - набагато скромніше, ніж у менш вільного Android і зовсім невільної iOS.

Наприклад, засмучує відсутність налаштувань лівої панелі програм. Чому не можна додати до неї ті програми, які потрібні мені, прибравши інші? Та й налаштування окремих параметрів інтерфейсу залишають бажати кращого. Наприклад, ви можете змінити фон екрану блокування, але не можете винести на центральне коло інформацію з тих програм, які вас найбільше цікавлять. Із справді цікавого варто відзначити хіба можливість сховати будь-які екрани робочого столу.

Друге розчарування пов'язане з неможливістю інсталяції Android-додатків. Нагадаємо, що така функціональність є і у Sailfish OS, і у BlackBerry 10.3. І нехай Android-додатки там працюють неідеально, але все ж таки ця можливість дуже важлива. Проте справжнім сюрпризом для нас став той факт, що настільна операційна система OS X при під'єднанні до комп'ютера смартфона з Ubuntu Touch сприймає його як Android-апарат і запускає Android File Transfer. Який виявляється повністю працездатним: за його допомогою можна переписувати файли з комп'ютера на смартфон і назад.

Жодних проблем не виникає і при підключенні смартфона до Windows. ОС Microsoft взаємодіє з ним так само, як із звичайним Android-апаратом. Але це цілком очікувано. А ось від роботи Ubuntu Touch спільно з десктопною Ubuntu ми все ж таки очікували чогось більшого. Наприклад, якогось софту, що дозволяє повноцінно працювати із вмістом смартфона (типу BlackBerry Blend). Але Ubuntu 14.02.2 LTS також сприймає смартфон на Ubuntu Touch як звичайний знімний накопичувач. Тому якщо ви «убунтовод» – не сподівайтеся на якусь особливу взаємодію смартфонної та десктопної ОС.

Ну а як плюс ми відзначимо, що, по-перше, з усіма трьома десктопними ОС смартфон взаємодіє без будь-яких драйверів і додаткових програм, а по-друге, Ubuntu Touch може працювати безпосередньо з файлами, скопійованими з комп'ютера. Наприклад, ви можете закинути музичний альбом у відповідну папку - і він нормально відтворюватиметься, і навіть обкладинка буде відображатися. Жодних перепон, як у iOS, тут немає.

Попередні висновки

Операційна система Ubuntu Touch знаходиться на самому початку свого шляху. Крайній мірі, якщо рахувати тільки комерційні апарати. І в цьому контексті вона виглядає дуже багатообіцяюче: відзначимо цікавий інтерфейс, дуже зручне керуванняжестами, і навіть інтуїтивну зрозумілість і самої ОС, і додатків. Але все ж таки не варто забувати, що публічна історія Ubuntu Touch почалася ще два роки тому. І за спиною цієї розробки стоїть не маленький стартап Jolla, а серйозна компанія Canonical із 10-річною історією. Якщо врахувати ці вступні, то неминуче закрадаються сумніви у майбутньому операційної системи. При всіх цікавих ідеяхна сьогоднішній день це неконкурентоспроможний продукт: немає багатьох критично важливих додатків (поштовий клієнт, Skype), зате є безліч недоробок і глюків, відсутня підтримка Android-додатків, магазин додатків засмічений так званими «веб-додатками», які не можуть вважатися повноцінною заміноюнативним додаткам.

До того ж, зовнішній виглядОС дуже спірний. У Jolla дизайн був одним з козирів, Android в останні два роки теж зробив великий крок вперед, Ubuntu Touch залишився десь в епосі Android 2.x, хоча деякі елементи ОС виглядають дуже симпатично. Тут можна згадати ще Firefox OS, у якої зовнішній вигляд навіть непоказніший, та й особливо цікавих знахідок у сфері взаємодії з ОС немає. Але Firefox OS орієнтована на бюджетний сегмент та операторські рішення. І, судячи з MWC 2015, певні успіхи Firefox OS є. Тоді як творці Ubuntu Touch досі не мають чіткого уявлення про те, як треба розвивати ОС і на якому полі вона могла б потіснити існуючих гравців.

На жаль, цікавих ідей та гарного імені недостатньо для того, щоб сьогодні конкурувати на перенасиченому мобільному ринку. Користувачі хочуть мати певний рівень якості або якісь дійсно унікальні можливості. Такою можливістю могло б стати гнучке налаштування робочого столу Ubuntu Touch: наприклад, щоб можна було змінювати розташування всіх елементів, підключати свої джерела інформації (наприклад, Яндекс...). ).

Нарешті, можна було б зіграти на розширеній взаємодії з десктопною Ubuntu - принаймні це привабило б користувачів Ubuntu, яких чимало. Але й цей шлях, мабуть, здався Canonical надто складним. В принципі, ідея створити єдину операційну систему для різних класів пристроїв (ПК, мобільні пристрої, ТБ...) є перспективною. Але для користувачів це має сенс тільки тоді, коли за наявності двох і більше складових екосистеми вони отримують деякі унікальні можливості (згадаємо, наприклад, функції Handoff та Continuity у OS X та iOS). У Ubuntu Touch нічого такого немає. А отже, у нинішньому вигляді операційна система може бути цікава лише фанатам-ентузіастам. Сподіватимемося, що їх спільними з Canonical зусиллями ОС все-таки переросте свої дитячі хвороби і стане ще одним гравцем на ринку мобільних пристроїв.

Пройшло зовсім небагато часу з моменту випуску перших смартфонів під керуванням ОС 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 block/mmcblk0p2 /mnt/gentoo # mount -t 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, який дозволить використовувати смартфон як переносний системник, що підключається до будь-якого монітора.

Здрастуйте у мене є міні-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% :)) можете також ставити питання тут, будемо збирати інформацію, вирішувати проблеми разом, мені це теж дуже цікаво.

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.

Багато власників 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_MFAT 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.