Skip to content

ichusrlocalbin/kindle-wallpaper-jp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published