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

Итак, Asus T100 — планшет-трансформер на Windows 8/8.1 от, внезапно, Asus. Тут есть UEFI, поэтому руки гиков сразу добрались до него, ведь, в теории, на него можно поставить другие системы! Но вся подлянка от Asus заключается в том, что загрузчик тут 32-х битный и он не умеет ничего, кроме загрузки Window s(почти любой Windows, не только предустановленной, но только x86). Если тут обитают представители Asus — скажите, пожалуйста, зачем вы это сделали? Зачем так издеваться над нами, пользователями? Процессор-то нормальный, x64.

Некоторое время спустя товарищи из Android x86 сделали тестовую бету Android, которая загружалась в Live. Там был grub, который загружал сам Android. Но так как ядра 4.0 в те времена ещё не было, то планшет зависал спустя некоторое время. У него не работали кнопки, не работала яркость и так далее. Технодемка, проще говоря. Упорные товарищи (и я среди них) пытались даже играть на зависающей системе.



Планшет вышел в продажу в конце 2013 года, купил я его в мае 2014 года, а в сентябре уже выпустили что-то похожее на Android.

Через какое-то время в профильной ветке 4pda (куратором которой я и являюсь, к слову), появилась инструкция по установке Android на жёсткий диск. Ну, как установка… загрузка из файлов, лежащих на диске C в папке Android.
Сам андроид состоит из файлов data.img, system.sfs/img (зависит от того, что написано в grub.cfg), kernel, ramdisk.img, initrd.img и install.img (очевидно, установка системы, но он нигде не используется). Апгрейд системы сводится к замене файлов в папке. Удобно.

image

У меня вы не увидите data.img, так как я пошёл ещё дальше и всю дату кинул на другой раздел, но об этом позже.

Работает всё это чудо через rEFInd, который видит все .efi файлы на всех разделах и позволяет их загрузить. Теперь есть возможность загрузить grub, отлично! Так оно и работает — Android запускается через груб, который запускается через рефинд. Казалось бы, что ещё нужно для счастья? Можно запускать сколько душе угодно систем и на сколько хватит встроенного накопителя (пользователи Т100 с жёстким диском в клавиатуре очень рады данному факту). Теперь подлянку устроил сам рефинд: он не определяет, кнопки громкости и вообще ничего не определяет, кроме стрелок на докстанции. А по умолчанию выбрана винда (он видит и её .efi файл) и грузит её, если не успеть выбрать другую систему. Без докстанции рефинд вообще не нужен и толку с него никакого. До определённого момента.

Рефинд выглядит как-то так:

image

Фон, иконки и прочее редактируется в refind.conf на разделе EFI, в который он и устанавливается.

Я сам с самого начала появления этой инструкции пользовался такими костылями. А что поделать? Заскучал по андроиду и его играм. Всё же, как не крути, Android нужен для потребления контента (моё мнение; интересно послушать ваше мнение в комментариях), а Windows для этих дел не очень подходит.

Шло время, умельцы выпускали билды для Т100, в которых понемногу чинили баги. Но главная проблема с зависаниями никуда не пропала и все ждали ядро 4.0 и умельцев, которые на это ядро повесят Android.

Параллельно в это время развивался лагерь убунтоводов, у которых система работала получше, чем Android, ведь новые ядра без проблем ставились в Ubuntu. Но не без изъянов: wi-fi не работал, звук не работал, но система не вылетала даже на старом ядре.

Выход ядра 4.0 в корне всё поменял, ведь там добавили поддержку всяких кнопок на планшетах и т.д. А самое главное — поддержку eMMC (его в паре со старым ядром обвинили во всех смертных грехах T100). Android теперь не вылетал, а Ubuntu работала ещё стабильнее и быстрее (по ощущениям).

С этого момента люди и задумались — а раз есть хороший билд, то может можно подключить тачскрин или кнопки громкости к рефинду и выбирать систему без докстанции? Эти самые кнопки работают в биосе и родном boot manager, значит, их можно попробовать и к рефинду прикрутить. Но так ничего и не сдвинулось с места.

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

На том же 4pda мне посоветовали и рассказали, как и что поменять в конфиге рефинда, чтобы он сразу загружал grub и при этом не ждал, а сразу стартовал. Это гениально.

Достаточно было поменять всего 2 значения в конфиге, чтобы моя мечта свершилась:

1. timeout 05 меняется на timeout -1
2. default_selection 1 меняется на default_selection grub

После этих манипуляций рефинд не ждёт пользователя, а сразу загружает grub. То, что нужно. Но есть и минус: запускать нужно с зажатой vol down, чтобы попасть в boot manager и выбрать систему. Конечно, можно зайти в биос и поменять порядок загрузки (поставить первым рефинд, а виндовый загрузчик вторым) и тогда груб будет загружаться по нажатию кнопки без всяких vol down. Что я и сделал.

image

Но у Android есть один огромный минус — data.img весом в 2/4/8 гигабайт. И он занимает сразу весь объём, а не растёт по мере заполнения. Пользовался я 8 gb файлом, но недолго. В мою голову пришла идея перекинуть дату на отдельный раздел, на котором в то время лежала Ubuntu (триобут был даже, во как!).

