Hi all,
I'm trying to get my laptop to suspend to ram with ACPI. After constantly crashing my system for a while, I managed to put together a script that puts it to sleep and wakes it up, with X working fine. However, when I try to reload the ipw2200 module, the computer crashes. Not being able to use my wireless card after a suspend to ram, somehow dulls my sense of achievement. I am running Debian Sarge and kernel 2.6.8-2-386. My PC is a Fujitsu Siemens Amilo Pro V2000 with a Pentium-M processor and an Intel PRO/Wireless 2200BG network card.
I've tried playing around with the boot parameters a bit (adding "acpi_sleep=s3" or "acpi_sleep=s3_bios" to the kernel line in GRUB), but to no avail. Has anyone had similar problems? Any ideas would be greatly appreciated!
Kind regards,
--Simen
Here is the ACPI script I run:
Code:
#!/bin/sh
## We should stop acpid from reading multiple events:
/etc/init.d/acpid stop
## Make sure system clock doesn't get confused:
/sbin/hwclock --systohc
## Bring down interface:
ifdown eth1
## Unload some naughty modules:
rmmod ipw2200 fsam7400 ieee80211 ieee80211_crypt_wep ieee80211_crypt ehci_hcd uhci_hcd
## This seems to be common practice:
sync
## Get out of X
/usr/bin/chvt 1
/usr/bin/chvt 12
## Remember some graphic stuff:
VBESTATE='vbetemp'
vbetool vbestate save >$VBESTATE
## Turn off the backlight:
vbetool dpms off
## Go to sleep:
echo -n "mem" > /sys/power/state
### Waking up:
## Post the video card
vbetool post
## Restore some video settings:
vbetool vbestate restore < $VBESTATE
## Reload modules:
echo "Reloading modules"
modprobe uhci_hcd
modprobe ehci_hcd
modprobe ieee80211_crypt
modprobe ieee80211
modprobe fsam7400
# modprobe ipw2200 # if I uncomment this line, my computer hangs :(
## Reset the time:
hwclock --hctosys
## And make sure the backlight is on:
vbetool dpms on
## Switch consoles even more, just to be sure:
/usr/bin/chvt 1
/usr/bin/chvt 12
/usr/bin/chvt 7
When I try to load the ipw2200 module after having slept, my PC prints
some dying words, of which I can see the last bit on my screen:
Code:
[snip a really long list of modules...]
CPU: 0
EIP: 0060 [<e037f502>]
EFLAGS: 00010246 (2.6.8-2-386)
EIP is at snd_intel8x0_interrupt + 0xc8/0x1bd [snd_intelx0m]
eax:00000000 ebx:df3208bc ecx:00000004 edx:00000000
esi:000000ff edi:ffffffff ebp:df320800 esp:d38c9f64
ds:007b es:007b ss:0068
Process default.hotplug (pid:4902, threadinfo=d38c0000 task=de59c8c0)
Stack: 00000000 00000000 00000000 df529b40
[snip 20 more codes like this...]
Call trace:
[<c0107b02>] handle_IRQ_events+0x27/0x42
[<c0107b02>] do_IRQ+0x7b/0xf9
[<c0107b02>] common interrupt+0x18/0x20
Code: f7 73 18 8b 43 2c 01 f0 83 e0 1f 89 43 2c 0f b6 43 2c 89 53
<0> Kernel panic: Fatal exception in interrupt
In interrupt handler - not syncing