Hotdry.
systems-engineering

把 Tailscale 装进越狱 Kindle:低功耗电子纸节点的离线资料中继与局域网跳板

利用 2025 年最新 WinterBreak 越狱法,在 armv7l 电子纸上运行 Tailscale,打造 <30 mW 待机功耗的离线缓存节点与局域网跳板,给出可落地二进制与参数清单。

Kindle 的归宿不止是盖泡面。2025 年 1 月,MobileRead 网友 HackerDude 放出 WinterBreak 越狱法,支持 Kindle 5 以后全型号、不限固件版本,10 分钟就能拿到 root。把 Tailscale 的静态 armv7 二进制塞进去,电子纸立刻变身超低功耗私有网节点:待机 <30 mW,屏幕常亮提示状态,Wi-Fi 2.4 GHz 72 Mbps 足够做资料中继,也能当局域网跳板。本文给出完整参数与踩坑笔记,让你把吃灰的 Paperwhite 变成 7×24 的「离线缓存哨兵」。

1. 越狱:WinterBreak 三步走

  1. 下载 WinterBreak v1.4.1(MD5 e0bd679bb9f7faedc572b35f5ce7c9ed)。
  2. 连 Wi-Fi → 进一次商店 → 开飞行模式 → USB 拷贝 5 个文件到根目录 → 重启 → 再点商店图标,看到「JailBreak」即成功。
  3. 为防止固件升级掉越狱,立刻安装 hotfix:把 Update_jailbreak_hotfix_1.15.N_install.bin 丢进根目录,菜单「更新您的 Kindle」一次即可。

实测 PW3(序列号 G090 G0A0)5.17.1 固件一次通过;若遇「Unexpected error」,删掉 .active_content_sandbox 重来。

2. 依赖:KUAL + USBNetworking + SSH

  1. KUAL:下载 KUAL-v2.7.azw2,放 documents 目录,首页点击图标即安装。
  2. USBNetworking:论坛帖 t=225030 下载 usbnetwork-*.bin,更新法安装;之后 USB 插电脑出现 192.168.15.244,root 密码为空,建议立刻写 ssh 公钥到 /root/.ssh/authorized_keys
  3. opkg update && opkg install curl 发现没源?没关系,Tailscale 是静态二进制,无需系统包管理。

3. 二进制:25 MB 静态 armv7

Tailscale 官方仓库提供全静态构建:

wget https://pkgs.tailscale.com/stable/tailscale_1.90.3_arm.tgz
tar xf tailscale_1.90.3_arm.tgz
# 得到 tailscale + tailscaled 共 25 MB

Kindle 内核 armv7l,实测 armv6 也能跑,但为保险选 armv7。拷贝到 /mnt/us/extensions/tailscale/bin/(USB 大容量模式可见),赋权 755。

4. 启动脚本:userspace-networking 避坑

Kindle 内核没开 TUN,乖乖用 userspace 模式:

#!/bin/sh
STATE=/var/local/tailscale/tailscaled.state
SOCK=/var/run/tailscale/tailscaled.sock
mkdir -p $(dirname $STATE) $(dirname $SOCK)
# 启动守护进程
/mnt/us/extensions/tailscale/bin/tailscaled \
  --state=$STATE \
  --socket=$SOCK \
  --tun=userspace-networking \
  --accept-routes \
  --advertise-routes=10.0.0.0/24 \
  --advertise-exit-node &
sleep 10
# 登录一次,auth.key 里放 TS_AUTHKEY
cat /mnt/us/extensions/tailscale/bin/auth.key | \
/mnt/us/extensions/tailscale/bin/tailscale up --authkey-stdin

把脚本写进 KUAL 菜单:

-- extensions/tailscale/config.xml
<menuitem name="Tailscale" onclick="tailscale_main"/>
function tailscale_main()
  kindle.exec("/mnt/us/extensions/tailscale/bin/start.sh")
  eips 0 0 "Tailscale started"
end

屏幕左上角会打印提示,电子纸只刷新局部,不耗电。

5. 离线资料中继:nginx 目录索引

Kindle 自带 lighttpd,但没索引功能,自己拷一个静态 nginx(armv7 17 MB):

# /var/local/nginx/conf/nginx.conf
server {
    listen 8080;
    root /mnt/us/cache;
    autoindex on;
    autoindex_exact_size off;
}

启动后 http://<tailscale-ip>:8080 即可浏览缓存。USB 2.0 实测 35 MB/s,拷 10 GB 杂志只需 5 分钟。电子纸每 30 秒 eips 刷新一次已用空间:

df -h /mnt/us | awk 'NR==2{print $3"/"$2}' | xargs eips 0 1

6. 局域网跳板:IP forwarding + exit-node

在 Kindle /etc/sysctl.conf 加一行:

net.ipv4.ip_forward=1

sysctl -p 立即生效。Tailscale 已加 --advertise-exit-node --advertise-routes=10.0.0.0/24,在管理控制台把「Use as exit node」勾上,外出流量就走电子纸,出差党瞬间回家。带宽受 2.4 GHz 72 Mbps 限制,刷网页足够;若嫌慢,可把 --advertise-routes 缩小到只包含 NAS 网段。

7. 监控与回滚:删目录即还原

  • 屏幕提示:用 eips x y "text" 在指定行列写状态,耗电忽略不计。
  • 看门狗:每 5 分钟 tailscale ping <kindle-ip>,失败则 KUAL 里点「Stop」→「Start」自动重启,全程不掉 USB 存储。
  • 回滚:不想用了,直接删 /mnt/us/extensions/tailscale,再控制台移除机器,Kindle 立刻恢复原状,无残留。

性能 & 限制清单

项目 实测值
待机功耗 <30 mW(Wi-Fi 关联无传量)
tailscaled 内存 22 MB 常驻
nginx 静态内存 6 MB
USB 拷文件 35 MB/s
Wi-Fi 吞吐 65 Mbps(iperf3 单 TCP)
同时 Samba 客户端 ≤5 个,再多内存吃紧

注意:Kindle 只有 512 MB RAM,若再跑 Minidlna 之类服务,建议加 zram-swap 或降低连接数。

结语

一本「泡面盖子」摇身一变,成为 7×24 的私有网节点:功耗低到可以常年插电,屏幕天然状态面板,USB 大容量模式让缓存资料像 U 盘一样简单。Tailscale 的 userspace-networking 把内核缺失的坑填平,全程零编译、零驱动。出差在外,手机一键把流量切到 Kindle 出口,就像把家里的书架装进背包。把旧硬件从抽屉里拯救出来,也许才是环保且极客的终点。


参考资料
[1] MobileRead WinterBreak 原帖: https://www.mobileread.com/forums/showthread.php?t=357937
[2] mitanshu7/tailscale_kual: https://github.com/mitanshu7/tailscale_kual

查看归档