Which drivers are confirmed to work and not work with swsusp under 2.4 and 2.6.
Please mention exact versions, otherwise this list is about as useless as a used toothbrush... (ok, maybe 30% useful, but you get the point
2.6
- note: my observations are with swsusp1, but drivers should behave similarly for both implementations. Also, i am usually using SUSE-kernels which _may_ have this driver backported from later releases, but adding "1" to the minor kernel version number should give you the equivalent driver. Sorry for these hassles, i hope the information is still useful. --seife
Confirmed working:
Network
- e100.o 2.6.7 --brb
- e1000 (archlinux, kernel: 2.6.19-beyond, e1000 version: 7.3.20) --vir
- 8139too, 2.6.7 --cjp
- atheros "madwifi" WLAN driver ath_pci.ko ath_hal.ko wlan.ko --seife --Spida
- orinoco.ko 2.6.7 --sebas
- tg3.ko 2.6.11-rc4 (worked already in earlier kernels) --seife 2.6.13.4 --Spida
- forcedeth 2.6.11-rc4-nitro1 --blupix
- b44 2.6.11 --Merlin Schumacher
- ipw2200 1.0.3 works flawlessly with dhcp and wpa --Merlin Schumacher
- ipw2100 with recent versions of driver and kernel works great
- ipw3945 (archlinux, kernel: 2.6.19-beyond, ipw3945 1.1.3dmpr, hibernate-script 1.94-5) --vir
- via-rhine 2.6.12-rc1 (works, and in earlier kernels) --Roel Kluin
- prism54 2.6.11 --keoki
3Com® EtherLink® III 16-Bit ISA Network Interface Card 3C509 --Holger Wansing
- 3c59x on 2.6.14-suspend2-r7 (and earlier) --F. Schricker
sungem 2.6.15-rc6 with suspend 2.2-rc14+patches on a powerbook -- JohannesBerg 2005-12-25 01:48:28
- sky2.ko in 2.6.16 needs to be built as a module and removed before suspend, reinsert after --Metrics
works on Sony VGN S580
- ndiswrapper with bcm4311 windows driver -- Herm
Video
- radeonfb compiled in with Radeon Mobility 7500 (IBM A31)
xfree nv-driver (2.6.7-vanilla and xfree-4.3.0 (-r6-gentoo) Kraymer, try using non-graphical console if it does not work (Xorg 6.8.2, linux 2.6.15, suspend2-2.2)
ATI Radeon Mobility M6 LY (IBM ThinkPad X31), Xorg 6.8.2
ATI Radeon Mobility M6 LY (HP Omnibook xt6200), Xorg 6.8.2; drm, radeon, radeonfb compiled in, not as module! --FriedrichSchaeuffelhut
- ATI radeon 8500 dualhead + X4.3.0-dfsg ati driver + radeonfb, no hacks, linux 2.6.10 swsusp 2.1.5.15 --kw
ATI Mobility Radeon X700 (Gentoo-AMD64), x11-drivers/ati-drivers-8.40.4, x11-base/xorg-server-1.3.0.0-r2, sys-apps/suspend2-userui-0.7.1; sys-kernel/suspend2-sources-2.6.22-r2 ; ask tw04l124 => forums.gentoo.org
ATI Mobility Radeon X1300 (IBM/Lenovo ThinkPad T60), fglrx-beyond 8.36.5-2 ("beyond" because of beyond-kernel on archlinux), x.org 11R7.0-1
ATI R250Lf (Radeon mobility 9000 M9) with vesafb or vga=normal and X.org 6.8.2 dri on or off --seife
- ATI Mobile Radeon 9600 (M10) with X.org 6.8.2 radeon driver and radeonfb from kernel 2.6.11 --Merlin Schumacher
ATI Radeon Xpress 200M, ati-drivers: 8.32.5, 8.33.6, 8.34.8, 8.35.5; X11-7.1-X11-7.2, suspend2-sources from Gentoo Linux 2.6.20, 2.6.21 --BeteNoire
- Intel 852/855 GM with i910 kernel driver 2.6.16-rc6 - Tim Harper
Intel 945GM with i915 kernel driver and the I915 scriplet ( HibernateScript ) - dotCOMmie
neomagic X.org 6.8.2 (MagicGraph 128XD - Toshiba Libretto 1x0ct) --MiR
nvidia driver version 7174 works with kernel 2.6.11 and NvAGP 1 in xorg.conf (tested on a Sony VAIO PCG-GRT390ZP), but the following patch is needed.
--- usr/src/nv/nv.c 2005-04-07 04:47:07.000000000 -0500 +++ usr/src/nv.04082005/nv.c 2005-04-08 15:35:43.000000000 -0500 @@ -3424,0 +3424,0 @@ switch (state) { + case PM_SUSPEND_STANDBY: case PM_SUSPEND_MEM: nv_printf(NV_DBG_INFO, "NVRM: ACPI: received suspend event\n"); status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);also, the IO-APIC must be disabled either in the kernel or using the "noapic" parameter on the boot line if using SMT.- ^ agreed, using a dell i8600 (BIOS A13), kernel 2.6.11, nvidia driver 7174 (a GeForceFX 5200Go chipset) with above patch and works consistently - Chris Mortimore
also works with 7664, same hardware and kernel as above. the line "case PM_SUSPEND_STANDBY:" needs to be put in at line 3627 (instead of the one in the patch above), i havn't bothered to put together a real patch for it though (too lazy). just edit nv.c by hand, it isn't hard
- Chris Mortimore Work nice with NVIDIA 7667, kernel 2.6.12.3, with the same patch (edit by hand), NVIDIA GeForce 4 420 GO, without IO-APIC, with nvidia AGP driver and Xfree 4.3.0 (on Sony VAIO PCG-FR215E)
- Works also with vanilla-kernel 2.6.15 and nvidia driver 8178. I applied the above patch by hand, because the line-number has changed.
Works on my box (Dell Latitude C840, GeForce 4 440 GO) ! WITHOUT ! above patch for 2.6.14-7 and nvidia 8178 , with IO-APIC, Xorg 6.8.2.dfsg.1-11, Debian Sid, using 2.2-rc15. I previously needed the patch. Well done people. Stefan Stanley
Nvidia drivers 8756 - Kernel 2.6.16 with 2.2.4 hibernate patches works without any patches. As per the nvidia readme, you need ProcSetting extra_pages_allowance 0 in your hibernate.conf. Also use SwitchToTextMode yes but not UseDummyXServer. No need to use vbetool here. --Metrics
Nvidia drivers 8756 - Kernel 2.6.16.2 with 2.2.4 patch works here without forcing extra_pages_allowance 0 (# echo 0 > /proc/suspend2/extra_pages_allowance). I only experienced the hang problem when using built-in suspend before the suspend2 patches. In my case, the default 100 extra pages is not sufficient and results in a failed suspend attempt often. Usually seems to need about 130 or so total. Hardware is an Asus Z71V w/ 2GB RAM, Geforce 6600 Go, and IDE HDD. I do get an odd situation where sometimes acpi events are not read due to X blocking acpid, but think this is related to S3 hardware suspend on the machine, not S4 hibernate. --Richard Houser (rickNOSPAM!ATdivineNOSPACEsymphonyDOTnet)
Nvidia drivers 8756 - Kernel 2.6.16 and suspend2 2.2.4 works fine for me without any special configuration, other than to comment out the "nvidia" module in blacklisted-modules (in /etc/hibernate on my debian system). I am currently using the text-based progress bar, which shows when entering hibernate but does not show when leaving it (as the screen is "hijacked" by the nvidia driver restarting I guess), but that's no big deal for me. --NigelMcNie
Same versions as NigelMcNie (obove) but with fbsplash. Works really well so war. Progressbar shown on hibernation and resume. Some driver stuff causes display dropouts at certain points though (like when your monitor is switching to different resolutions, or toggling console/X display). Kraymer
works on Sony VGN S580
- Almost works on Nvidia drivers 8762 and kernel 2.6.19 w/ 2.2.5 patch on an nforce2 mobo with 6600GT card. I had to set NvAGP "0" in xorg.conf AND disable agpgart in the kernel. Performance is slow, but it does safely resume. (Giga)
NVIDIA GeForce2 Go / NV11 (Dell Inspiron 8100 using Gentoo) - =nvidia-96.43.01 =sys-kernel/tuxonice-sources-2.6.23 (Disable kernel AGP and/or ensuring NvAGP=1) =sys-power/hibernate-script-1.97 && compile Maestro sound card driver as module. Enable within kernel config: "Suspend to RAM and standby" & "Hibernation (aka 'suspend to disk')" but do not enable "Enhanced Hibernation (TuxOnIce)". Install the "sys-apps/tuxonice-userui" package and hibernate as usual. Hibernating to disk or ram works using this configuration. I also recently replaced a defective nVidia card with the following lspci output "NVIDIA Corporation NV11 [GeForce2 Go] (rev b2)" 32MB version with "VBIOS 03.11.01.44.b4". Just for kicks, since this site recommends compiling modules for hardware not supporting suspend, I have compiled USB as modules but I doubt this was causing any previous issues. --Roger
NVIDIA GeForce2 440MX, driver version 9631, linux-2.6.20 + suspend2 2.2.9.7, followed the HowTo by Griffin3 and set "NvAGP" to "1" in xorg.conf (probably this was not needed). After removing nvidia from the blacklist, it works just fine without further patches, taking only seconds to shutdown / reboot. Thank you guys! Now I am waiting for suspend2 to become part of the official kernel.
Sound
- snd_intel8x0.ko 2.6.5 --seife 2.6.13.4 --Spida
2.6.17-2.6.21 needs workaround like snd_hda [see below] but both Master(1) and PCM(22) must be touched:
if ( amixer cget numid=22|grep "values=off" ); then amixer cset numid=22 on > /dev/null 2>&1 amixer cset numid=22 off > /dev/null 2>&1 else amixer cset numid=22 off > /dev/null 2>&1 amixer cset numid=22 on > /dev/null 2>&1 fi if ( amixer cget numid=1|grep "values=off" ); then amixer cset numid=1 on > /dev/null 2>&1 amixer cset numid=1 off > /dev/null 2>&1 else amixer cset numid=1 off > /dev/null 2>&1 amixer cset numid=1 on > /dev/null 2>&1 fiNote that this script restores previous settings (Nigel's doesn't). --emdej
- snd_intel8x0m (ICH4 Modem driver in combination with slmodemd) --Merlin Schumacher
- emu10k1 2.6.7 (sb live! alsa modules) works, but requires reloading after suspend --tuma
- (additional note: I have alsa compiled in the kernel, no reloading of services needed here --barross) (another note: I have to jiggle the mixer settings to bring the card back to life --kw) (yet another note: alsa compiled in kernel - sounds work. Though, ALSA MIDI programs have to be restarted. -- tuma)
(everyone must add a note *g so here goes mine: alsa modules version 1.0.11 work fine without restarting/reloading anything Kraymer)
- (additional note: I have alsa compiled in the kernel, no reloading of services needed here --barross) (another note: I have to jiggle the mixer settings to bring the card back to life --kw) (yet another note: alsa compiled in kernel - sounds work. Though, ALSA MIDI programs have to be restarted. -- tuma)
- sb.o (oss module used with Soundblaster16) works, but needs to be reloaded after resume --Holger Wansing
via82xx 2.6.7 and 2.6.16 (alsa, modules) works without restarting any services (alsasound, arts) Kraymer
- snd_maestro3.ko 2.6.9 --fc
- snd_cmipci
- 2.6.11-rc4-nitro1 --blupix
- 2.6.16.19 requires quitting all alsa-using applications, else sound is stalled - mplayer:"pcm in suspend mode - trying to resume" --ados
snd_powermac 2.6.13 and up -- JohannesBerg 2005-12-25 01:50:21
- snd_opl3sa2 2.6.15 --MiR
- snd_hda_intel as module, kernel: 2.6.19-beyond (archlinux)
snd_hda - Works compiled into the kernel just fine, I haven't tried the module but I don't imagine any problems. You have to "jiggle" the mixer settings on coming out of hibernate to have the sound continue playing, I wrote scriptlet to do it for me (place in your scriptlets.d directory and chmod 755):
# -*- sh -*- # vim:ft=sh:ts=8:sw=4:noet ### ## Mutes and unumtes sound on resume, to get sound playing again ## Some drivers just seem to need this "jiggle" for everything to ## work properly :) ## ## Author: Nigel McNie <nigel@mcnie.name> ### AddConfigHandler SoundFixOptions AddConfigHelp "EnableSoundFix <boolean>" "Automatically restore sound after suspending." SoundFixResume() { # Do nothing if not configured to [ x"$SOUNDFIX_ENABLED" = "x1" ] || return 0 # Mute and unmute amixer cset numid=2 off > /dev/null 2>&1 amixer cset numid=2 on > /dev/null 2>&1 return 0 } SoundFixOptions() { case $1 in enablesoundfix) BoolIsOn "$1" "$2" && SOUNDFIX_ENABLED=1 || return 0 ;; *) return 1 esac if [ -z "$SOUNDFIX_HOOKED" ] ; then AddResumeHook 65 SoundFixResume SOUNDFIX_HOOKED=1 fi return 0 }
Note that you should run 'amixer controls' to find the "Master Playback Switch" or similar - the one that controls muting/unmuting, and use its numid in place of the numid=2 above (e.g. numid=N). Test it on the command line first. Then simply put EnableSoundFix yes in your hibernate config file :). This may also work for the emu10k1 issue reported above, it would be great if someone tried it! --NigelMcNie
works on Sony VGN S580
USB / Firewire / Hotplug
- uhci_hcd.ko 2.6.5-SUSE --seife uhci_hcd.ko doesn't work with 2.6.7 --pe
- uhci_hcd.ko 2.6.11-rc4 does not crash the machine, but needs to be reloaded or at least my mouse does no longer work after resume. --seife
- ehci_hcd.ko 2.6.11-rc4 does survive a suspend and resume including working USB2 CD-burner after resume --seife
- yenta_socket.ko 2.6.5 --seife
- usb_storage 2.6.11-rc4-nitro1 --blupix
- pl2303 2.6.11-rc4-nitro1 --blupix
- usblp 2.6.11-rc4-nitro1 --blupix
uhci_hcd.ko & ehci_hcd.ko in 2.6.16 need to be removed before hibernate and reinserted on resume. NOTE: If you are using an initrd, it is possible that the modules might be automatically reinserted before suspend2 kicks in on resume. This results in broken USB. The solution is to rmmod the modules before calling echo > /proc/suspend2/do_resume. -- Metrics
uhci_hcd.ko & ehci_hcd.ko in 2.6.16 work fine when built into the kernel Kraymer
Other
- nfs v3, v2 --tuxlover
lirc_serial and lirc_dev (version 0.8.0 in 2.6.16 kernel) (don't touch lirc_dev, unload lirc_serial before hibernation, let hibernate-script reload modules automatically) Kraymer
I2C in kernel 2.6.16 (I have i2c_core, i2cviapro in use.) Kraymer
Hardware Monitoring: 2.6.16, hwmon builtin, asb100 as module Kraymer
Wacom tablet: 2.6.25:
Had a bit of trouble getting the tablet to resume properly. Partly a udev thing and partly an X11 thing I think. On resume I didn't have a /dev/input/by-id/xxxx file for the tablet -- although it worked to a fashion in X11 -- not properly though -- buttons were wrong and no absolute positioning. After switching to console and back the tablet didn't work at all. After rmmod wacom and modprobe wacom and another switch to console and back it all started working. After some experimentation a few days ago (and I've been hibernating ever since) I found that executing 'rmmod wacom' and 'modprobe wacom' at the appropriate priority in hibernate.conf worked. I know there's a hardware wiki so if you wanted to put my results up there
Somewhat-works:
Sound
- snd-ali5451 (mixer setting become soft and unchangeable until module reloaded) --brb
Network
- b44.ko (works most of the time but sometimes seems to cause resume hangs) 2.6.5 --seife
dmfe.ko (with Davicom DM9102, Suspend2 kernel patch causes network to go down 60 seconds after driver initialisation; we can make it work by removing and reinserting network cable every 60 secs) --JohnDansted
- sky2.ko in 2.6.16 needs to be built as a module and removed before suspend, reinsert after --Metrics
Video
- ali-agp (loses acceleration) --brb
- intel_agp.ko / i830.ko (loses acceleration) 2.6.5 --seife
- i855 GM graphic card looses acceleration - 2.6.9 -- samokk
USB
uhci_hcd.ko & ehci_hcd.ko in 2.6.16 need to be removed before hibernate and reinserted on resume. NOTE: If you are using an initrd, it is possible that the modules might be automatically reinserted before suspend2 kicks in on resume. This results in broken USB. The solution is to rmmod the modules before calling echo > /proc/suspend2/do_resume. -- Metrics
Confirmed broken:
ahci as at 2.6.18-rc1 needs 6 patches from http://marc.theaimsgroup.com/?l=linux-ide&m=115277002327654&w=2 -- nigel
cifs (to mount samba and windows 2000-xp shares, newer & faster) --tuxlover
- smbfs (to mount samba and windows 95-xp shares) --tuxlover
- savagefb (savagefb.ko) FBDev driver for S3 Savage PCI/AGP Chips 2.6.10 --andy
- official nvidia graphics drivers (Work in progress by nVidia, still problems with 6111)
- NVidia 6629 seems to fix these problems -- provided Option NvAGP 0 enabled. But see Confirmed working, above, for details of nVidia 7174 -pbw
- USB modules (ehci_hcd.o, ohci_hcd.o, uhci_hcd.o) -rst *uhci_hcd worksforme somewhat, ehci_hcd works fine for me (2.6.11-rc4)* --seife (With the 2.6.11.7 kernel and the 2.1.8 swsusp2, reinstalling the modules after restore locked up the machine; going back to 2.6.10 and 2.1.5.15 solved the problem)
USB modules on 2.6.11.12 seem to randomly (about 40% of the time) cause oopses, null pointer dereferences, and panics all over the kernel, mostly in IRQ handlers, for me. This actually happens with or without suspend2, but normally the only reason why I would ever want to remove and reinsert the modules is to reinitialize them after suspend... --ZygoBlaxell.
- natsemi.o -rst
- rt2400 --cjp
- rt2500 through ndiswrapper (almost positive) -zeekx4
- ipw2100 ("Centrino" wireless) --cjp (ipw2100-0.56 and newer works here --brix)
psmouse --cjp . (note: if you put in your hibernate.conf file
UnloadBlacklistedModules yes LoadModules autoand psmouse in your blacklisted-modules file, it reloads before restarting X and it works correctly!) (psmouse from 2.6.9 works fine here with my IBM TrackPoint) (On my ASUS M6N, if psmouse is unloaded/reloaded while X is running, X forgets about the trackpad features, but if I take psmouse out of blacklisted-modules, it works fine)
- bcm4400.ko --seife (works for me if compiled into kernel 2.6.7 --tuxlover)
- multihead displays in X, another ATI card doesn't show picture until X server is restarted --tuma.
(CJP notes: this works if you enable NvidiaHack in the suspend script -- even with ATI cards! :P) (KW notes: works fine for me, see Video above)
- via-rhine, netdev watchdog tries to reset it, reports that reset not complete yet -- doesn't work. --arekm
- via-agp was causing hang while resuming at "copying original kernel back" --arekm
- yenta-socket causes hang while resuming (2.6.9 kernel) --rkuris (well, it works perfectly for me - fc me too - thu)
- XFree 4.3 using proprietary ATI driver do not resume properly for me, computer freezes when switching back into X (kernel 2.6.9, swsusp 2.1.4), works fine with VESA drivers though. Using the internal AGP stuff from ATI does not fix this issue (but does produce a nicer picture on the screen before freezing) - thu
- XFree 4.3, proprietary ATI driver 8.12 and 8.14, kernel 2.6.11.1[12], vbetool 0.3 works for me on a Eurocom Milano (Mobility Radeon 9700, ICH4-M chipset). I don't use the hibernate script, though. My suspend/resume script looks like this:
vbetool vbestate save > vbestate (while X is running!)
- chvt 1 (text console now)
- suspend, resume (still text console)
- vbetool post (still text console, but it goes black)
vbetool vbestate restore < vbestate (still technically on the text console, but now it's in graphics mode, and you see whatever junk is in your uninitialized video RAM)
chvt 7 (back into X, and a few (agonizing!) seconds later, X redraws the screen and picks up without missing a beat). Correction: Xv support disappears, so I use '-vo gl' with mplayer.
Adding, removing, or changing the order of any of these steps causes a hard lockup for me, as does the "dummy X server" hack and the "hibernate" script. If a GL screensaver or other GL application is running at suspend time, its textures will all be random garbage on resume; otherwise, it works flawlessly--whenever everything else doesn't go wrong. --ZygoBlaxell
XFree 4.3, proprietary ATI driver 8.16.20, kernel 2.6.13.4, vbetool 0.3 does NOT work for me on Compaq Evo N800w (MOBILITY RADEON 9000 (M9 4C66), ICH4-M), even though I followed closely the steps above. In step 5 above I get back to X (no need for chvt 7, even though I tried that as well), and the notebook freezes (even the network connection freezes). Before and after vbetool post everything seems to work, except for black screen. Neither a trick with hibernate script (as suggested in http://www.eng.uwaterloo.ca/~demalea/) works. -- Nenad
p4-clockmod, speedstep_lib, freq_table (2.6.11.8) cause resuming to freeze at "Copying back original kernel". Once loaded as modules they cannot be removed. -- PatDouble
- Software watchdog (softdog) wakes up during resume, mutters something about not having a heartbeat for hours, then kicks the machine into an instant reboot. It kills ACPI S3 sleep the same way. :-P (Note: it appears that I have softdog enabled and it is what breaks swsuspend2 - i get immediate reboot after resume. However, it works fine with swsuspend v1. I will try without softdog next time. --MS)
- forcedeth 2.6.15/2.6.16 amd64, suspend hangs when forcedeth module isn't unloaded --Markus Henschel
2.4
Confirmed working:
Network
- eepro100.o --brb
- 8139too --cjp
- natsemi: seems to work, but someone else marked this as broken? not heavily tested by me --cjp
- e100.o
- orinoco.o --sebas
Video
- agpgart with ALi chipset --brb
- agpgart with P4M chipset (IBM A31)
- vesafb with P4M chipset (Radeon Mobility 7500 on IBM A31)
Sound
- trident.o sound driver on some hardware
- snd_intel8x0.o
USB
- usb-ohci.o on some machines.
Other
- bluetooth.o, hidp.o with hcid, hidd running (Epox BT-DG03BF)
Confirmed broken:
Video
- official nvidia graphics drivers - WIP. Certain versions do work - see above. 8184 doesn't work for me (Nick Crabtree).
169.07 (2.6.22 kernel) nVidia Corporation G70 [GeForce 7600 GS] (rev a1) - occasionally white with cursor interface but usually no X display.
Sound
- emu10k1 (no suspend support at all) --cjp
- i810_audio (sound plays at wrong speed after resume) --cjp
- trident.o sound driver on Ali M5451 hardlocks after resume --mhf
Network
- bridge 2.6.22 kernel -- danielblack - suspect "netif_device_detach(dev);" in all network driver suspend code removes it from any active bridge. to check "brctl show" before and after. Noted with forcedeth nVidia Corporation MCP55 Ethernet (rev a2) 0680: 10de:0373.
forcedeth (Nforce/Nforce2 ethernet) --cjp (worth checking <2.6.24_rc8 mac address swapped on resume problem )
- rt2400 (Ralink 801.11b chipset, e.g. Minitar cards) --cjp
USB
- ehci-hcd (USB 2.0) --cjp
- usb-ohci --cjp == Many interesting infos == Now 20050930-013111_123.




