System resume issues
currently I am maintaining the uswsusp package. I have some bugs related to the resume process . I was talking with Ben in debian-kernel, and I am writing to debian-devel trying to get the best option to solve the problems and because other packages could be affected (cryptsetup, hibernate, pm-utils,...).
The boot process:
- When the system boots tries to find if there is a resume image to recover it.
- initramfs-tools stores the resume partition in the file /etc/initramfs/conf.d/resume. This file is created only when initramfs is installed (is not updated). This file is copied to the initrd image to select the recovery image in the boot process. initramfs-tools adds a /bin/resume file in the initrd file to recover the image. The resume file has one line: "RESUME = /dev/xxx" with the resume device.
- uswsusp package uses the file /etc/uswsusp.conf to store the boot info. In the file the user can select the resume device ("resume device = xxx") and the offset to the image. This info is used by the uswsusp initramfs script to resume the machine. uswsusp adds a /sbin/resume file in the initrd file to recover the image. uswsusp has more features, like image encryption, image compression,...
- initramfs-tools doesn't use the info in /etc/uswsusp.conf and if the image selected in /etc/uswsup.conf and /etc/initramfs-tools/conf.d/resume are different, the image is not found.
- initramfs-tools uses /bin/resume and uswsusp uses /sbin/resume
- uswsusp cannot use the boot kernel options.
- The solution to these problems will affect other packages.
- Create a new package (for example, resume-base).
- Resume base provides a debconf file to configure the resume file. This file is stored at /etc/resume. The user can configure the /etc/resume file with dpkg-reconfigure resume-base. The file contains two lines, resume and offset info.
- initramfs-tools and uswsusp depend on resume-base.
- initramfs-tools and uswsusp use the info in /etc/resume as resume device and resume offset.
- initramfs-tools and uswsusp provides an alternative to /bin/resume.
- Other packages need update their configuration scripts to use /etc/resume.
Comments are welcome.
Thanks a lot,