For some weeks now my suspend works surprisingly well. The only problem was that the ttys were not able to get back to a usable state. This changed now by using the framebuffer for the tty displays.
I actually solved to problems with the framebuffer: first I have now a much better screen resolution on the ttys, making me capable of really using them. 80×15 is just not my world. And second, by using the framebuffer the ttys have no problem with suspend. So when I switch to a tty (Ctrl+Alt+F1) after coming back from suspend they just look normal.
The framebuffer can be activated as a kernel parameter at boot time. The easiest way is to add the parameter to the
/boot/grub/grub.conf file. Mine looks now like this:
kernel /boot/vmlinuz-2.6.19-1.2911.6.5.fc6 ro root=LABEL=/ vga=0x317
The number, however, must be determinated before: it depends on the resolution you want to set. Here is a list of possible values.
You can check if your framebuffer supports a given mode by changing to a tty and calling
vbetest. vbetest will provide a list of possibly supported modes, and you can test-run one of those. If it works, add it to your kernel line, and there you are.
Btw.: several distributions ship with an already enabled framebuffer (I think Suse does, for example), but Fedora unfortunately doesn’t.