UbuntuでもKindleを読みたい(Wineじゃないよ)

タム

2024.12.06

315


こんにちは、タムです。

エンジニアとしてはKindleで技術書を読みながらコーディングとかしたいニーズがあります。

またUbuntuユーザの身としてはUbuntuでKindleを読みたかったのですが、標準では対応しておらず、

UbuntuでKindleを読む方法を検索しても、Wineを使う方法しかほとんど出てきませんでした。

(以下は、perplexityで質問した結果です)

UbuntuでKindleを読むには、Wineを使用してWindows版のKindle for PCをインストールする方法が一般的です。以下に手順を示します:


1. Wineのインストール:
   最新のWineをインストールするために、以下のコマンドを実行します[1][2]:


   ```bash
   sudo dpkg --add-architecture i386
   sudo mkdir -pm755 /etc/apt/keyrings
   sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
   sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
   sudo apt update
   sudo apt install --install-recommends winehq-stable
   ```


2. Kindle for PCのダウンロードとインストール:
   - Amazonの公式サイトからWindows版のKindle for PCインストーラーをダウンロードします[2][4]。
   - ダウンロードしたインストーラーをWineで実行します:
     ```bash
     wine KindleForPC-installer-x.xx.xxxxx.exe
     ```
   - インストールプロセスに従って、Kindle for PCをインストールします[2]。


3. Kindleの起動とログイン:
   - インストールが完了すると、Kindleが自動的に起動します。
   - Amazonアカウントでログインし、購入した書籍を同期します[2][4]。


4. 文字化け対策:
   必要に応じて、フォントの設定やWineの設定を調整して、文字化けを解消します[1][5]。


注意点:
- 最新版のKindle for PCは動作しない可能性があります。その場合は、古いバージョン(例:1.16.44025)をインストールし、その後1.40.65535にアップグレードする方法が効果的です[5]。
- プロキシ環境下では、追加の設定が必要になる場合があります[3]。


この方法を使用することで、UbuntuでもKindle本を快適に読むことができます。


Citations:
[1] https://note.com/dr_harv/n/n01a52456bd92
[2] https://redj.hatenablog.com/entry/2023/01/08/122902
[3] https://gihyo.jp/admin/serial/01/ubuntu-recipe/0433
[4] https://qiita.com/nanbuwks/items/a8f3b558cae92e5576bf
[5] https://qiita.com/Inqb8tr_jp/items/801d6a6ae1c8767abc4e
[6] https://petit-noise.net/blog/use-kindle-for-pc-on-ubuntu-21-04/
[7] https://zenn.dev/yorosu/scraps/3fd869ea233512


ただ、Wineだと上記にもある通り、文字化けが起こったり、うまく動作しなかったりと、

自分の環境では実用に耐えるものではありませんでした。

(そのため、Kindleを読むためだけにAndroidタブレットをわざわざ買うまでしたことを白状しておきます)

Wineを使うということはWindowsエミュレータ(厳密にはエミュレータではないらしいです)をLinux上で動かすということなので、

そこまで忠実に動作を再現できるわけではないというのは容易に想像できます。


しかしよく考えてみたら、KindleはAndroidにも対応しています。

そしてAndroidはLinuxベースで作られているはずです。

そう考えると、KindleがUbuntuで読めないはずないじゃないか、というのがきっかけで、調査を開始しました。

そしてすぐに、Waydroidの存在を知りました。


ということで今回は、WaydroidをインストールしてKindleが読めるようになるまでの手順を紹介したいと思います。

なお、前提として実施した環境は以下です。

OS: Ubuntu24.04
CPU: AMD Ryzen7


※実際には少し遠回りしましたが、(自分の知っている範囲内で)最短の手順で記載しておきます。

UbuntuでKindleが読めるようになるまで

Waydroidのインストール

Waydroidのインストール手順はこちらの公式ドキュメントに従うのがいいと思います。

注意点としては、そこにも書いてあるとおり、Waylandが有効になっている必要があるため、

まずはHow to enable/disable wayland on Ubuntu Desktopの手順に従ってWaylandを有効化してください。

Waydroidを起動するには1回PCを再起動してログインの際にUbuntu on Waylandを選択する必要があります。


※ウインドウサーバを切り替えることでなんらかの不具合が発生するかもしれませんが、

自分の環境では今の所特に目立った問題はなく使えています。

Waydroidの初期化

インストールが完了したらAppsの中にWaydroidが入っているので起動します。

そうすると、Androidのインストール画面が出てきますが、ここでGAPPSを選択してください。

VANILLAの方だとGoogle Play Storeが使えないみたいです。


Google Play Storeを使えるようにするためにはGoogleにデバイスを登録する必要がありますが、すぐに終わります。

こちらの手順に従ってデバイスを登録してください。


デバイスの登録ができたら、Waydroidを起動してください。Androidの画面が起動するはずです。

デバイス登録が反映されるまで少し時間がかかるようなので、アラートが出るようでしたら数分待ってから再度起動してください。

Kindleのインストール

Androidの画面は適当に弄っていれば操作方法はわかってくると思います。

自分の場合はキーバインディングに若干の問題がありましたが

(特に、Googleアカウント入力の際に@を押すと[が入力されてしまいました)、

タブレットのように下からAndroid画面上にキーボードが出てくるので、押せないキーはそれを使いました。

本当は直し方があるんだと思いますが、とりあえずKindleを読みたいだけなので一旦いいかなということで。


Kindleのインストール方法自体は普通のタブレットとかと同じなので割愛します。


Ryzen CPUを使用している場合は、Kindleがサポートされていないと表示されると思いますが、

その場合はlibndkをインストールしてください。

インストール方法はこちらの対話型のインターフェースを使うのがわかりやすいと思います。


参考までにlibndkについては以下perplexityの引用です:

libndkNative Development Kit Translation)は、x86系プロセッサを搭載したAndroidデバイスでARM向けのアプリケーションを実行するための変換レイヤーです[1][4]。この技術により、x86プラットフォーム上でARMバイナリを実行することが可能になります[3]libndk の主な特徴は以下の通りです:


1. ARM命令をx86命令に変換する機能を提供[1]
2. Android NDKNative Development Kit)と連携して動作[3]
3. AMD CPUを搭載したデバイスでの使用が推奨される[4][5]


ただし、libndk はすべてのアプリケーションで完璧に動作するわけではありません。一部のアプリケーションでは、ログイン画面で停止するなどの問題が報告されています[4]。そのような場合、代替として libhoudini という別の変換レイヤーを使用することもあります[4][5]。

開発者やユーザーは、アプリケーションの互換性やパフォーマンスに応じて、libndklibhoudini を使い分けることがあります[5]Citations:
[1] https://qiita.com/y_q/items/b22898d903820fc1f6f8
[2] http://xlog.insnhgd.com/2?locale=ja
[3] https://github.com/sickcodes/Droid-NDK-Extractor
[4] https://sumadoratyper.net/notes/7f721210cfdb91577e29e1aba980bb4a2baccecf/
[5] https://wiki.archlinux.jp/index.php/Waydroid
[6] https://zenn.dev/nyarla/scraps/2463d15a5f02c8


さいごに

今回は、UbuntuでKindleを読む方法をご紹介しました。

恐らく自分の知る限りでは最も王道な方法にもかかわらず実はあまり知られていない方法かと思います。

ぜひ試してみてください。

この記事をシェアする