Sign inSign up

collelog/narou-rpi

By collelog

•Updated about 5 years ago

Narou.rb Docker image for Raspberry Pi. emulate kindlegen(x86) with QEMU. (unofficial)

Image
0

809

collelog/narou-rpi repository overview

⁠Narou.rb Docker image for Raspberry Pi. emulate kindlegen(x86) with QEMU

Narou.rb公式Dockerイメージ whiteleaf/narou⁠ が同梱するAmazon KindleGenはAmazonからARM向けバイナリが提供されていません。
このため、ARM向けOS上でLinux 2.6 i386 用 KindleGenをx86エミュレートで動作させるDockerイメージを作成しました。
KindleGenの実行にエミュレータを介すため、MOBI変換処理が極端に遅くなります。処理時間はCPUに依存しますので、実行環境は最低でもRPi 3Bを、推奨はRPi 4Bとします。

また、現在、Narou.rb公式Dockerイメージの更新が停止しています。
これは当方の推測ですが、AmazonよりKindleGen Linux x86(CLI)配布が終了したことによる影響と考えます。

当DockerイメージはNarou.rb最新版に対応すると共に、KindleGenを別途利用者が用意する事を前提にKindleGenを含めないDockerイメージを提供しています。

⁠公式Dockerイメージとの違い

OSをAlpineからDebianに変更し、x86向けバイナリをQEMUユーザーモード上で動作する設定を行っています。
コンテナ側でQEMUを使用するためには、ホストOS側でもQEMUのセットアップが必要となります。

⁠KindleGen

volumes指定にてKindleGenのバイナリをマウントすることを前提としております。

./kindlegen:/opt/aozoraepub3/kindlegen

※上記設定はこちらで用意した docker-compose-rp4.yml⁠ (RPi4向け)に定義済みです。

⁠セットアップ例

RPiにて以下の操作を行います。

# QEMUセットアップ(Ubuntu,Debianで動作確認済み)
$ sudo apt install qemu binfmt-support qemu-user-static libc6-i386-cross
$ sudo ln -s /usr/i686-linux-gnu/lib/ld-linux.so.2 /lib/ld-linux.so.2  
$ echo "/usr/i686-linux-gnu/lib" | sudo tee -a /etc/ld.so.conf >/dev/null
$ sudo ldconfig

# Dockerイメージ [collelog/narou-rpi] セットアップ
$ sudo mkdir /opt/docker/
$ cd /opt/docker/
$ sudo git clone https://github.com/collelog/narourb-docker.git
$ cd ./narourb-docker
$ <KindleGen Linux x86(CLI) を同ディレクトリに格納してください>
$ sudo docker-compose -f docker-compose-rpi4.yml up -d

以降、ブラウザで以下のURLにアクセスして下さい。
http://[RPiのIPアドレス]:33000/

⁠動作テスト環境

Raspberry Pi 4B (8GB)
Ubuntu 20.04 64bit (SSD上にインストール)

  • Linux ubuntu 5.4.0-1015-raspi #15-Ubuntu SMP Fri Jul 10 05:34:24 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
⁠処理時間測定

Tag summary

Content type

Image

Digest

Size

247.1 MB

Last updated

about 5 years ago

docker pull collelog/narou-rpi