On Sat, 2008-10-18 at 21:27 -0700, ron minnich wrote:
On Fri, Oct 17, 2008 at 7:33 PM, Matt Price matt.price@utoronto.ca wrote:
On Fri, 2008-10-17 at 16:55 -0700, ron minnich wrote:
I think this is possible, given someone who is motivated :-)
can you give me a sense of what "motivation" entails? where i should i start digging to try to figure this out? thanks,
Where is the suspended kernel saved? What does kernel A do to boot Kernel B? Basic kexec?
we need those three answers first.
here's what i think so far: - the suspened image is saved to a swap partition, whose location needs to be specified within the initramfs which will be part of the payload. i don't know if that's a problem or not; presumably one would set it up outside of any LVM, RAID, or more complex arrangement. - as i understand it (and i'm not sure about this) kernels since 2.6.26 can use a hibernation image written by another kernel. So when there is a valid suspended image in the right place, kernel A simply activates the normal resume sequence, and we automatically end up with kernel B at the end of the resume process. - one would need some other process for booting kernel B in cases where there's no good hibernation image -- like on the system's first boot! -- i guess one could use kexec in an initramfs script. I haven't put this system together yet so I don't know whether there might be driver issues using kexec.
i guess one could start with a proof-of-concept minimal kernel in qemu & see if things work? i'm not sure how well the in-kernel suspend works with qemu, though -- i've always used the "save state" option there...
anyway does that sound about right?
matt
ron
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot