Una de mis motivaciones para utilizar TuxOnIce es la posibilidad de hibernar hacia un archivo común a diferencia de swusp (la hibernación de serie en el kernel Linux), pero con mi reciente migración hacia LVM+cryptoLuks ninguna de las configuración que realizaba funcionaban. Aunque con algunas desventajas de rendimiento, el uso de sistemas de archivos encriptados es casi obligatorio en equipos moviles y en Funtoo la tarea es practicamente automatica con una guía detallada en la Funtoo wiki con ayuda de better-initramfs que es compatible de serie con TuxOnIce.
Sin entrar en detalles el procedimiento basico de hibernación es generar una imagen de lo que se encuentra actualmente en la memoria RAM y dependiendo de la configuración de TuxOnIce esta es almacenada en una partición swap/un swapfile/un archivo común y esta imagen es restaurada al iniciar el sistema nuevamente. Sin embargo luego de comprobar que podía arrancar desde rootfs encriptado recordé que en el orden normal de arranque la restauración de la imagen hibernada tiene prioridad incluso sobre initramfs y me encontré frente al dilema: ¿Y ahora como le digo al Grub que busque la imagen de TuxOnIce si rootfs esta encriptada, swap también y se desencriptan con un prompt de initramfs?
Luego de un par de horas de frustración minutos me encontré con la solución, los propios parches de TuxOnIce toman en cuenta este problema y habilitando la opción CONFIG_TOI_IGNORE_LATE_INITCALL el kernel es configurado para esperar por la ejecucion de initramfs antes de intentar restaurar una imagen de TuxOnIce. Esta opción se encuentra en:
Power management and ACPI options │ │ -> Enhanced Hibernation (TuxOnIce) │ -> Wait for initrd/ramfs to run, by default
La documentación de la opción de compilación también indica que este parametro puede ser sobreescrito directamente en el Grub utlizando la opción:
toi_initramfs_resume_only=1
Luego solo queda recompilar el kernel o agregar la opción toi_initramfs_resume_only y preparar el Grub con la opción tuxonice y el valor resume= en los parametros de arranque del grub como indica el manual de better-initramfs lo cual es bastante sencillo utilizando boot-update. Despues de 7 hibernaciones exitosas puedo decir que funciona muy bien.