Установка Google Chromium і Flash на ARM пристрої Linux


 

Введення

Пропонується швидкий і легкий метод для установки браузера Google Chromium (open source варіант браузера Chrome) в Linux для ARM (armel і armhf) пристроїв — наприклад, Raspberry PI, ODroid, Cubieboard і т.д. Проблема в тому, що в більшості дистрибутивів Linux, наприклад, Debian, Kali Linux офіційний пакет Chromium доступний тільки для архітектур amd64 і i386. Версії для armhf і armel відсутні. Збірка пакета Chromium, наприклад, з рідного депозитарію Debain не спрацьовує, тому що в коді відсутні інструкції по збірці під arm. Варіант від Google теж компілюється з помилками. Судячи з відгуків в Інтернеті, можливо, вдасться налаштувати крос-платформену збірку під ARM на звичайних x86 комп'ютерах, або спробувати зробити збірку безпосередньо на arm, що може займати більше доби, і не завжди закінчується успішно. Мені наприклад, так і не вдалося зібрати пакет з вихідних безпосередньо на arm. Приклад установки наведено для Kali Linux 1.0.7 (форк Debian Wheezy) під ODroid, для інших Debian-систем все аналогічно.
 
 
 

Установка Chromium

Установка відбуватиметься найбільш простим способом — шляхом установки в систему бінарного установчого пакета. Deb — такий спосіб застосуємо для будь-якої системи типу Debian. Установчий пакет для старої версії Chromium можна завантажити з сайту Marco . Для нових версій Chromium рекомендується використовувати репозиторій Ubunty . Там же зазначені всі залежності пакета. Для моєї системи необхідно було ще завантажити пакет chromium-codecs-ffmpeg-extra .
 
На момент написання матеріалу останньої доступної для завантаження версією пакету Chromium була 34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884. Порядок установки Chromium:
 
     
  1. Завантажити. deb пакет Chromium , в моєму випадку це був chromium-browser_34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884_armhf.deb
  2.  
  3. Завантажити. deb пакет chromium-codecs-ffmpeg-extra , в моєму випадку це був chromium-codecs-ffmpeg-extra_34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884_armhf.deb
  4.  
  5. Встановити пакети (можливо, Вам буде потрібно змінити імена файлів, якщо Ви завантажили інші версії пакетів):
    dpkg -i chromium-codecs-ffmpeg-extra_34.0.1847.116-0ubuntu~1.12.04.0~pkg884_armhf.deb chromium-browser_34.0.1847.116-0ubuntu~1.12.04.0~pkg884_armhf.deb
    
  6.  
Установка завершена.
 
 
Усунення відсутніх залежностей
При установці пакетів може виникнути проблема «unmet dependencies». У моєму випадку в системі була встановлена ​​стара (для Chromium, але остання з гілки stable) версія пакету бібліотеки libc6. Нова версія пакета була доступна тільки для гілки jessie (testing). Для оновлення цього пакета необхідно додати відповідні репозиторії в / etc / apt / sources.list:
 
deb http://ftp.us.debian.org/debian testing main contrib non-free
deb-src http://ftp.us.debian.org/debian testing main contrib non-free
deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

Debian зазвичай містить файл уподобань, який коректно обробляє пакети з різних версій таким чином, що стабільні пакети мають вищий пріоритет порівняно з іншими. Це гарантує, що внесені вище зміни не переведуть повністю всю систему на гілку testing. У моїй версії Kali Linux такого файлу переваг не було, тому довелося його створити вручну — файл / etc / apt / preferences.d / main.pref з наступним вмістом:
 
Package: *
Pin: release n=kali
Pin-Priority: 350

Package: *
Pin: release n=kali-bleeding-edge
Pin-Priority: 300

Package: *
Pin: release n=jessie
Pin-Priority: 10

Тут перші 2 блоки описують, що внутрішні репозитарії Kali Linux мають вищий пріоритет, ніж пакети Debian Jessie. Якщо Ви використовуєте Debian Wheezy, то замість цих 2 блоків, потрібно залишити тільки один і вказати в ньому n = wheezy. Після збереження змін потрібно оновити інформацію про репозитаріях:
 
apt-get update

Після цього потрібно явним чином оновити пакет libc6:
 
apt-get install libc6 -t testing

У випадку наявності інших залежностей, вони усуваються аналогічним чином. Після цього можна заново спробувати встановити Chromium.
 
 

Установка підтримки Flash

Традиційний плагін flashplugin-nonfree в Linux не доступний під ARM пристрою. Необхідно використовувати плагін PepperFlash. Він вільно не поширюється Google, але його можна завантажити з сайту Lee Harris PepperFlash-12.0.0.77-armv7h.tar.gz . Це плагін для ARMv7, взятий з Google OS з пристрою Chromebook. Для тих, хто не довіряє стороннім джерелам, можуть спробувати вивантажити плагін самостійно. Після скачування архіву потрібно распакавать і покласти папку Pepperflash в / usr / lib. Після цього, потрібно внести такі зміни в конфігураційний файл Chromium, який розташовується в / etc / chromium-browser / default. Конфігураційний файл потрібно змінити так, щоб у ньому була наступна рядок:
CHROMIUM_FLAGS = "- ppapi-flash-path = / usr / lib / PepperFlash / libpepflashplayer.so — ppapi-flash-version = 12.0.0.77"
 
 

Запуск Chromium з правами root

За замовчуванням Chromium відмовляється запускатися з правами root. Це можна виправить в конфігураційному файлі / etc / chromium-browser / default.Конфігураціонний файл потрібно змінити так, щоб у ньому була наступна рядок:
CHROMIUM_FLAGS = "-password-store = detect-user-data-dir"
Якщо при цьому потрібна підтримка FLASH, тоді рядок буде мати вигляд:
CHROMIUM_FLAGS = "- ppapi-flash-path = / usr / lib / PepperFlash / libpepflashplayer.so — ppapi-flash-version = 12.0.0.77-password-store = detect-user-data-dir"
 
 

Результати

Мається Chromium, який працює з підтримкою Flash на ARM-пристрої. Тестування проводилося на ODROID-XU (armhf) з ОС Kali Linux 1.0.7. Скріншот:
 
 
Підтримується функція авторизації Google, синхронізація всіх закладок, історії і т.д., підтримуються всі розширення.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.