Suspend2

From cchtml.com

Suspend2 with fglrx 8.19 and above

Suspend2 version 2.2-rc11 and the ati driver version 8.19.10 is the first combination which is supposed to work without any support tool like vbetool. Suspend2 is the next generation of software suspension tool that has more advanced configuration options and scripting possibilities which makes it more usable for hardwares that need workaround and work not with Suspend's original version. Note that Suspend2 version 2.2-rc13 is the last one that works when fglrx is hardware accelerated, rc14 and 15 does not resume correctly with DRI enabled. 8.19.10 fglrx works best with rc13.

Suspend1 is included in vanilla kernel, but Suspend2 is a patchset for specific kernel versions, and a package of hibernation script and scriplets (that do the suspend and resume process along with the kernel). You need to go to suspend2.net to download the patchset and patch the related kernel source, compile it and the fglrx kernel driver. Go there for more info about the suspend2 installing. If you want to use rc11 you will need kernel 2.6.14. Former versions of Suspend2 are not using well the new fglrx driver 8.19.10, so it is advisable to use suspend2 2.2-rc11. Older versions are said to be working with older versions of ati driver but it's likely you will need a working vbetool to use them.

The recent versions were tested by a bunch of users and reported to be fully usable. rage3d forum thread. It hibernates and resumes fglrx very well. You should have a perfectly restored X screen when you resume your machine. Hunt for bugs and flaws is still running and any discoveries should be described on this page and the bugzilla.

The new suspend2 2.2-rc13 has many new fixes (though filewriter still needs caution, but swapwriter works fine), and if you want to use it with ati-driver, please be aware that you might need to add the following line to your hibernate.conf (or /etc/hibernate/common.conf) to make it work:

 ProcSetting extra_pages_allowance 5000    # 5000 may not be enough... read below!

Anyway, if you're using XGL you maybe whould have to increase this value, becouse it simply indicate how much space should use Suspend2 to save Video Memory, and XGL uses lots more than standard X. If when you're hibernating Suspend2 freezes on "Doing atomic copy", this could be the cause. Reading Suspend2 mailing list, I suggest to use a value close to (your memory size)/4 with also some padding... So if you've 64Mb of Vram set extra_pages_allowance to 20000, if you've 128Mb of Vram set extra_pages_allowance to 40000 and so on... By the way, you could set a better value looking the suspend2 debug infos with

 cat /sys/power/suspend2/debug_info | grep "Extra pages"

In my case the output is "Extra pages  : 7552 used/20000", but the value changes a lot durning your session; I've noticed that after 22 suspensions my record has been 8695. So maybe 10000 or 9000 are good values for a 64mb card loading XGL.

Suspend2 experience

Bugs:

  • Abit NF7, Radeon 9600XT, 1G RAM, gentoo linux (kernel 2.6.14-suspend2-r1 with suspend 2.2-rc11), fglrx 8.19.10 - hangs if two instances of X are resumend and switching to another X.

(Resuming a freezed proxy service (ziproxy or tinyproxy) caused kernel locking. Be careful to stop them before suspending. -- 2.2-rc11)

  • Abit NF7, Radeon 9600XT, 1G RAM, gentoo linux with suspend 2.2-rc14 and rc15, fglrx 8.20.8 - Cannot resume with HW acceleration, DRI. rc13 works fine!
  • Gigabyte GA-7N400-L (Nforce2), Radeon 9600XT, 512 MB RAM, gentoo linux with suspend2 2.2.5/ 2.2.7, fglrx 8.25.18/ 8.26.18, kernel 2.6.16/ 2.6.17 - it hangs with screen off after resume

Good working:

  • Abit NF7, Radeon 9600XT, 1G RAM, gentoo linux (kernel 2.6.14-suspend2-r1 with suspend 2.2-rc13/rc11), fglrx 8.20.8
  • AMD Athlon(tm) XP 2600 , nForce 2,

1Go RAM, Radeon 9200SE - FC4 suspend 2.2-rc11 (or latest 2.2-rc13) using FC4 kernel from http://mhensler.de/swsusp/ and livna ATI RPM!

  • Radeon Mobility 9700 64Mb, Centrino 1.5Ghz using Ubuntu Dapper with fglrx 8.27.10, loading XGL Compiz. You need an higher value of ProcSetting extra_pages_allowance X (I'm using 20000).

- XV and 3D acceleration is still present after suspend! (XV is ok since fglrx-8.20.8)