Saturday, September 22, 2007

Getting Networking on Fedora 7 Working after Suspend/Resume

After recently updating my Fedora 7 installation, I was pleasantly surprised to find that suspend/resume now works on my ThinkPad T60. However, there was one problem: after resuming out of suspend, NetworkManager wouldn't see any of my network devices and thus couldn't connect to any network.

To fix this, I hacked my system to stop NetworkManager upon suspend and then start NetworkManger on resume. You can do this by editing the file

/usr/lib/hal/scripts/linux/hal-system-power-suspend-linux
(/usr/lib64/...
on x86_64 machines)

Edit the section that reads:


#RedHat/Fedora and SUSE support pm-utils
elif [ -f "/etc/redhat-release" ] || [ -f "/etc/fedora-release" ] \
|| [ -f "/etc/SuSE-release" ] ; then
# TODO: fix pm-suspend to take a --wakeup-alarm argument
if [ $seconds_to_sleep != "0" ] ; then
alarm_not_supported
fi
# TODO: fixup pm-suspend to define erroc code (see alarm above) and throw
# the appropriate exception
if [ -x "/usr/sbin/pm-suspend" ] ; then
#stop network manager
service NetworkManager stop
/usr/sbin/pm-suspend $QUIRKS
RET=$?
else
# TODO: add support
unsupported
fi

by adding the red commands. This stops NetworkManager at suspend.

Then, at the bottom of the file, edit the text:


#Refresh devices as a resume can do funny things
for type in button battery ac_adapter
do
devices=`hal-find-by-capability --capability $type`
for device in $devices
do
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
$device org.freedesktop.Hal.Device.Rescan
done
done

#start NetworkManager
service NetworkManager start

exit $RET

by adding the text in red.

Now, when you suspend and resume Fedora 7, networking should work!

1 comment:

Anonymous said...

True, that is not guild wars 2 keya lot, but it is easy to collect about 1000 feathers or so as each chicken drops about 5. Also, not all players pick up the Diablo III goldfeathers so you can grab those too.