HARDWARE Get Suspend To RAM working on a Dell Inspiron 8600c laptop

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] HowTo: Get STR working on a Dell Inspiron 8600c laptop

Today I finally managed to get Suspend To RAM (aka STR aka S3 aka 'Standby' in Windows) working on my Dell Inspiron 8600c laptop. It has an nvidia-based graphics card but it should also work for the ATI graphics. I don't know if my method works on any other laptops but the author of the patch reported that it works on a Dell D600.

[edit] Installation

You need to apply a patch to the Linux kernel and recompile your kernel. You may also need some different settings if you're using an ATI-based graphic card.

[edit] Getting the patch

You have to download the patch at http://www.loria.fr/~thome/d600/ that makes everything work again after waking up. This is the only patch that is needed. You may also include the ACPI kernel drivers in your configuration.

[edit] Applying the patch

Apply the patch as following (I saved mine to /usr/src/patches/)

patch -p1 < /usr/src/patches/s3_late_bios_new.patch

If you get a HUNK failed for a file inside /usr/src/linux/Documentation} you can safely ignore that.

[edit] Compiling the kernel

make && make modules_install
mount /boot
cp arch/i386/boot/bzImage /boot/kernel-2.6.xx-gentoo-xx-str

[edit] Configuring your bootloader

nano -w /boot/grub/grub.conf

Add acpi_sleep=s3_late_bios to your kernel line. And now umount your boot partiton

umount /boot


[edit] Script for suspending

Now your system is ready, you may need to unload some modules before supend. You can use my little script:

File: Suspend.sh
#!/bin/bash
if [ ! -e /etc/suspend.conf ]
then
    echo "/etc/suspend.conf not found! Please create!";
    exit 1
fi

if [ `whoami` != "root" ]
then
    echo "You need to be root!";
    exit 1
fi

source /etc/suspend.conf

for i in ${UNLOAD_MODULES}
do
    if [ `/sbin/lsmod | /bin/gawk '{print $1}' | /bin/grep $i` ]
    then
        /sbin/rmmod $i
    fi
done

/bin/echo "mem" > /sys/power/state

for i in ${UNLOAD_MODULES}
do
    /sbin/modprobe $i
done

This is my /etc/suspend.conf:

UNLOAD_MODULES="ehci_hcd uhci_hcd"
Personal tools