Как за неделю подружить gma3600 (intel cedar trail) и linux

В подарок отцу был куплен Asus x101ch. На первый взгляд шикарный нетбук, особенно в отношении цена-качество. В Евросети я отдал за него скромные 7500 рублей (дело было зимой). Больше всего меня привлекли матовый дисплей, двухъядерный 1.6Ghz Atom и заявленная возможнось просмотра Full HD (1080p), что в большей степени сказалось на выборе его в качестве замены старому eee pc 900. Ослеплённый положительным опытом, полученным от использования Intel Atom на неттопе с Debian 6, и всем вышеперечисленным, я забыл самое главное: изучить вопрос о работоспособности данного девайса в Linux до покупки, за что впоследствии и поплатился...

Первая попытка установить Linux или "Try Ubuntu"

Радостно освободив нетбук от упаковки, в очередной раз приступил к уже привычной операции — установке Ubuntu 12.04 LTS на новый девайс. Но уже после загрузки иксов в live сессии я был огорчён низким разрешением и невозможностью его изменить (800х600, у нетбука 1024x600). Чувствовалось, что рисовалось всё софтверно, а за всем этим стоял vesa драйвер. К тому же наблюдалось очень странное поведение мыши: она то пропадала, то опять появлялась — что спустя несколько секунд начинало сильно раздражать. Установка на диск ситуацию никак не изменила. Всё указывало на то, что проблема кроется в видеодрайвере.

Спустя день рысканий по просторам интернета вырисовывалась приблизительно такая картина:

  1. Тема посвященная gma3600. 42 страницы. Третья по популярности на русскоязычном форуме Ubuntu в разделе Графическое оборудование
  2. Отсутсвие 3d как такового (В любой ОС).
  3. Существование проприетарного драйвера с доступом к хардверному декодеру (video acceleration api).
  4. Intel пользовалелям нетбуков с gma3600 "сочувствует". Но помочь ничем не может (не хочет?).
  5. Наличие Linux (MeeGo) для Cedar Trail. Тут же замечание о том, что про Win8 можете забыть.
  6. Ко всему прочему имеют место быть проблемы со сном в Linux. А также не работает HDMI, VGA и ряд клавиш Fn.
  7. Сам графический чип является детищем компании Imagination Technologies, а именно, PowerVR SGX545, который в gma3600 является "логическим" продолжением gma500. Последняя, в свою очередь, имеет очень дурную славу не только среди линуксойдов.

На тот момент весь этот набор уже заставил меня задуматься над целесообразностью покупки и спонсирования вендоров, выпускающих железо с такой поддержкой. Но делать было нечего, надо было привести в рабочее состояние нетбук, на котором даже предустановленная Win7 работала похабно. Подарок и сопутствующие ему положительные эмоции дарящей и принимающей сторон были омрачены окончательно. Попытки установить проприетарный драйвер из ppa приводили к чёрному экрану. На Ubuntu 12.10 в принципе не загружались иксы после установки. Бекпортирование ядра 3.7.1 в Ubuntu LTS принесло некоторый успех — нормальное разрешение экрана, а в качестве бонуса — нерабочий драйвер wifi. На третий день после покупки я понял, что сопротивление бесполезно, и решил установить MeeGo.

Двухдневная баталия с MeeGo

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

Но счастье было недолгим. Буквально через час после установки, человечек радостно сообщил о наличии обновлений, которые я, недолго думая, установил. Результат не заставил себя долго ждать... Отвалился wi-fi, причём сразу, что очень насторожило. Перезагрузившись с флешки и сравнив образы ядра, предположил, что его обновление и стало тому причиной. Переставил, выключил обновления, руководствуяюсь принципом "работает — не трогай", и отдал в пользование отцу.

Не прошло и часа, как отец рассказал о странном поведении системы: установка mc (midnight commander) аналогично обновлению запорола wi-fi, хотя сама установка не тянула за собой никаких пакетов и тем более обновлений библиотек. Наигравшись с переустановкой дистрибутива, обнаружил для себя необяснимый, фатальный и ужасный баг — установка любого (да-да любого) пакета приводила к той же проблеме. Под подозрение попадала пакетная система, но так как в MeeGo это rpm, то единственным логичным объяснением мог быть какой-то глобальный косяк разработчиков дистрибутива. Разбираться в такой проблеме уже не было ни желания, ни сил. Следующий день не принёс ни единой зацепки в деле о поиске проблемы, да и нервы были дороже.

Кульминация

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

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

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

Устанавливаем драйвер Xorg

Приборы и материалы: Ubuntu 12.04.1 i386 или Mint 13 (прямой наследник первой), девайс с процессором atom i386 и графической подсистемой gma3600.

Ход работы:

Первое, что вам потребуется, это сам дистрибутив. Лучший вариант: скачать последний стабильный выпуск с оф. сайта.

Устанавливаем как обычно. Как в live сессии, так и после установки будет низкое разрешение. Это "нормально".

После установки обновляем список пакетов:

sudo apt-get update

Все руководства по установке драйвера гласят, что модуль ядра cedarview не совместим с pae ядрами. Не пытайтесь установить драйвер на pae ядро. Узнайте, какое у вас:

