简体中文 · English
通过 Wi-Fi(设备无需插线)让群晖 NAS 与富士通 QUADERNO Gen 3C(型号 FMVDP43C)
双向同步 PDF。基于 dpt-rp1-py(MIT)。
⚠️ 凭证安全:creds/(deviceid.dat/privatekey.dat/device_ca.pem) 是你设备的私钥,已被.gitignore排除,切勿提交或分享。clone 本仓库后, 自己跑一次register_final.py生成属于你自己的凭证即可。
⚠️ 非官方:本项目与富士通/QUADERNO 无关,纯属个人逆向使用,不保证后续固件 仍可用,请自担风险。
✅ 本方案的每一步都已在真机实测验证:注册、认证、设备→NAS 下载、NAS→设备 上传、Zeroconf 自动发现、设备离线优雅跳过。
Gen 3C 的注册握手在 /register/hash 这一步会间歇性返回 40301 "Bad parameters"(和 Quaderno Gen 2 同源的老问题)。这不是硬性不兼容——每次
重试用全新的 Diffie-Hellman 密钥,成功是概率性的,重试几次必过。register_final.py
就是自动重试直到突破。一旦注册成功,后续所有通信(列表/上传/下载/双向 sync)
都正常。
| 文件 | 作用 |
|---|---|
sync_quaderno.py |
核心:Zeroconf 发现设备 → 认证 → 跑双向 sync;离线则优雅跳过 |
register_final.py |
一次性:自动重试完成设备注册,生成凭据 |
deviceid.dat / privatekey.dat |
设备凭据(已生成,保密,部署到 NAS) |
device_ca.pem |
设备 CA 证书(备份用) |
Dockerfile / entrypoint.sh / docker-compose.yml |
群晖 Docker 部署 |
凭据已生成好(deviceid.dat + privatekey.dat),直接进入第二步即可。
若日后需要重新注册(换设备/凭据丢失):
python3 -m venv .dptenv && . .dptenv/bin/activate && pip install dpt-rp1-py
# 设备连到同一 Wi-Fi。把 QUADERNO_ADDR 设成设备 IP(凭证会写入 ./creds/)
mkfifo /tmp/dpt_pin_fifo
QUADERNO_ADDR=192.168.0.46 python register_final.py & # 自动重试,突破时打印 >>>PIN_NEEDED<<<
# 看设备屏幕上的 PIN,然后:
printf '设备屏幕上的PIN\n' > /tmp/dpt_pin_fifo-
建文件夹
- 同步文件夹(放你的 PDF):如
/volume1/quaderno - 凭据文件夹:如
/volume1/docker/quaderno/creds,把deviceid.dat和privatekey.dat拷进去。
- 同步文件夹(放你的 PDF):如
-
拷贝项目文件到 NAS,如
/volume1/docker/quaderno/(含Dockerfile、entrypoint.sh、sync_quaderno.py、docker-compose.yml)。 -
按需改
docker-compose.yml:volumes里的/volume1/quaderno改成你的同步文件夹;SYNC_INTERVAL:同步间隔秒数(默认10800=3 小时,3600=每小时);network_mode: host必须保留(Zeroconf 自动发现要靠它穿透网络)。
-
启动(SSH 到 NAS,或用 Container Manager 的"项目"导入 compose):
cd /volume1/docker/quaderno sudo docker compose up -d --build sudo docker logs -f quaderno-sync # 看同步日志
容器会每隔 SYNC_INTERVAL 自动同步一次,开机自启(restart: unless-stopped)。
⚠️ 电子纸会休眠断 Wi-Fi:只有设备醒着且联网时才同步得上。睡死时这一轮 会被优雅跳过,下一轮再试——不会报错,但那段时间不会同步。⚠️ DHCP:脚本靠 Zeroconf(_dp_fujitsu)自动发现 IP,不怕 IP 变;但要求 NAS 和设备在同一网段/同一 Wi-Fi。若日后发现不稳,可在路由器给设备绑固定 IP,并在 compose 里设QUADERNO_ADDR跳过发现。⚠️ 冲突:.sync检查点能识别两边的增改,"较新覆盖较旧";避免两边同时编辑 同一文件。- 仅同步 PDF(设备本身只认 PDF)。
| 变量 | 默认 | 说明 |
|---|---|---|
QUADERNO_LOCAL |
/data |
NAS 侧同步文件夹(容器内路径) |
QUADERNO_REMOTE |
Document |
设备侧文件夹 |
QUADERNO_CREDS |
/creds |
凭据目录 |
QUADERNO_ADDR |
(空=自动发现) | 写死设备 IP,跳过 Zeroconf |
QUADERNO_DISCOVER_TIMEOUT |
15 |
发现设备的等待秒数 |
SYNC_INTERVAL |
10800 |
两次同步间隔秒数 |