Suspend/Resume now works on my ThinkPad R52 with FreeBSD

I haven’t bothered trying to get suspend/resume to work on my ThinkPad R52 for a while. It has been long enough that I don’t remember what I tried — so I don’t know if what I did to get it working this time was something I had tried before and, at the time, didn’t work. Some software on my system has been updated, and some configuration changed, since then. As such, it’s possible that the exact same thing that worked this time didn’t work before. It’s also possible that, in the midst of my experimenting and research, I just managed to miss the very easy fix for getting things working on FreeBSD.

Relevant Specs

Hardware: ThinkPad R52 Mobility Radeon X300

Software: FreeBSD 6.2-RELEASE (yes, I need to upgrade that)

xorg.conf: Driver “radeon”

loader.conf: radeon_load=”YES”

That’s it for preëxisting system specs that seem relevant and changeable. Obviously, there’s more that might have a bearing on whether this works for you, but I think it’s all stuff that falls under the control of one of the specs I already brought up (such as hardware details that are determined by the fact it’s an R52).

Relevant Config Changes

I added this to my /etc/sysctl.conf : hw.acpi.reset_video=1

I added this to my /boot/loader.conf : acpiibmload=”YES”

Any other possibly relevant settings I left at default values. The defaults involve closing the lid not changing suspend state, for instance — which is what I want, since I tend to close my lid a lot (after locking the screen) when I walk away from my laptop for a few minutes, and don’t want networking interrupted every time I do so. Another default is having hardware devices turned off when the system is suspended so that less power is used, since I only really need to suspend when I move my laptop from one network to another anyway.

After rebooting my computer once, suspend and resume seem to work flawlessly. I’ll be using suspend from time to time now, and checking to see whether any unexpected problems surface, but so far it looks good. I’m just amazed at how easy that is, and how annoyingly difficult it is to find information that very clearly lays out the importance of these two configuration file options. Maybe my discovery will help someone else.