On Tuesday 04 July 2006 05:25, Jason Lunz wrote: > On Mon, Jul 03, 2006 at 08:34:58PM +0200, Rafael J. Wysocki wrote: > > Great. I'd like to create a HOWTO patch describing this, but I have no > > experience with initramfs and/or yaird. Would you please describe > > shortly all steps needed to make it work? > > It's not bad. I really think that getting ususpend integrated into > standard initrd/initramfs setups will be more fruitful than the support > in the suspend-0.2 release for generating a custom initrd. > > In fact, I'd suggest you remove that in favor of a HOWTO like this. I > don't think it's very realistic to think that people will use a > ususpend-only initrd when every major linux distribution has mature and > flexible early-userspace implementations. otoh, maybe it's useful as an > example to distribution packagers. > > anyway: > > 1. Run a 2.6.17 or newer kernel compiled with CONFIG_SOFTWARE_SUSPEND, > debian unstable, and install yaird. > > 2. Use yaird to generate a working initramfs (if you're familiar with > initrd, initramfs is exactly the same from a user perspective, for > our purposes). On debian unstable, yaird is used to generate a new > initramfs automatically when a new kernel is installed if yaird is > installed and initramfs-tools isn't. > > A good way to test out yaird is "yaird -o /tmp/i -f directory". This > creates a directory in /tmp/i with the same contents as the initramfs > image it would otherwise generate without "-f directory". You can > inspect the image and read the /tmp/i/init script to check that > everything looks OK. > > If you're generating an initramfs for a kernel version other than the > one currently running, you need to give yaird the desired kernel > version as an argument, eg. > "yaird -o /boot/initrd.img-2.6.17 2.6.17". > > Once you have your initramfs, you'll need to configure your boot > loader to use it. The relevant part of my /boot/grub/menu.lst looks > like this: > > title Debian GNU/Linux, kernel 2.6.17.2 > root (hd0,0) > kernel /vmlinuz-2.6.17.2 ro > initrd /initrd.img-2.6.17.2 > boot > > where (hd0,0) is my /boot partition. > > 3. Install the ususpend userland tools. Get the latest release from > http://suspend.sourceforge.net/ and do "make && make install". > > 4. Edit the yaird config so it puts the "resume" program and > its config file, /etc/suspend.conf, into the initramfs. This patch > contains the necessary modification to the config file: > > diff -ur y/Templates.cfg /etc/yaird/Templates.cfg > --- y/Templates.cfg 2006-07-03 23:02:00.974998000 -0400 > +++ /etc/yaird/Templates.cfg 2006-07-03 23:03:45.000000000 -0400 > @@ -400,6 +400,8 @@ > # > TEMPLATE resume > BEGIN > + FILE "/usr/local/sbin/resume" > + FILE "/etc/suspend.conf" > SCRIPT "/init" > BEGIN > !if [ -z "$noresume" ] > @@ -412,6 +414,9 @@ > ! if [ -w /proc/software_suspend/do_resume ]; then > ! echo > /proc/software_suspend/do_resume > ! fi > + ! # for ususpend > + ! mkcdev /dev/snapshot misc/snapshot > + ! /usr/local/sbin/resume > ! # for swsusp > ! if [ -n "$resume" ] > ! then > > A previous version of this patch tested for the presence of the > 'resume' program before trying to run it, but this was pointless > since yaird will fail if it can't include a file given by a FILE > directive while generating the initramfs. > > In addition, it's necessary to tell yaird somehow which partition is > your suspend partition. There are two ways to do this. The default > yaird config calls the 'RESUME' template in /etc/yaird/Default.cfg > without any argument. With this setup, yaird finds the suspend > partition by looking for a swap partition in /etc/fstab with the > 'resume' option (the comments in Default.cfg explain this). > > The other way is to just give the RESUME in Default.cfg an explicit > argument naming the suspend swap partition. I think this makes a > little more sense, since it keeps more suspend-related information in > the same config file. > > 5. Make a backup of your old (presumably working) initramfs from step 1, > and generate a new one with ususpend support. For example: > > # mv /boot/initrd.img-2.6.17.2 /boot/initrd.img-2.6.17.2-old > # yaird -o /boot/initrd.img-2.6.17.2 2.6.17.2 > > 6. Try to suspend and resume. If you're using Bernard Blackham's > hibernate scripts, the version currently in svn supports calling the > s2disk program to suspend. Maybe he'll do a release soon. You can > always do things by hand; I assume the reader at this point has some > familiarity with the tricks needed to successfully suspend/resume > using other methods. > > I think that's it. Have I left anything out?
OK, thanks. :-) In the meantime we've got a HOWTO patch from Marten, so I think I'll add this one as a separate file. Pavel, what do you think? Rafael Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel