参考 Repo: https://github.com/cathay4t/kindle-weather
看到有人在 K3 上做了个锁屏天气, 自己也心痒痒跟着 DIY 了一下, 效果还不错, 也算是把长期闲置的 K4 派上了用场. 分享下自己的流程:
硬件需求
- 一台长期联网的 Kindle (K3, K4 测试通过)
- 一台长期联网的主机或者 VPS
配置
配置主机
- 安装好 httpd, pngcrush, librsvg2
- 启动 httpd 服务
- 建立文件夹
/var/www/html/weather
并设置权限 - 下载上面这个 Repo 里的源码
- 申请 Weather Underground 的 API 并记录 KEY
crontab -e
添加定时任务, 在每天 6 点到 22 点期间每 29 分钟更新产生一次天气图片,<PATH>
改成源码所在路径,<API_KEY>
改成得到的 KEY,<LAT> <LON>
改成所在城市的经纬度, Weather Underground 上搜索城市可以得到经纬度
- 运行
weather_script.py <API_KEY> <LAT> <LON>
, 测试http://<主机域名>/weather/weather.png
能否得到正确显示的图片.
配置 Kindle
- 首先给 Kindle 越狱
- 越狱后安装 USB networking, 从此贴下载对应 Kindle 的版本, 解压后把文件名结尾为 install.bin 的文件复制到 Kindle 根目录, 然后在 Kindle 设置界面的菜单里选择更新 Kindle.
- 断开 Kindle 和电脑的连接, 在主界面按键盘键, 输入
;debugOn
后回车, 接着输入~usbNetwork
并回车, 然后把 Kindle 连接到电脑上, 这时候电脑会检测到名为 RNDIS/Ethernet Gadget 的网络接口, K4 用户把这个接口的 IP 地址设为192.168.15.201
, 其他版本的 Kindle 把这个 IP 设为192.168.2.1
, 如图: - 通过
ssh [email protected]
连接到 K4, 其他版本 Kindle 通过ssh [email protected]
连接, 密码通常为 mario - 执行
mntroot rw
挂载 rootfs 为可写 - 执行
cd /etc/kdb.src/yoshi/system/daemon/powerd/
, 进入 powerd 文件夹, 路径中的 yoshi 不是固定的, 不同版本的 Kindle 这个路径不同 - 执行
vi suspend_levels
, 查看 suspend_levels, 把最后一行的数字改为 1152, 表示可在睡眠模式下执行 crontab 任务. - 执行
mkdir /mnt/base-us/weather
创建文件夹 - 在主机上把
display-weather.sh
里面的URL
改为你自己主机上 weather.png 的 URL - 通过
scp display-weather.sh [email protected]:/usr/bin/
把display-weather.sh
传到 Kindle 上的/usr/bin
目录下 - 回到 Kindle 的 shell, 添加 crontab 任务, 在每天6点到22点期间每小时获取一次天气图片:
- 执行
/usr/bin/display-weather.sh
, 在 Kindle 上测试效果 - 执行
reboot
以重启 Kindle
至此 Kindle 桌面气象站就设置好了, 每小时会自动更新天气, 如果中途解锁了再锁定, 锁屏界面会变成普通锁屏画面, 一小时内等到下次执行 crontab 任务的时候会重新显示天气界面.