Купил себе для решения описанных в этой теме задач ASUS Chromebook C201 на RK3288 вместо процессора и с предустановленной Chrome OS вместо операционной системы.
Почитал руководства на debian wiki и archlinuxarm wiki и загрузил с внешней флешки настоящий GNU/Linux.
В линуксе заработало:
- Клавиатура, тачпад;
- WiFi;
- Иксы с GLES через xf86-video-armsoc и блобы для Mali T764, которые я притащил из Chrome OS (es2gears крутит шестерни, chromium и mplayer ускоряются через egl);
- Управление питанием: suspend to ram, управление частотой процессора, регулировка яркости подсветки, отображение заряда батареи, кнопка «power» и датчик закрытия крышки;
- Есть звук, но он тихий. Немного покрутил ползунки в alsamixer и сжег наушники (хорошо, что догадался не вставлять их перед этим в уши), на этом мои эксперименты со звуком были приостановлены.
Не заработало:
- VPU. Вывод видео ускоряется через egl, но декодируется оно силами CPU. Сил ему хватает на декодирование среднестатистического full-hd с не очень большим битрейтом, приобретенного на торрентах. 1080p 60fps с youtube тормозит. У сообщества есть наработки для использования VPU через libhybris, но пока это скорее демонстрация потенциальных возможностей, а не рабочее решение;
- Веб-камера не заработала сразу после установки. Наверное можно ее завести, но я не пытался.
Про Chrome OS:
Система сделана на базе gentoo linux. Никакого portage для конечного потребителя там, естественно, уже нет. Вместо X11 используется Freon, так что никакого графического линуксового софта увидеть там просто так не удастся. Есть эмулятор терминала во вкладке браузера, bash, клиент и сервер ssh, можно штатными средствами без хаков включить root доступ. После пары хаков можно собирать из исходников и подгружать недостающие модули ядра (например для монтирования nfs).
В системе неплохое (если привыкнуть) управление клавиатурными комбинациями и жестами на тачпаде. Есть некоторое подобие тайлинга, если потянуть мышью границу между окнами на скриншоте, то менять размер будут сразу два окна, как в тайлинговом WM.
Грузится оно очень быстро. От «холодного» старта до запущенного браузера проходит меньше времени, чем требуется ноутбуку на x86_64 и debian для возврата из гибернации.
Для защиты персональных данных пользователя (от похитителей ноутбуков, а не от гугла) используется ecryptfs. Судя по тому, как быстро работает шифрование, оно использует аппаратное ускорение. Повелители консоли с включенным режимом разработчика могут шифровать всё, в том числе раздел с chroot, про который написано ниже.
Про GNU/Linux через chroot:
Для тех, кто хочет использовать нормальный линукс на хромбуке, но не хочет отказываться от декодирования видео через VPU, есть проект crouton. Он представляет из себя набор скриптов для запуска линукса через chroot.
Графику можно выводить через X11, запущенное на отдельном vt, или через xiwi — X11 на виртуальном фреймбуфере через окно браузера. В первом случае аппаратное ускорение графики не работает только на ARM SoC (особенности бинарных блобов для Mali), во втором случае аппаратное ускорение просто не работает. Но работать можно комфортно и с программным ускорением, а видео смотреть через плеер в chrome os.
Со всем остальным в chroot никаких проблем нет. Есть общий буфер обмена и скрипты для отправки уведомлений из chroot в chrome os (например, можно отобразить во всплывающем уведомлении новое сообщение, которое прилетело в mcabber).
Зачем я купил нетбук на ARM, если с ним столько проблем?
Он весит 980г и делает всё, что от него требуется по 12-16 часов без подзарядки. Его ближайший аналог по весу, времени автономной работы и цене — ASUS EeeBook X205TA на Bay Trail-T. А у него, судя по тому, что пишут в сети, еще больше проблем с линуксом, и его интеловский процессор проигрывает в некоторых тестах рокчипу.
В Octane 2.0 браузер набирает 7624 балла. Если у кого-нибудь есть желание сравнить производительность своего x86-совместимого железа с современным armv7l — пишите названия тестов из стабильной версии Phoronix Test Suite, ну или еще каких-нибудь тестов.
>>> Просмотр (1366x768, 109 Kb)