Снеся Ubuntu и отформатировав 15 гб в ext3, я встал в ступор. Как направить груб на раздел, а не на файл? Подсказка пришла прямо во время запуска системы: detecting android x86… found at /dev/mmcblk0p4, но это я понял позже, а сначала пытался писать hd(0,5), груб это не принял и позже я заметил /dev/mmcblk0p4. По аналогии я написал "/dev/mmcblk0p5" вместо /android/data.img. И, успех! 15 гигабайт памяти в Android!



Так же в пути к system файлу я заменил .sfs на .img, так как sfs не позволяет работать руту в системе, а Android без рута, что iOS без джейлбрейка. На том скрине я уже разошёлся с xposed и переделал систему под себя, так как что-то менять, связанное с датой, я уже не планировал.

И что же мы имеем в итоге? А вот что:
1. Аналог Asus Transformer Book Duet, цена которому $600 на самую «слабую» комплектацию ($355 у Asus T100. С учётом курса доллара на сегодняшний день). Правда, там работают две ОС сразу и переключаются кнопкой на клавиатуре, либо виртуальной кнопкой на планшете.
2. Хорошее устройство для вардрайвинга (на Хабре статья в трёх частях про данное дело), но частично: wi-fi адаптер работает хорошо, но Kali Linux/Intercepter-ng в андроиде не видят адаптер.



Kali Linux тот ещё зверь на старом ядре и для начала нужно побороть mmcblk0rpmb, которые не дают установить систему (краш во время установки), а работать в live не позволяет, опять же, старое ядро, которое не видит адаптер. Вообще. Даже просто сёрфинг невозможен. Но эти два минуса (и в установленной системе (если повезло с mmcblk0rpmb и установка не крашнулась) и в лайве) убираются внешним wi-fi адаптером, благо порт usb 3.0 есть в докстанции. Один, правда, но и на том спасибо.
3. Не до конца рабочий Android (пока что): акселерометр не работает, что привело к нерабочему автоповороту экрана и невозможности играть в гонки, в которых нет перенастройки поворота на кнопки. Планшет «засыпает» не как обычно. Он вроде как и тушит экран, но подсветка горит на минимальной яркости. В Ubuntu такого нет, там экран выключается, а не понижает яркость.
4. Процессор всё ещё x86 и никогда не станет arm, поэтому не все игры запускаются, но это беда всех x86 процессоров.
5. Atom Z3740/3775 на Android. На моей памяти такой мощи x86 на Android ещё не было. А может и было, но в любом случае Z3740 (первые партии Т100) или Z3775 (следующие партии Т100) — мощная штука. В антуту набирает 35 тысяч или 36. Не пишите про arm, которые набирают по 50-60 тысяч, так как это совсем другая архитектура и глупо их сравнивать.
6. Понты. «Зацени, у меня тут две системы есть!»

Также хочу поблагодарить людей с 4pda, с xda-dev, с группы google+ (убунтоводы), которые бесплатно, сами, своими силами, тратя своё время на нас, делают всю работу, чтобы простым пользователям было хорошо. Спасибо вам огромное. Да и не было бы этого «рассказа», если бы не вы.

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

Комментарии (5)


  1. netto
    27.05.2015 13:00
    +1

    > Если тут обитают представители Asus — скажите, пожалуйста, зачем вы это сделали? Зачем так издеваться над нами, пользователями? Процессор-то нормальный, x64.

    Я не представитель, но почти уверен, что дело в том, что емкость памяти (RAM) на планшете такова, что выгоды от x64-версии нет, а есть недостатки, связанные с бОльшим занимаемым объемом (в памяти и на диске) у тех же программ. Это может быть некритично на десктопе с большим диском и возможностью увеличения памяти, и не имеет никакого смысла для планшета, который имеет ограниченный размер SSD и не предполагается производителем для изменения его OS пользователем.


    1. Leggera Автор
      27.05.2015 16:35

      ОЗУ в Т100 всего два гигабайта. Но при этом на других ОС(тот же Линукс) нет проблем и х64 вполне неплохо работает.
      Кстати поменять Windows можно. С Core версии на такую-же. Ключ зашит в планшет и автоматически применяется на этапе установки системы.


    1. ValdikSS
      29.05.2015 17:57

      Да не, это просто какая-то подлянка от Intel. Референсный UEFI почему-то 32-битный. Ребята из WeTek сделали для своего Wintel 64-битную версию, и поделились ей: www.cnx-software.com/2015/04/29/how-to-install-64-bit-bios-on-sunchip-cx-w8-unbricking-method

      Возможно, CodeRush вам подробней расскажет о причинах такого подхода.


      1. CodeRush
        29.05.2015 23:31
        +1

        Там были проблемы с 64-битным БИОСом на мобильных платформах, которые вынуждали либо релизить 32-битную версию сейчас, либо откладывать релиз на полгода, понятно, что выбрали первое. И до сих пор некоторые пакеты ПО вроде Windriver IoT Kit выпускаются только для 32-битных UEFI, и приходится поддерживать обе версии.
        Вообще, преимущества определенные для слабых машин у 32-битного UEFI имеются, грузится машина чуть быстрее, под runtime-сервисы использует чуть меньше памяти и т.п., но геморроя с 32-битными EFI-загрузчиками это все не стоит.


  1. asocial
    27.05.2015 13:35

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