Aquí está mi problema:
Tengo una computadora portátil con Arch que solo mantengo en casa. Tiene una buena duración de batería de 4 horas, pero a veces mi hija está jugando cerca de donde está guardada y termina desconectando. Bueno, cuando llegué a casa 5 horas después, mi computadora portátil se apagó por completo.
Además, a veces lo dejo suspendido y lo olvido por un día más o menos, el mismo problema.
Aquí está mi propuesta:
Así que pensé que podría hacer un trabajo cron que se ejecutara cada 15 o 30 minutos o algo así, verificando la duración de la batería. Si la duración de la batería es <N minutos restantes, podría hibernar la computadora portátil. Esto funcionaría bien si mi computadora portátil está en "encendido" normal. Pero si estoy suspendido, no tanto. Entonces, mi pregunta es doble: ¿hay una mejor manera de hacer esto, y si no, es posible hacer algún tipo de monitoreo en modo de suspensión, básicamente, solo ejecuta ese trabajo cron?
Esto es lo que funcionó:
Siguiendo las instrucciones de uswsusp en el wiki de Arch, instalé uswsusp desde AUR . Usando el siguiente comando:
wayne@jughead:~$ swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 530140 56744 -1
Descubrí que /dev/sda2
era el nombre de mi partición de intercambio. Así que puse esto en mi/etc/suspend.conf
snapshot device = /dev/snapshot
resume device = /dev/sda2
Agregué uresume en mi mkinitcpio.conf aquí:
HOOKS="base udev autodetect pata scsi sata resume uresume filesystems usbinput fsck"
Creé /etc/pm/config.d/module
y puse
SLEEP_MODULE=uswsusp
en eso.
Como mi computadora portátil no fue reconocida ( # s2ram --test
mostrada Machine unknown
) tuve que usar la --force
opción.
En /usr/lib/pm-utils/module.d/uswsusp
también cambié todas las s2ram
opciones a s2both
.
rtcwake
? Esta respuesta podría ser inspiradora.