Skip to content

Latest commit

 

History

History
172 lines (128 loc) · 6.61 KB

README.md

File metadata and controls

172 lines (128 loc) · 6.61 KB

kindle wallpaper 日本語化

TL;DR

  • 古いkindle(paper white, 第5世代)を天気予報とGoogleカレンダーのイベントを表示する壁紙に
    kindle wallpaper
  • 充電は1ヵ月に1度くらい(にならないかなー、と願望。これから測定します)
    がんばった記録

動機

  • 天気予報を録画から見るの面倒。iPhoneもwithingsの体重計も天気予報の精度が悪い。
  • kindleだとバッテリーをほぼ食わないから壁紙に最適
  • 家族も喜ぶ
  • 新しいkindleも買える!

アーキテクチャ

  • raspberry-pi: 天気予報、カレンダー取得、壁紙作成
  • kindle papwer white(5th generation): raspberry-piから壁紙取得して表示

元のkindle-wallpaperと違う所

  • 元のkinlde-wallpaper: pjimenezmateo/kindle-wallpaper Thank you so much!
  • 天気予報は、openweathermapのAPIを使用。
    • 元々あった画像が少なく、無理に天気を当てはめているので、一つの画像に複数の天気が割り当てられている。
  • メッセージの日本語化: 曜日とか
  • 本日の予定と全日の予定との区別の廃止(予定を表示する幅が狭かったので)
  • 更新時刻が朝の6時だったけど、次の日の天気予報も見たいんじゃないかと思い、日本時間の15時(UTCで6時)に変更(cronの更新時刻のコードはそのまま、天気予報は次の日のものを表示するようにした)
  • google-apiを使うようになったりと細かな変更

raspberry-piの設定

raspberry-piの環境構築

raspberry pi の環境構築 を参照

準備: APIの有効化

  • 基本的には、Google Calendar API Python Quickstart の手順に従う
  • APIを呼び出す場所 では、 [その他のUI(Windows、CLIツールなど)] を選択
    ([その他の非UI(cronジョブ、デーモンなど)] を選択すると、ログイン操作が必要とのエラーが出る)
  • アクセスするデータの種類 では、 ユーザデータ を選択
  • ダウンロードした client_id.jsonwallpaper-serverへ移動。
  • 開発環境で create_events_image.py を実行し、作成された ~/.credentials ディレクトリをDockerを構築する端末のDockerfileがあるディレクトリにコピーしておく(webブラウザで認証が必要なので)
    • 開発環境から $ scp -r ~/.credentials pi:/home/pi/kindle-wallpaper-jp/

環境構築

個人の環境に合わせ、設定を修正

  • kindle/display_wallpaper.shWALLPAPER_SERVER を適宜修正
    WALLPAPER_SERVER=10.0.1.199:8080
    
  • wallpaper-server/programs/secrets.py の次の項目を参考に設定
    APPID=''
    CALENDAR_ID = 'primary'
    
    • wallpaper-server/programs/create_events_image.pyCALENDAR_ID
      primary 以外を設定する場合は、同スクリプト中の show my carender_id list の二つを外して、どの CALENDAR_ID を設定すべきか検討をつけて設定する
    • wallpaper-server/programs/create_weather_image.py で利用するopenweathermapのAPIキーを設定
$ docker build -t kindle-wallpaper .

起動

docker run -p 8080:80 --name kindle-wallpaper -d kindle-wallpaper

動作確認

インストール当日、実行して、次の日の状態の画像が取得できることを確認

docker exec -it kindle-wallpaper bash
./launch.sh
exit
curl http://localhost:8080/done.png > done.png

次の日の15時5分以降に実行して、その次の日の状態の画像が取得できることを確認

curl http://localhost:8080/done.png > done.png

boot時に自動起動

/etc/systemd/system/docker-kindle-wallpaper.service docker-kindle-wallpaper.service を追加

[Unit]
Description=Kindle wallpaper container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker run -p 8080:80 --name kindle-wallpaper kindle-wallpaper
ExecStop=/usr/bin/docker stop -t 2 kindle-wallpaper
ExecStopPost=/usr/bin/docker rm -f kindle-wallpaper

[Install]
WantedBy=default.target

変更時の起動

sudo systemctl daemon-reload
sudo systemctl start docker-kindle-wallpaper.service

boot時に有効化

sudo systemctl enable docker-kindle-wallpaper.service

kindle側の設定

ssh root@192.168.15.244 'mkdir /mnt/us/wallpaper'
scp kindle/display_wallpaper.sh root@192.168.15.244:/mnt/us/wallpaper/
scp kindle/keep_ready_to_suspend.sh root@192.168.15.244:/mnt/us/wallpaper/
scp kindle/keep_ready_to_suspend.conf root@192.168.15.244:/etc/init/
ssh root@192.168.15.244
chmod 755 /mnt/us/wallpaper/*.sh
mntroot rw
echo '5,6 6 * * * /mnt/us/wallpaper/display_wallpaper.sh  >> /var/log/display_wallpaper.log' >> /etc/crontab/root

参考: kindle paper white(第5世代)のjailbreak

  1. Firmwareを5.4.5にdown grade
  2. jailbreak
  3. bridgeをインストール
  4. Firmwareを5.6.1.1にup grade
  5. KUAL, Helper, MR Package installのインストール
  6. USB Networkのインストール
    sshのパスワードが設定されてないようだったので、公開鍵を入れる。
    cp ~/.ssh/id_rsa.pub /Volumes/Kindle/usbnet/etc/authorized_keys
    
  7. ssh
    ssh root@192.168.15.244
    
  8. 書き込みが必要なとき
    mntroot rw
    

kindle jailbreak関連 参考サイト

Licence

本家に合わせて、 CC BY