update at 2026-03-16 09:00:35

This commit is contained in:
douboer@gmail.com
2026-03-16 09:00:35 +08:00
parent 4b280073d4
commit 3d8dba12aa
24 changed files with 974 additions and 233 deletions

View File

@@ -10,7 +10,7 @@ This repo only contains the code that runs on the Kindle. It periodically fetche
This code _does not_ render the dashboard itself. It's expected that what to display on the screen is rendered elsewhere and can be fetched via HTTP(s). This is both more power efficient and allows you to use any tool you like to produce the dashboard image.
In the current Voyage layered-clock setup, the Kindle only fetches a low-frequency `kindlebg.png` background. The clock face and hand patches are synced as local assets and re-drawn on-device once per minute without network access.
In the current Voyage layered-clock setup, the Kindle only fetches a low-frequency `kindlebg.png` background. The clock region itself is re-rendered on-device once per minute with a local Lua script and FBInk, without network access.
In my case I use a [dashbling](https://github.com/pascalw/dashbling) dashboard that I render into a PNG screenshot on a server. See [here](https://github.com/pascalw/kindle-dash/blob/main/docs/tipstricks.md#producing-dashboard-images-from-a-webpage) for information on how these PNGs should be produced, including some sample code.
@@ -27,6 +27,8 @@ In my case I use a [dashbling](https://github.com/pascalw/dashbling) dashboard t
3. Copy the files to the Kindle, for example: `rsync -vr ./ kindle:/mnt/us/dashboard`.
4. Start dashboard with `/mnt/us/dashboard/start.sh`.
Note that the device will go into suspend about 10-15 seconds after you start the dashboard.
5. To leave dashboard mode and get back to the normal Kindle UI/KUAL, run `/mnt/us/dashboard/stop.sh`.
This now stops `dash.sh` and restores the Kindle framework.
## Upgrading
@@ -38,6 +40,7 @@ If you're running kindle-dash already and want to update to the latest version f
4. Modify files in `/mnt/us/dashboard/local` if applicable.
5. Start dashboard with `/mnt/us/dashboard/start.sh`.
Note that the device will go into suspend about 10-15 seconds after you start the dashboard.
6. Run `/mnt/us/dashboard/stop.sh` when you want to restore the normal Kindle UI/KUAL.
## KUAL
@@ -48,18 +51,18 @@ If you're using KUAL you can use simple extension to start this Dashboard
## Debugging
For on-device debugging without suspending the Kindle, set `DISABLE_SYSTEM_SUSPEND=true` in `local/env.sh`.
The dashboard loop will keep running and use a normal `sleep` between refreshes instead of writing to `/sys/power/state`.
The dashboard loop will keep running, skip the `sleeping.png` branch, and use a normal `sleep` between refreshes instead of writing to `/sys/power/state`.
If you're connected over SSH you can also run `DEBUG=true ./start.sh` to keep the process in the foreground with shell tracing enabled.
If you're launching from KUAL, use `Dashboard Debug On` before a normal start to persistently disable suspend in `local/env.sh`, and `Dashboard Debug Off` when you want to restore the normal low-power behavior.
Both actions stop the current dashboard process so the new setting takes effect on the next start.
If you're launching from KUAL, `Dashboard Debug On` now persists `DISABLE_SYSTEM_SUSPEND=true` and immediately restarts the dashboard in one tap. `Dashboard Debug Off` restores the normal low-power behavior and also restarts the dashboard immediately.
If you're connected over SSH and only want a one-off foreground session, you can still run `/mnt/us/dashboard/start-debug.sh`.
Each dashboard loop now also writes `isCharging` and `battStateInfo` from `com.lab126.powerd` into `logs/dash.log`, which makes it easier to confirm whether the Kindle actually detected external power while debugging.
## How this works
* This code periodically downloads a dashboard background image from an HTTP(s) endpoint.
* The interval can be configured in `dist/local/env.sh` using a cron expression.
* When layered clock assets are present, the Kindle re-renders the clock patch locally every minute.
* When the layered clock renderer is enabled, the Kindle re-renders the clock region locally every minute.
* During the update intervals the device is suspended to RAM to save power.
## Notes
@@ -67,6 +70,7 @@ If you're connected over SSH and only want a one-off foreground session, you can
* The releases contain a pre-compiled binary of the [ht](https://github.com/ducaale/ht) command-line HTTP client. This fully supports modern HTTPS crypto, wheras the built-in `curl` and `wget` commands don't (because they rely on a very old `openssl` library).
* For a detailed Kindle Voyage 5.13.6 jailbreak and deployment walkthrough, see [docs/kindle-voyage-5.13.6-watchthis-zh.md](./docs/kindle-voyage-5.13.6-watchthis-zh.md).
* For a detailed same-device dashboard/SSH troubleshooting playbook based on the 2026-03-15 session, see [docs/kindle-voyage-5.13.6-dual-ssh-playbook-zh.md](./docs/kindle-voyage-5.13.6-dual-ssh-playbook-zh.md).
* For the current white-screen/KUAL/SSH blocked-state handoff, see [docs/kindle-voyage-5.13.6-white-screen-handoff-zh.md](./docs/kindle-voyage-5.13.6-white-screen-handoff-zh.md).
* For the layered clock split and runtime model, see [docs/layered-clock-plan.zh.md](./docs/layered-clock-plan.zh.md).
## Credits