uname -r

Если у вас pae ядро (на это указывает суффикс "-pae" в выводе uname -r), устанавливаем обычное и хидеры к нему (требуются для сборки модуля ядра проприетарного драйвера):

sudo apt-get install linux-headers-generic linux-image-generic

Сносим pae ядро, сносим совсем, иначе получим чёрный экран:

sudo apt-get purge linux-headers-generic-pae linux-image-generic-pae

Именно оставшиеся настройки от pae ядра, которые не удаляются через apt-get remove, стали камнем преткновения на целую неделю.

После установки/удаления ядра grub2 должен пересканировать разделы на наличее других ОС и новых ядер. Если этого не произошло, командуем:

sudo update-grub2

Заодно устанавливаем gdm (некоторые пользователи испытывают проблемы с конфигурацией xorg для lightgdm):

sudo apt-get install gdm

Во время установки будет задан вопрос: какой display manager использовать — выбирайте gdm.

Перезагружаемся.

Установка драйвера

Дело за малым — осталось установить драйвер. Скорее всего после перезагрузки запустится jockey (Additional drivers), который предложит установить cedarview-drm, но этого не всё, что требуется для корректной работы:

sudo apt-get install cedarview-graphics-drivers cedarview-drm

Установка длится достаточно долго, около 10-15 мин, так как компилируется модуль ядра (видимо в один поток). Во время установки может гаснуть экран, а после на экране будет цветная каша. Главное — не выключить нетбук преждевременно.

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

Если после перезагрузки иксы не запустились, откройте tty1 Ctrl + Alt + F1, залогиньтесь под своим пользователем и отредактируйте настройки grub (на x101ch данный этап не потребовался):

nano /etc/default/grub

Найдите строчку:

GRUB_CMDLINE_LINUX=""

и добавьте между кавычками:

video=LVDS-1:d

Обновите grub2 и перезагрузитесь:

update-grub2
reboot

Также вы можете изменить конфигурацию загрузки ядра на один запуск, нажав e во время загрузки и добавив свои опции после "quiet splash".

Аппаратное ускорение видео на десерт

При покупке нетбука или другого девайса с gma3600 вы скорее всего обратили внимание на заманчивую рекламку: "Воспроизведение с разрешением Full HD 1080p". Уже сейчас нетбук способен проиграть 720p, но декодирование будет осуществляться программно, что плохо сказывается на нагрузке процессора и автономном времени работы. Например, mplayer может задействовать все четыре потока, нагружая каждое из двух ядер на ~80%. Но зачем? Есть же специальный микропроцессор, встроенный в графическую систему и позволяющий снизить нагрузку при проигрывании 720p до 3-4%, а при 1080p удерживать процессор в пределах 10%. Что бы его активировать, нужно установить дополнительную библиотеку, реализующую vaapi к аппаратному декодеру.

Устанавливаем:

sudo apt-get install libva-cedarview-vaapi-driver

Также потребуется специальная сборка mplayer-vaapi:

sudo apt-add-repository  ppa:sander-vangrieken/vaapi
sudo apt-get update
sudo apt-get install mplayer-vaapi

Ну и графическая оболочка gnome-mplayer:

sudo apt-get install gnome-mplayer

Последний штрих

Откройте Gnome Mplayer, зайдите в Edit -->Preferences, вкладка Mplayer и добавьте в поле "Extra Options to Mplayer":

-vo vaapi -va vaapi

Теперь 1080p видео с любимыми котиками аппаратно ускорено!

Подводя итог, можно с уверенностью сказать, что поддержка Intel, как Linux, так и Windows, не так хороша, как её малюют. Из непроверенного источника известно, что в Intel видимо поняли, что конкретно прокололись с gma3600/gma3650, и решили, что следующее поколение Intel Atom будет иметь урезанную графику с i3 и i5. Но всё же ситуация с gma3600 значительно лучше, чем с gma500, пятилетней давности.

П.С. Важно отметить, что mplayer-vaapi конфликтует с mplayer2 и устанавливает несколько пакетов, для работы с vaapi. Он менее стабилен, но позволяет задействовать ресурсы графической подсистемы.

Ещё был обнаружен репозитарий с исходниками cedarview. Он актуален, и последний коммит в нём датируется двадцатым числом января этого года. Судя по коммитам, можно судить о том, что добавлена поддержка ядер 3.5.0 и 3.7.2. Кодовая база основана на cedarview 1.0.3 от Intel, когда в Ubuntu 12.04 присутствует только 1.0.2. Сам я не пробовал собирать его, но среди явных плюсов можно отметить исправление утечек памяти в vaapi. В моём случае 2-ухчасовой просмотр FullHD с драйвером 1.0.2 (из репозитария) течи не обнаружил.

Upd: В ядре, поставляемом с Ubuntu 13.04, теперь есть доработанный community драйвер. Он значительно лучше себя показывает в отрисовке 2D, однако придётся смириться с отсутвием vaapi.

Открыли фирму, но не знаете как лучше рассказать о себе посетителям? Вам срочно нужно создание сайта визитки! Заказать её можно тут: http://www.webseopromo.ru/site-card. Качество и скорость обслуживания вас поразят!