Install Google Chromium and Flash on Linux ARM devices


Introduction


It offers a quick and easy method for installing the Google Chromium browser (an open source version of the Chrome browser) on Linux for ARM (armel and armhf) devices - for example, Raspberry PI, ODroid, Cubieboard, etc. 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. There are no versions for armhf and armel. The assembly of the Chromium package, for example, from the native Debain depository does not work, because the code lacks assembly instructions for arm. Option from Googlealso compiles with errors. Judging by the reviews on the Internet, it may be possible to configure cross-platform assembly for ARM on regular x86 computers, or try to build directly on arm, which can take more than a day, and does not always end successfully. For example, I was not able to collect the package from the source directly to arm. An installation example is given for Kali Linux 1.0.7 (fork of Debian Wheezy) under ODroid, for other Debian systems everything is the same.


Chromium Installation


Installation will be carried out in the simplest way - by installing the binary .deb binary installation package on 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 newer versions of Chromium, it is recommended that you use the Ubunty repository . All dependencies of the package are also indicated there. For my system, it was still necessary to download the chromium-codecs-ffmpeg-extra package .

At the time of writing, the latest version of the Chromium package available for download was 34.0.1847.116-0ubuntu ~ 1.12.04.0 ~ pkg884. Chromium installation procedure:
  1. Download the .deb Chromium package , 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 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.

Resolving Missing Dependencies

When installing packages, the "unmet dependencies" problem may occur. In my case, the old version (for Chromium, but the last one from the stable branch) of the libc6 library package was installed on the system. The new version of the package was available only for the jessie (testing) branch. To update this package, add the appropriate 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 take precedence over others. This ensures that the changes made above do not transfer the entire system to the testing branch. In my version of Kali Linux, there was no such preference 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 Kali Linux internal repositories have higher priority than Debian Jessie packages. If you use 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 repository information:
apt-get update

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

If there are other dependencies, they are eliminated in a similar way. After that, you can try to install Chromium again.

Install Flash Support


The traditional flashplugin-nonfree plugin on Linux is not available on ARM devices. You must use the PepperFlash plugin. It is not freely distributed by Google, but it can be downloaded from Lee Harris PepperFlash-12.0.0.77-armv7h.tar.gz . This is an ARMv7 plugin taken from Google OS from a Chromebook. For those who do not trust third-party sources, they can try to unload the plugin themselves. After downloading the archive you need to unzip 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 must be changed 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 fixed 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 line 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 an ARM device. Testing was conducted on ODROID-XU (armhf) with Kali Linux 1.0.7 OS. Screenshot:


Google authorization function is supported, synchronization of all bookmarks, history, etc., all extensions are supported.

Also popular now: