Armadilloフォーラム

Armadillo-EVA 1500 Chromium のバージョンアップ方法

nao

2015年6月3日 10時02分

いつもお世話になっております、高橋と申します。

Armadillo-EVA 1500 にて、貴社ホームページ
「Howto : Chromiumを Fullscreen で起動する方法 (http://armadillo.atmark-techno.com/howto/chromium-fullscreen)」
を参考にChromiumをインストールしました。

しかし、インストールしたChromium(22.0.1229.94)では、バージョンが古いようで、Chromeストアが使用できません。

Chromiumをバージョンアップしたいと考えているのですが、何か方法ありますでしょうか?

恐れ入りますが、ご教示お願い致します。

コメント

at_kojiro.yamada

2015年6月4日 15時55分

> Chromiumをバージョンアップしたいと考えているのですが、何か方法ありま
> すでしょうか?

Armadillo上でソースからビルドするしかなさそうです。

ビルド方法は以下のサイトが参考になりそうです。
http://programing.dip.jp/index.php?Chromium%2F%E3%82%BD%E3%83%BC%E3%82%…

ビルドの際は、メモリが不足することが考えられますので、
USBメモリなどにswap領域を用意すると良いかと思います。

- swap領域の作成例
以下の例ではカレントディレクトリに
ブロックサイズ 4KByte, サイズ 3.5GByte (4KB * 917504)
のファイルをswapという名前で作成し、swap領域に設定しています。

[Armadillo]# dd if=/dev/zero of=swap bs=4k count=917504
[Armadillo]# mkswap swap
[Armadillo]# swapon swap

蛇足ですが、
"chromium armhf"で検索するとUbuntuのパッケージが見つかります。
しかし、こちらはglibc 2.15を要求されるため(Debian Wheezyはglibc 2.13)、
ブラウザを起動できませんでした。
https://launchpad.net/ubuntu/precise/armhf/chromium-browser

お世話になっております、高橋です。ご返信いただきありがとうございます。

linuxの操作に不慣れなため少し時間がかかってしまうかもしれませんが、
教えていただいた方法で試してみたいと思います。

宜しくお願い致します。

Debianでarmhf向けのchromiumパッケージが提供されていないのは、ビルド時または動作に何らかの問題が見つかったのかもしれません。
それを考えると、armhfで動作実績のあるUbuntu(presice)のchromium-browserソースの方が安全…という考え方もできます。

UbuntuとDebian(及びその各バージョン)では、システムにインストールされている基本ライブラリや開発ツールのバージョンに差がありますが、chromium-browserが必要としている機能を満たしてさえいれば、ソースファイルからの再ビルドで動作する可能性があります。
その辺りを踏まえ、下記のような手順でビルドしてみました。

まずシステムを最新版にし、以降のパッケージビルドに必要なツール・ライブラリ群をインストールします。

atmark@armadillo:~$ su
root@armadillo:~# apt-get update
root@armadillo:~# apt-get upgrade
root@armadillo:~# apt-get install asciidoc bison chrpath debhelper dh-buildinfo doc-base docbook-xml docbook-xsl dpkg-dev fakeroot g++-4.7 gcc-4.7 gperf hardening-wrapper help2man libasound2-dev libcap-dev libcups2-dev libdrm-dev libexif-dev libgconf2-dev libgcrypt-dev libgles2-mesa-dev libgnome-keyring-dev libgtest-dev libgtk2.0-dev libkrb5-dev libnss3-dev libpci-dev libpulse-dev libssl-dev libudev-dev libxss-dev libxtst-dev pkg-config quilt re2c xdg-utils xsltproc ygen
root@armadillo:~# exit

chromium-browserのビルドに必要なninja-buildパッケージはwheezyに存在しないため、jessie用のソースからビルドしてインストールします。

atmark@armadillo:~$ wget http://http.debian.net/debian/pool/main/n/ninja-build/ninja-build_1.3.4.orig.tar.gz
atmark@armadillo:~$ wget http://http.debian.net/debian/pool/main/n/ninja-build/ninja-build_1.3.4-1.2.debian.tar.xz
atmark@armadillo:~$ tar zxf ninja-build_1.3.4.orig.tar.gz
atmark@armadillo:~$ cd ninja-1.3.4
atmark@armadillo:~/ninja-1.3.4$ tar Jxf ../ninja-build_1.3.4-1.2.debian.tar.xz
atmark@armadillo:~/ninja-1.3.4$ dpkg-buildpackage -b -rfakeroot -us -uc
atmark@armadillo:~/ninja-1.3.4$ cd ..
atmark@armadillo:~$ su
root@armadillo:~# dpkg -i ninja-build_1.3.4-1.2_armhf.deb
root@armadillo:~# exit

chromium-browser/preciseをビルド、インストールします。
ただしchromium-browserソースのARM最適化オプションがgcc/g++-4.7向けに記述されていましたので、あらかじめビルドに使用するコンパイラを環境変数で変更しておきます。

atmark@armadillo:~$ wget http://ftp.riken.jp/Linux/ubuntu/pool/universe/c/chromium-browser/chromium-browser_37.0.2062.120.orig.tar.xz
atmark@armadillo:~$ wget http://ftp.riken.jp/Linux/ubuntu/pool/universe/c/chromium-browser/chromium-browser_37.0.2062.120-0ubuntu0.12.04.1~pkg917.debian.tar.xz
atmark@armadillo:~$ tar Jxf chromium-browser_37.0.2062.120.orig.tar.xz
atmark@armadillo:~$ cd chromium-37.0.2062.120
atmark@armadillo:~/chromium-37.0.2062.120$ tar Jxf ../chromium-browser_37.0.2062.120-0ubuntu0.12.04.1~pkg917.debian.tar.xz
atmark@armadillo:~/chromium-37.0.2062.120$ export CC=gcc-4.7
atmark@armadillo:~/chromium-37.0.2062.120$ export CXX=g++-4.7
atmark@armadillo:~/chromium-37.0.2062.120$ dpkg-buildpackage -b -rfakeroot -us -uc
atmark@armadillo:~/chromium-37.0.2062.120$ cd ..
atmark@armadillo:~$ su
root@armadillo:~# dpkg -i chromium-browser_37.0.2062.120-0ubuntu0.12.04.1~pkg917_armhf.deb chromium-browser-l10n_37.0.2062.120-0ubuntu0.12.04.1~pkg917_all.deb chromium-codecs-ffmpeg_37.0.2062.120-0ubuntu0.12.04.1~pkg917_armhf.deb
root@armadillo:~# exit

以上、疑似的にわかりやすく書きましたが、chromium-burowserのビルドには15GB近い空き容量が必要ですので、実際にはSDカードまたはUSBメモリ/HDDなどで作業する必要があります。
また、やはりRAMも足りませんでした。2GBのスワップ領域を作成してswapon、トータル3GBの状態でビルドできました。

ビルドしたchromium-browserと、中間的に作ったninja-buildの各debパッケージを下記に置きました。

http://download.atmark-techno.com/misc/ae1500/

chromium-browser/chromium-browser-l10n/chromium-codecs-ffmpegの3つをインストールすれば、chromium 37が使用できるはずです。

お世話になっております、高橋です。

わかり易いご説明大変有難うございます。
また、ご親切にパッケージのアップまでしていただき有難うございました。

ご教示頂いたとおり

chromium-browser/chromium-browser-l10n/chromium-codecs-ffmpeg

の3つをインストールしたら、chromium 37 を使えるようになりました。
(以前のバージョン:22.0.1229.94 → 今回のバージョン:37.0.2062.120)

Chrome 用のアドオンが動作するか確認してみたいと思います。

どうそ宜しくお願いいたします。

お世話になっております、高橋です。

アドオンの動作について、
少し動作が遅いですが「AutoPatchWork」が動作することが確認できました。

本件と直接関係があるか分かりませんが、Chromiumを動かしているとArmadilloが
「net eth0: receive descriptor empty」
というメッセージを出す時があります。重いページを開くと上記メッセージを出すことがあるようで
Youtubeで動画を見ようとしたら、メッセージを出しました。

これは何を意味するメッセージでしょうか?

溝渕です。

> 「net eth0: receive descriptor empty」
> というメッセージを出す時があります。重いページを開くと上記メッセージを出すことがあるようで
> Youtubeで動画を見ようとしたら、メッセージを出しました。
>
> これは何を意味するメッセージでしょうか?

受信ディスクリプタが空であることを示しています。このメッセージは、
Gigabit Ethernet Controller(GETHER) の E-MAC/E-DMAC Status
Register(EESR) にある RDE の状態を見て出力しています。

Linuxカーネルの mainline では、次のような修正が加えられています。

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/…
> sh_eth: Remove RX overflow log messages
>
> If RX traffic is overflowing the FIFO or DMA ring, logging every time
> this happens just makes things worse. These errors are visible in the
> statistics anyway.

上記より、本現象は通常発生しうる現象であるため無視していただいて構いません。

以上です。

お世話になっております、高橋です。
返信が大変遅くなり申し訳ありません。

通常発生しうる現象ということ、承知いたしました。
今後ともどうぞ宜しくお願いいたします。