Cuando migré de la vieja rama 2.4 del kernel a la nueva lo hice con la versión 2.6.4. Al configuarlo sentí curiosidad por los modos nuevos que habia de suspender la máquina:
1) Te guarda el estado del sistema en swap y apaga el PC.
2) Al encenderlo te recupera el estado del sistema tal y como estaba.
Es muy atractiva la idea asi. En el kernel hay 2 formas de hacer esto:
Power management options (ACPI, APM) -> Software Suspend (EXPERIMENTAL)
Power management options (ACPI, APM) -> Suspend-to-Disk Support
Segun leí en la documentación la primera había sido más testeada así que me decanté por esa opción. Lo active en el kernel y en el grub le pasé por parámetro al kernel “resume=/dev/hda2”, es decir, queria que usase esa partición swap para guardar la info.
Reinicié, ejecute “echo 4 > /proc/acpi/sleep” para suspender… esto mostró por pantalla algunos mensajes del proceso quedandose finalmente paralizado sin poder hacer nada con el PC, así que pensé que quizás se tenia que apagar físicamente. Así lo hice, despues volví a encender el portatil y al iniciar el sistema, no recuperó ningun estado 🙁 Fué un inicio normal y corriente. Después de diversos intentos abandoné.
Hoy, no se muy bien pq motivo, me he vuelto a meter en la configuración del kernel y he decidido probar la segunda opción. La he activado, he recompilado y en el grub le indico al kernel “pmdisk=/dev/hda2” en lugar del “resume=…”. Reinicio y ejecuto “echo -n disk > /sys/power/state” para suspender, el sistema me muestra por pantalla unos mensajes y se apaga. Reinicio de nuevo y cual es mi sorpresa que a media carga lee de la swap el estado anterior y me lo recupera, mostrandome la consola en la que habia ejecutado la orden de suspender!!! Impresionante!!
Intento volver a suspender, esta vez desde las X y no lo consigo 🙁 Me fijo en los logs del sistema y muestra continuamente problemas con los USB 😕 Hago un reinicio normal, vuelvo a entrar en las X e intento suspender…. funciona!! perfecto de nuevo, la recuperación me lleva de nuevo hasta GNOME 😀 Pero vuelvo a observar problemas con USB en los logs.
La cuestión es que recuerdo que no hace mucho que ha salido la versión 2.6.5 del kernel y busco su ChangeLog, efectivamente habían detectado el mismo error que yo y según indican ahí lo han solucionado. Ahora mismo me lo estoy bajando para probarlo, ya os contaré 😉
Actualización Con el kernel 2.6.5 se soluciona uno de los errores USB pero persiste otro, continuamente se va informando en el log del sistema lo siguiente:
Apr 9 20:13:45 luna hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
Apr 9 20:13:45 luna hub 1-0:1.0: over-current change on port 1
Apr 9 20:13:47 luna hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
Apr 9 20:13:47 luna hub 1-0:1.0: over-current change on port 2
Y no deja volver a suspender 🙁 Una posible solución seria deshabilitar el soporte USB en el kernel ya que tampoco lo utilizo habitualmente, pero no lo voy a intentar, prefiero esperar ya que imagino que se arreglara en un futuro.