update at 2026-03-15 14:54:51

This commit is contained in:
douboer@gmail.com
2026-03-15 14:54:51 +08:00
parent c02b23bad2
commit d375f7174f
26 changed files with 1284 additions and 15 deletions

View File

@@ -10,6 +10,7 @@ LOW_BATTERY_CMD="$DIR/local/low-battery.sh"
REFRESH_SCHEDULE=${REFRESH_SCHEDULE:-"2,32 8-17 * * MON-FRI"}
FULL_DISPLAY_REFRESH_RATE=${FULL_DISPLAY_REFRESH_RATE:-0}
SLEEP_SCREEN_INTERVAL=${SLEEP_SCREEN_INTERVAL:-3600}
DISABLE_SYSTEM_SUSPEND=${DISABLE_SYSTEM_SUSPEND:-false}
RTC=/sys/devices/platform/mxc_rtc.0/wakeup_enable
LOW_BATTERY_REPORTING=${LOW_BATTERY_REPORTING:-false}
@@ -27,6 +28,10 @@ init() {
echo "Starting dashboard with $REFRESH_SCHEDULE refresh..."
if [ "$DISABLE_SYSTEM_SUSPEND" = true ]; then
echo "System suspend disabled, using normal sleep between refreshes."
fi
/etc/init.d/framework stop
initctl stop webreader >/dev/null 2>&1
echo powersave >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
@@ -88,6 +93,9 @@ rtc_sleep() {
if [ "$DEBUG" = true ]; then
sleep "$duration"
elif [ "$DISABLE_SYSTEM_SUSPEND" = true ]; then
echo "Skipping system suspend, sleeping for ${duration}s instead"
sleep "$duration"
else
# shellcheck disable=SC2039
[ "$(cat "$RTC")" -eq 0 ] && echo -n "$duration" >"$RTC"

41
dash/src/debug-off.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env sh
# 持久关闭调试模式:修改 env.sh恢复正常的省电挂起行为。
set -eu
DIR="$(dirname "$0")"
ENV_FILE="$DIR/local/env.sh"
TMP_FILE="$DIR/local/env.sh.tmp"
if [ ! -f "$ENV_FILE" ]; then
echo "未找到配置文件:$ENV_FILE"
exit 1
fi
# 只替换目标配置,避免重复追加同一环境变量。
awk '
BEGIN {
updated = 0
}
/^export DISABLE_SYSTEM_SUSPEND=/ {
print "export DISABLE_SYSTEM_SUSPEND=false"
updated = 1
next
}
{
print
}
END {
if (!updated) {
print "export DISABLE_SYSTEM_SUSPEND=false"
}
}
' "$ENV_FILE" > "$TMP_FILE"
mv "$TMP_FILE" "$ENV_FILE"
# 已运行的 dashboard 进程不会重新读取 env.sh切换后先停掉它
# 避免旧进程继续按旧配置运行。
pkill -f "$DIR/dash.sh" 2>/dev/null || true
echo "已关闭 Dashboard 调试模式。当前 Dashboard 已停止,请重新启动 Kindle Dashboard。"

41
dash/src/debug-on.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env sh
# 持久开启调试模式:修改 env.sh让后续普通启动也不进入系统挂起。
set -eu
DIR="$(dirname "$0")"
ENV_FILE="$DIR/local/env.sh"
TMP_FILE="$DIR/local/env.sh.tmp"
if [ ! -f "$ENV_FILE" ]; then
echo "未找到配置文件:$ENV_FILE"
exit 1
fi
# 只替换目标配置,避免重复追加同一环境变量。
awk '
BEGIN {
updated = 0
}
/^export DISABLE_SYSTEM_SUSPEND=/ {
print "export DISABLE_SYSTEM_SUSPEND=true"
updated = 1
next
}
{
print
}
END {
if (!updated) {
print "export DISABLE_SYSTEM_SUSPEND=true"
}
}
' "$ENV_FILE" > "$TMP_FILE"
mv "$TMP_FILE" "$ENV_FILE"
# 已运行的 dashboard 进程不会重新读取 env.sh切换后先停掉它
# 避免旧进程继续按旧配置进入系统挂起。
pkill -f "$DIR/dash.sh" 2>/dev/null || true
echo "已开启 Dashboard 调试模式。当前 Dashboard 已停止,请重新启动 Kindle Dashboard。"

View File

@@ -13,6 +13,11 @@ export TIMEZONE=${TIMEZONE:-"Asia/Shanghai"}
# 等图片尺寸与刷新逻辑确认无误后,再改回 4 之类的值以节省功耗。
export FULL_DISPLAY_REFRESH_RATE=${FULL_DISPLAY_REFRESH_RATE:-0}
# 调试开关:设为 true 后,主循环仍会按计划拉图和刷新屏幕,
# 但不会把 Kindle 写入 /sys/power/state 进入系统挂起。
# 适合通过 KUAL 或普通 start.sh 连续观察效果,调试结束后再改回 false。
export DISABLE_SYSTEM_SUSPEND=${DISABLE_SYSTEM_SUSPEND:-false}
# When the time until the next wakeup is greater or equal to this number,
# the dashboard will not be refreshed anymore, but instead show a
# 'kindle is sleeping' screen. This can be useful if your schedule only runs

8
dash/src/start-debug.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env sh
# 调试启动脚本:强制关闭系统挂起,便于在 Kindle 上持续观察刷新效果。
DIR="$(dirname "$0")"
export DISABLE_SYSTEM_SUSPEND=true
exec "$DIR/start.sh"