2014/11/08追記:2014/11/08早朝、または 2014/11/07夜から、この記事の方法では艦これに接続出来なくなりました。Linux版Google Chrome を使って接続するのをお勧めします。chromium と pepperflash-nonfree の組み合わせで艦これに接続出来るかどうかは未検証です。
2014/10/16追記:2014/10/14 に Flash Player の更新があり、Linux版Google Chrome安定版同梱の pepperflash が 15.0.0.152 から 15.0.0.189 になりました。15.0.0.189 では glibc のバージョンが 2.14 より前のものだとクラッシュするバグが修正されているので、わざわざ Google Chrome beta for Linux の debパッケージをダウンロードしなくても、Google Chrome for Linux安定版の debパッケージをダウンロードしてインストールすればちゃんと動く pepperflash を入手出来ます。pepperflash の入手方法をそのように改めました。
2014/10/12追記:この記事の最初のバージョンを書いたその日のうちに Flash Player の更新があり、Linux版Google Chrome安定版同梱の pepperflash が 14.0.0.177 から 15.0.0.152 になりました。しかし、このバージョンの pepperflash は glibc のバージョンが 2.14 より前のものだとクラッシュしてしまいます。そこで、Google Chrome beta 39 for linux amd64 が公開されたのを機に、そこから pepperflash 15.0.0.189 を持って来る方法に改めました。
2014/08/29 のメンテナンス後、Linux と FireFox(または Iceweasel)の組み合わせでは艦これに接続出来なくなってしまいました。これは Adobe で配布されている Linux版Flash Player の最終版が 11.2 で、セキュリティアップデート以外での更新が停止して久しい事が原因のようです。そこでここに、freshplayerplugin というラッパーを通して Linux版Google Chrome向けの最新版の pepperflash を使って艦これに接続する方法のメモを残しておきます。ざっくり言うと freshplayerplugin を使って、FireFox や Iceweasel に対して PPAPI の Flash Player を従来の NPAPI の Flash Player のように見せかけてやりとりさせて、艦これを遊べるようにしようという事です。
まず、Google Chrome をダウンロードして入手します。
/home/username/debian/ といった適当なディレクトリを作って、ダウンロードして来た google-chrome-stable_current_amd64.deb を放り込み、apt-ftparchive を使って debパッケージの aptリポジトリを作るを参考にしてローカルな aptリポジトリを作成します。その後、/etc/apt/sources.list に
file:///home/username/debian ./
を追加して、
$ sudo apt-get update $ sudo apt-get install google-chrome-stable
これで google-chrome-stable がインストールされます。このまま Google Chrome を使っても良いのですけども、当初の目的通り /opt/google/chrome/PepperFlash/ から libpepflashplayer.so と manifest.json を抜き取ります。
$ sudo mv /opt/google/chrome/PepperFlash/libpepflashplayer.so ./ $ sudo mv /opt/google/chrome/PepperFlash/manifest.json ./
その後、
$ sudo apt-get purge google-chrome-stable $ sudo apt-get autoremove
しておくと、必要ないパッケージをシステムから取り除いておけます。
抜き取った libpepflashplayer.so と manifest.json は freshplayerplugin がきちんと見つけられるように /usr/lib/pepperflashplugin-nonfree/ というディレクトリを作って、その中に置いておきましょう。
$ sudo mkdir -p /usr/lib/pepperflashplugin-nonfree/ $ sudo mv libpepflashplayer.so /usr/lib/pepperflashplugin-nonfree/ $ sudo mv manifest.json /usr/lib/pepperflashplugin-nonfree/
Iceweasel(や FireFox)の素のままのユーザーエージェント文字列だと艦これに接続出来ないので、FireFox のプラグイン、User Agent Switcher を使って Chrome 38 のユーザーエージェント文字列を送り出します。
Chrome 38 の UA文字列インポート用xmlファイルの例はこんな感じです。
importua.xml
<useragentswitcher>
<useragent description="Chrome 38.0.2125.104" useragent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" appcodename="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
</useragentswitcher>
User Agent Switcher の [Default User Agent] -> [Edit User Agents] -> [impot] で、xmlファイルをインポートします。
艦これは PPAPI な 15.0.0.189 でないと遊べず、ニコ生は NPAPI な 11.2.202.411 でないと観られません。用途に応じて切り替えて使えると便利なのですけれども Iceweasel ではプラグインに複数の Flash を入れていると有効化や無効化が上手く機能しないようです。そこで、libflashplayer.so や libfreshwrapper-pepperflash.so の実体を別のディレクトリ(例えば ~/lib/flash_player/NPAPI/ とか)に置いて ~/.mozilla/plugins/ にはシンボリックリンクを作り、シンボリックリンクの作成や削除を行う事で Flash Player の 15.0.0.189 と 11.2.202.411 を切り替えます。シンボリックリンクを付け替えた後で Iceweasel を再起動させる必要があります。
swflash.pl
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
use Getopt::Std;
use Path::Class;
use File::HomeDir;
my $flashdir = 'lib/flash_player/NPAPI/'; # 実体を置いてあるディレクトリ例
my $homedir = File::HomeDir->my_home;
my $linkdir = dir( $homedir, '.mozilla/plugins/' );
my $substflash = file( $homedir, $flashdir, 'libflashplayer.so' );
my $substfresh = file( $homedir, $flashdir, 'libfreshwrapper-pepperflash.so' );
my $linkflash = file( $linkdir, 'libflashplayer.so' );
my $linkfresh = file( $linkdir, 'libfreshwrapper-pepperflash.so' );
my %opts;
getopts('np', \%opts);
if ( $opts{ n } ) {
symlink $substflash, $linkflash unless ( -f $linkflash );
unlink $linkfresh if ( -f $linkfresh );
}
if ( $opts{ p } ) {
symlink $substfresh, $linkfresh unless ( -f $linkfresh );
unlink $linkflash if ( -f $linkflash );
}
__END__
$ sudo apt-get install libpath-class-perl libfile-homedir-perl
と、依存するパッケージを入れた後で、swflash.pl に実行権限を与え実行パスを通した上で使うと、お手軽に Flash を切り替える事が出来ます。
オプション n で NPAPI な 11.2.202.411、
$ swflash.pl -n
オプション p で PPAPI な 15.0.0.189 に切り替わります。
$ swflash.pl -p
動作確認環境 : Debian GNU/Linux 7.6 wheezy amd64