Raspberry Pi + Narou.rbおまけ編:QEMUでkindlegenを動かして.mobiまで変換する

前回、Raspberry PiにNarou.rbをインストールして動かす所までの手順を書きましたが、kindlegenのARM版不在の為に肝心のKindle用.mobiファイルを作れずじまいでした。

いや、けどそれはなんか寂しいぞ、ということで今回は+αのおまけ編

QEMUを使ってLinux-i386用のkindlegenをRaspberry Pi上で実行、.mobiへの変換を可能にしてみよう!編です。

QEMUのユーザーモードエミュレーション + binfmtを利用すればRaspberry PiのようなARM CPU上でもi386(x86)のバイナリを見かけ上シームレスに実行できる…はずです。

とりあえず動けばいい的方針でやっていきますので詳しい仕組みが気になる人は勝手に調べて下さいね。
別に知らなくても動きます。

■導入するソフトウェア

1.qemu-user-static (qemu-i386)
2.kindlegen Linux 2.6 i386


■導入の手順

1.qemu-user-staticのインストール

幸いにしてRaspbianのapt-getリポジトリにパッケージが存在しているので、これをインストールすれば良い。

>~$ sudo apt-get install qemu-user-static

これだけでbinfmt-supportも勝手にインストールされるので、ややこしい設定等は特に無い。

2.kindlegenのインストール

Amazonの"KDP ツールとリソース"ページからLinux i386用のkindlegenをダウンロードし、インストールする。
ここでは一度/usr/local/binに配置した後、AozoraEpub3のディレクトリにシンボリックリンクを張っているが、別にに直接コピーしても良い。

作業時の最新版はver.2.9、ファイル名は適時読み替えの事。

>~$ mkdir kindlegen
>~$ cd kindlegen
>~/kindlegen$ wget http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v2_9.tar.gz
>~/kindlegen$ tar zxvf kindlegen_linux_2.6_i386_v2_9.tar.gz
>~/kindlegen$ sudo cp kindlegen /usr/local/bin/

kindlegenが実行出来るかを確認する。

>~$ kindlegen
>*************************************************************
> Amazon kindlegen(Linux) V2.9 build 1028-0897292
> A command line e-book compiler
> Copyright Amazon.com and its Affiliates 2014
>*************************************************************
  ~省略~

バージョン表記やコマンドのヘルプが表示されれば正常。

インストールが完了したらAozoraEpub3のインストールディレクトリにシンボリックリンクを作成する。
前回同様であれば/usr/local/AozoraEpub3

>~$ sudo ln -s /usr/local/bin/kindlegen /usr/local/AozoraEpub3/kindlegen

これでインストールは完了。

3.Narou.rbの設定

.mobiへの変換を有効にするためにNarou.rbの設定を変更する。
作業するのはnarou initを実行したディレクトリ、前回同様であれば/home/pi/narouとなる。

>~/narou$ narou setting device=kindle

これで.mobiへの変換が有効になる。

■動作確認

動作の確認の為、適当な小説をダウンロードしコンバート。
ここでも前回同様ログ・ホライズンで試してみる。

>~/narou$ narou download http://ncode.syosetu.com/n8725k/
>ID:0 ログ・ホライズン のDL開始
  ~省略~
>ID:0 ログ・ホライズン の変換を開始
>小説状態の調査結果を 調査ログ.txt に出力しました
>縦書用の変換が終了しました
>AozoraEpub3でEPUBに変換しています....~....変換しました
>kindlegen実行中....~....変換しました
>kindlestrip実行中
>[橙乃ままれ] ログ・ホライズン.mobi を出力しました
>MOBIファイルを出力しました

エラー無く終了すれば正常に動作している。
小説データディレクトリ以下に.mobiファイルが作成されているはず。


これでRaspberry Piでもなんとか.mobiへの変換が可能になった。

やったぜ。

■最後に…

さすがDebianというかRaspbianというか、動かすだけならば実に簡単ですね。
ええ、動かすだけならば。

…実際に試していただければ一目瞭然ですが、これ、それはもう猛烈に遅いです。
AozoraEpub3の.epub変換など目じゃないほどに本当に遅いです。

ちなみにログ・ホライズンのダウンロード→.mobi変換をtimeで計測した結果がこちら。
real    93m39.475s
user    90m36.710s
sys     0m38.590s
はい、だいたい一時間半掛かってます。
ぶっちゃけ動作テストの段階で処理が終わるのを待ってるのが苦痛になるレベルです。

あーでも、初代Pi Bがあまりに非力なだけかもしれません…?
Pi2やPi3ならもっとマシになるかもしれませんが手元に無いので試せてません。

Pi3欲しいなぁ。

コメント