ryotatake blog

Webエンジニア

Manjaro LinuxにPlayOnLinuxとWineでKindleを使えるようにする

LinuxKindleを使えるようにしたので記録しておきます。
すでにブログを書かれている方はいますが、バージョンの変化などで少しずつ対応する内容が変わっていそうなので少しでも最新の情報でお役に立てば幸いです。

LinuxKindleの本を読むには

LinuxKindleの本を読むには大きく2つ方法があります。

  1. ブラウザで使えるKindle Cloud Readerを利用する
  2. Kindleアプリを入れる

Kindle Cloud Readerを使う方法ですが、現時点では読める本が限られており、私が持っている本はほぼ読めませんでした。少し試したところでは、固定レイアウトの本なら読める感じでしょうか。

ということで、ちゃんとKindleの本を読むにはアプリを入れるしかありません。

LinuxKindleアプリを使えるようにする

KindleアプリはLinux用のものがないので、Windows用のアプリを使えるようにします。私は次の対応を行いました。一つずつ説明していきます。

確認時の環境

PlayOnLinuxのインストール

LinuxWindowsアプリを使えるようにするために、PlayOnLinuxを利用しました。

PlayOnLinuxとは

PlayOnLinuxについて簡単に説明しますが、まず前提として、LinuxにはWineというWindowsのアプリをLinux上で動くようにするアプリケーションがあります。

このWineには使いづらい部分があります。使いたいWindowsのアプリごとに最適なWineのバージョンが異なり、バージョンがずれるとうまく動きません。

普通にWineを使うと、Windowsのアプリを使うたびにそのアプリに最適なWineのバージョンに切り替えなければならず大変です。PlayOnLinuxを使うと、アプリごとに指定したWineをうまく切り替えてくれます。

ただPlayOnLinux特有のバグがあるようで私が使っていても変なエラーがいくつか起きていました。利用する上で困るエラーではなかったのでそのままスルーして使いました。

PlayOnLinuxのインストール〜起動

$ pacman -S playonlinux
$ playonlinux --version
PlayOnLinux 4.3.4

起動します。

$ playonlinux

調べていると、言語を英語で起動したほうが良いと書かれているものをいくつか見かけました。私は日本語で動かして特に困りませんでしたが、一応載せておきます。この後の説明は日本語で動かした場合で進めていきます。

$ LC_ALL=C playonlinux

Kindleのダウンロード

WineとKindleのバージョンの組み合わせが適切でないとうまく動きません。

https://appdb.winehq.org/objectManager.php?sClass=application&iId=10597 にバージョンの組み合わせとその評価が書かれているので参考にできます。

私は、これや他の方が書かれているブログを参考にしてWineは安定版の6.0.1、Kindleは1.31.xを使うことで上手くいきました(Kindleで1.33.xを最初試しましたが、それでは上手く動きませんでした)。

https://kindle-for-pc.en.uptodown.com/windows/versions から選択したバージョンのKindleをダウンロードします。

PlayOnLinuxでの環境構築

PlayOnLinuxを立ち上げた後、ツールバーの ツール > Wineのバージョンを管理 を選択します。 それで開かれた画面でWine Version(x86)からWine 6.0.1を選択して「>」でインストールします。

次にツールバーの ファイル > インストール を選択し、「リストにないプログラムをインストールする」を押してインストール画面に進みます。

f:id:ryotatake:20211021235935p:plain
「リストにないプログラムをインストールする」リンクは左下にあります。

インストール画面では次のように進めます。

  1. 「Install a program in a new virtual drive」を選択
  2. virtual driveの名前を入力するように言われるので、"Kindle"など適当な名前をつける
  3. 「Use another version of Wine」と「Configure Wine」にチェックを入れて進める
  4. その後WineとWindowsのバージョンを聞かれるのでWineは6.0.1を選択、Windowsは32bitでWindows8.1を選択
    • f:id:ryotatake:20211022000141p:plain
      Windowsのバージョン選択はこのような画面で行えます。
  5. インストールするアプリを聞かれるのでダウンロードしたkindle-for-pc-1-31-xxxxx.exeを選択

インストール後、私の環境では次のようにエラーが表示されました。

f:id:ryotatake:20211021235302p:plain

また、PlayOnLinux上に表示するショートカットを聞かれるので、Kindle.exeを選択します。するとPlayOnLinux上にKindleのアイコンが表示されます。

エラーへの対応

エラーの原因を調べる際は、ターミナルに表示されるログを確認します。

私の場合は次のようにしてKindleのキャッシュデータ用のディレクトリを作ってあげることで解決できました。

$ mkdir -p ~/.PlayOnLinux/wineprefix/Kindle/drive_c/users/$USER/AppData/Local/Amazon/Kindle

1つ目のKindleの部分は環境構築時につけたvirtual driveの名前に変えてください。

再度Kindleアプリを立ち上げると、エラーせずログインして使うことができるようになりました。

あとは日本語が文字化けしてしまうのでこれを解決するだけです。

f:id:ryotatake:20211021235413p:plain

Kindleの文字化け対応

日本語の文字化けを修正します。文字化けの原因はMSフォントが入っていないことなので、レジストリをいじってフォントを置き換えます。

まずレジストリファイルを準備します。適当な場所(~/.PlayOnLinux/wineprefix/Kindle/など)にkindle_setting.regを作成します。ファイルの内容は次のようにします。

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Shell Dlg"="IPAGothic"
"MS Shell Dlg 2"="IPAGothic"
"MS UI Gothic"="IPAGothic"

IPAGothicの部分は自分のPCにインストールされている好きなフォントにしてください。利用できるフォントはfc-listコマンドで確認できます。

次に、アイコン上で右クリック > レジストリエディタ をクリックしてレジストリエディタを開きます。

f:id:ryotatake:20211021235339p:plain

そして、レジストリエディタのツールバーレジストリ > レジストリのインポート から先ほど作成したレジストリファイルを選択しインポートします。

正しくインポートできていれば、再度Kindleを起動した際に文字化けが直っているはずです。

f:id:ryotatake:20211021235728p:plain

参考