Kobo: suspend correct (state-extended avant rtcwake) + hwclock sync + logs suspend
This commit is contained in:
@@ -21,5 +21,8 @@ for gov in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
|
|||||||
echo ondemand > "$gov" 2>/dev/null
|
echo ondemand > "$gov" 2>/dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Synchronise l'horloge RTC sur l'heure système (sinon rtcwake calcule mal -> suspend KO).
|
||||||
|
hwclock -w -u 2>/dev/null
|
||||||
|
|
||||||
# Lance la boucle, tout est journalisé dans $LOG.
|
# Lance la boucle, tout est journalisé dans $LOG.
|
||||||
exec sh "$BASE/monitorinkloop.sh" >> "$LOG" 2>&1
|
exec sh "$BASE/monitorinkloop.sh" >> "$LOG" 2>&1
|
||||||
|
|||||||
@@ -37,19 +37,23 @@ display() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
suspend_for() {
|
suspend_for() {
|
||||||
|
# Séquence Kobo éprouvée (trmnl-kobo) : state-extended=1 AVANT rtcwake, puis
|
||||||
|
# suspend manuel (echo mem) si rtcwake n'a pas vraiment suspendu.
|
||||||
secs="$1"
|
secs="$1"
|
||||||
|
sync
|
||||||
|
echo 1 > /sys/power/state-extended 2>/dev/null
|
||||||
start=$(date +%s)
|
start=$(date +%s)
|
||||||
"$BUSYBOX" rtcwake -a -s "$secs" -m mem 2>/dev/null
|
"$BUSYBOX" rtcwake -a -s "$secs" -m mem 2>/dev/null
|
||||||
end=$(date +%s)
|
elapsed=$(( $(date +%s) - start ))
|
||||||
if [ $((end - start)) -lt 10 ]; then
|
log "rtcwake elapsed=${elapsed}s"
|
||||||
log "rtcwake fallback (state-extended)"
|
if [ "$elapsed" -le 10 ]; then
|
||||||
echo 1 > /sys/power/state-extended 2>/dev/null
|
log "suspend manuel via echo mem"
|
||||||
sleep 2
|
sleep 1; sync; sleep 2
|
||||||
|
m_start=$(date +%s)
|
||||||
echo mem > /sys/power/state 2>/dev/null
|
echo mem > /sys/power/state 2>/dev/null
|
||||||
echo 0 > /sys/power/state-extended 2>/dev/null
|
log "echo mem elapsed=$(( $(date +%s) - m_start ))s (≈${secs}=OK, ≈0=Nickel bloque)"
|
||||||
now=$(date +%s)
|
|
||||||
[ $((now - start)) -lt 10 ] && { log "suspend KO -> sleep $secs"; sleep "$secs"; }
|
|
||||||
fi
|
fi
|
||||||
|
echo 0 > /sys/power/state-extended 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
|||||||
Reference in New Issue
Block a user