📜 ⬆️ ⬇️

Installing Google Chromium and Flash on a Linux ARM device


Introduction


A quick and easy method to install the Google Chromium browser (open source version of the Chrome browser) on Linux for ARM (armel and armhf) devices — for example, Raspberry PI, ODroid, Cubieboard, etc. is proposed. The problem is that in most Linux distributions, for example, Debian, Kali Linux, the official Chromium package is available only for amd64 and i386 architectures. Versions for armhf and armel are missing. Building the Chromium package, for example, from the Debain native depository does not work, because There are no assembly instructions for the arm. Option from Google is also compiled with errors. Judging by the reviews on the Internet, you may be able to configure a cross-platform build for ARM on regular x86 computers, or try to build directly on the arm, which can take more than a day, and does not always end successfully. For example, I never managed to build a package from source directly on arm. The installation example is for Kali Linux 1.0.7 (fork of Debian Wheezy) for ODroid, for other Debian systems everything is the same.


Install chromium


The installation will be the easiest way - by installing a binary installation package .deb into the system - this method is applicable to any system like Debian. The installation package for the old version of Chromium can be downloaded from the Marco website . For new versions of Chromium it is recommended to use the Ubunty repository . All dependencies of the package are listed there. For my system, it was also necessary to download the chromium-codecs-ffmpeg-extra package.

At the time of writing, the latest downloadable version of the Chromium package was 34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884. Chromium installation procedure:
  1. Download .deb package Chromium , in my case it was chromium-browser_34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884_armhf.deb
  2. Download .deb package chromium-codecs-ffmpeg-extra , in my case it was chromium-codecs-ffmpeg-extra_34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884_armhf.deb
  3. Install packages (you may need to change the file names if you downloaded other versions of the packages):
    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 

Installation completed.
')
Eliminate missing dependencies

When installing packages, there may be a problem "unmet dependencies". In my case, the system installed the old (for Chromium, but the latest from the stable branch) version of the libc6 library package. The new version of the package was only available for the jessie (testing) branch. To update this package, add the corresponding repositories to /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 usually contains a preference file that correctly processes packages from different versions in such a way that stable packages have a higher priority than others. This ensures that the changes made above do not completely translate the entire system to the testing branch. In my version of Kali Linux, there was no such preferences file, so I had to create it manually - the /etc/apt/preferences.d/main.pref file with the following contents:
 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 

Here, the first 2 blocks describe that the internal Kali Linux repositories have a higher priority than Debian Jessie packages. If you are using Debian Wheezy, then instead of these 2 blocks, you need to leave only one and specify n = wheezy in it. After saving the changes, you need to update the information about the repositories:
 apt-get update 

After that, you need to explicitly update the libc6 package:
 apt-get install libc6 -t testing 

In the case of other dependencies, they are eliminated in the same way. After that, you can try again to install Chromium.

Installing Flash Support


The traditional flashplugin-nonfree plug-in for Linux is not available under the ARM device. You must use the PepperFlash plugin. It is not freely distributed by Google, but it can be downloaded from the Lee Harris PepperFlash-12.0.0.77-armv7h.tar.gz website . This is an ARMv7 plugin taken from Google OS from a Chromebook. For those who do not trust third-party sources, you can try to unload the plugin yourself. After downloading the archive, unpack and put the Pepperflash folder in / usr / lib. After that, you need to make the following changes to the Chromium configuration file, which is located in / etc / chromium-browser / default. The configuration file needs to be modified so that it contains the following line:
CHROMIUM_FLAGS = "- ppapi-flash-path = / usr / lib / PepperFlash / libpepflashplayer.so --ppapi-flash-version = 12.0.0.77"

Run Chromium as root


By default, Chromium refuses to run as root. This can be corrected in the configuration file /etc/chromium-browser/default. The configuration file must be changed so that it contains the following line:
CHROMIUM_FLAGS = "- password-store = detect -user-data-dir"
If FLASH support is required, then the string will look like:
CHROMIUM_FLAGS = "- ppapi-flash-path = / usr / lib / PepperFlash / libpepflashplayer.so --ppapi-flash-version = 12.0.0.77 -password-store = detect -user-data-dir"

results


There is Chromium, which works with Flash support on the ARM device. Testing was conducted on ODROID-XU (armhf) with OS Kali Linux 1.0.7. Screenshot:


Supported by the authorization of Google, synchronization of all bookmarks, history, etc., all extensions are supported.

Source: https://habr.com/ru/post/227287/


All Articles