Out-of-tree series of patches implementing a resume mechanism from the bootloader.
C Assembly Other
Switch branches/tags
syslinux.1.31 syslinux-init syslinux-elf-test-1 syslinux-3.74 syslinux-3.74-pre21 syslinux-3.74-pre20 syslinux-3.74-pre19 syslinux-3.74-pre18 syslinux-3.74-pre17 syslinux-3.74-pre16 syslinux-3.74-pre15 syslinux-3.74-pre14 syslinux-3.74-pre13 syslinux-3.74-pre12 syslinux-3.74-pre11 syslinux-3.74-pre10 syslinux-3.74-pre9 syslinux-3.74-pre8 syslinux-3.74-pre7 syslinux-3.74-pre6 syslinux-3.74-pre5 syslinux-3.74-pre4 syslinux-3.74-pre3 syslinux-3.74-pre2 syslinux-3.74-pre1 syslinux-3.73 syslinux-3.73-pre7 syslinux-3.73-pre6 syslinux-3.73-pre5 syslinux-3.73-pre4 syslinux-3.73-pre3 syslinux-3.73-pre2 syslinux-3.73-pre1 syslinux-3.72 syslinux-3.72-pre8 syslinux-3.72-pre7 syslinux-3.72-pre6 syslinux-3.72-pre5 syslinux-3.72-pre4 syslinux-3.72-pre3 syslinux-3.72-pre2 syslinux-3.72-pre1 syslinux-3.71 syslinux-3.71-pre16 syslinux-3.71-pre15 syslinux-3.71-pre14 syslinux-3.71-pre13 syslinux-3.71-pre12 syslinux-3.71-pre11 syslinux-3.71-pre10 syslinux-3.71-pre9 syslinux-3.71-pre8 syslinux-3.71-pre7 syslinux-3.71-pre6 syslinux-3.71-pre5 syslinux-3.71-pre4 syslinux-3.71-pre3 syslinux-3.71-pre2 syslinux-3.71-pre1 syslinux-3.70 syslinux-3.70-pre30 syslinux-3.70-pre29 syslinux-3.70-pre28 syslinux-3.70-pre27 syslinux-3.70-pre26 syslinux-3.70-pre25 syslinux-3.70-pre24 syslinux-3.70-pre23 syslinux-3.70-pre22 syslinux-3.70-pre21 syslinux-3.70-pre20 syslinux-3.70-pre19 syslinux-3.70-pre18 syslinux-3.70-pre17 syslinux-3.70-pre16 syslinux-3.70-pre15 syslinux-3.70-pre14 syslinux-3.70-pre13 syslinux-3.70-pre12 syslinux-3.70-pre11 syslinux-3.70-pre10 syslinux-3.70-pre9 syslinux-3.70-pre8 syslinux-3.70-pre7 syslinux-3.70-pre6 syslinux-3.70-pre5 syslinux-3.70-pre4 syslinux-3.70-pre3 syslinux-3.70-pre2 syslinux-3.70-pre1 syslinux-3.64-pre1 syslinux-3.63 syslinux-3.63-pre5 syslinux-3.63-pre4 syslinux-3.63-pre3 syslinux-3.63-pre2 syslinux-3.63-pre1 syslinux-3.62 syslinux-3.62-pre16 syslinux-3.62-pre15
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
codepage
com32
core
doc
dos
extlinux
gpxe
libfat
libinstaller
linux
man
mbr
memdisk
memdump
mime/image
modules
mtools
sample
utils
win32
.gitignore
BUGS
COPYING
MCONFIG
MCONFIG.embedded
Makefile
Makefile.private
NEWS
README.rdoc
TODO
dummy.c
gen-id.sh
now.pl
syslinux.spec.in
version
version.pl

README.rdoc

Syslinux fastboot

Syslinux is a suite of bootloaders that can boot a variety of Operating Systems. See syslinux.zytor.com/wiki/index.php/The_Syslinux_Project for more information.

This repository (github.com/pierre/syslinux-fastboot) is an out-of-tree series of patches implementing a resume mechanism for Linux in a COM32 module for Syslinux. See the description of the branch fast-boot below.

Branches description

master

Nothing to see here (3.7x tree). Has one commit to have this README displayed on github.

fast-boot

When booting a Linux based computer from a hibernate image, the process is broken down into three distinct phases:

1/ the bootloader loads the kernel image
2/ the loaded (first) kernel reads the hibernate image on disk and jumps into a saved kernel
3/ the second kernel, saved in the hibernate image, resets the saved state of the OS and resume its operations

As an experiment, I wanted to see if it was possible to skip the second step and have the bootloader read and jump into the saved kernel on disk directly. This has been implemented in resume.c32, a Syslinux COM32 module which can read a TuxOnIce image (see github.com/pierre/tuxonice-fastboot) and jump into a saved kernel.

Although the experiment has been successful, it is not clear whether this can be used in practice.

First of all, reading the hibernate image is quite I/O expensive and can be done much faster using a real kernel vs using native I/O BIOS routines

Second, some extra work may need to be done in 2/ above for the hardware to be in a safe state before attempting to resume (reset registers, …). resume.c32 doesn't do any of that work and although it works in a stock Debian install in Qemu, it is not guaranteed to be stable using real hardware.

To see it in action: www.youtube.com/watch?v=TF9nUVkHCrQ