suspend/resume issues on ThinkPad T41 under 5.2.1-RELEASE

Dan Langille dan at langille.org
Mon Jun 14 01:31:46 GMT 2004


On 13 Jun 2004 at 17:46, Kevin Oberman wrote:

> > From: "Dan Langille" <dan at langille.org>
> > Date: Sun, 13 Jun 2004 19:21:00 -0400
> > Sender: owner-freebsd-mobile at freebsd.org
> > 
> > I've got 5.2.1 running on my ThinkPad T41.  I have no settings in 
> > /etc/sysctl.conf.
> > 
> > /boot/loader.conf contains:
> > hw.pci.allow_unsupported_io_range="1"
> > hw.cbb.start_memory="0xc0210000"
> > 
> > The first is to get em0 running. The second is to avoid memory 
> > conflicts.
> > 
> > I'm trying ACPI.
> > 
> > $ sysctl hw.acpi.supported_sleep_state sysctl hw.acpi.s4bios
> > hw.acpi.supported_sleep_state: S3 S4 S5
> > hw.acpi.s4bios: 0
> > 
> > S4OS and and S5 both suspend, but I cannot resume (ie. opening the 
> > laptop doesn't power up the box, and I've tried various key pressing 
> > combinations, but nothing happens unless I press the power button).
> > 
> > "acpiconf -s 3" does suspend the box.  When resuming, I get this in 
> > /var/log/messages:
> > 
> > Jun 13 18:48:34 laptop sudo:      dan : TTY=ttyp1 ; PWD=/usr/home/dan 
> > ; USER=root ; COMMAND=/usr/sbin/acpiconf -s S3
> > Jun 13 18:48:43 laptop kernel: pcib0: slot 29 INTA is routed to irq 
> > 11
> > Jun 13 18:48:43 laptop kernel: pcib0: slot 29 INTB is routed to irq 
> > 11
> > Jun 13 18:48:43 laptop kernel: pcib0: slot 29 INTC is routed to irq 
> > 11
> > Jun 13 18:48:43 laptop kernel: pcib0: slot 29 INTD is routed to irq 
> > 11
> > Jun 13 18:48:44 laptop kernel: pcib0: slot 31 INTB is routed to irq 
> > 11
> > Jun 13 18:48:44 laptop last message repeated 2 times
> > Jun 13 18:48:44 laptop kernel: pcib1: slot 0 INTA is routed to irq 11
> > Jun 13 18:48:44 laptop kernel: usb0: cannot start
> > Jun 13 18:48:44 laptop kernel: usb1: cannot start
> > Jun 13 18:48:44 laptop kernel: usb2: cannot start
> > Jun 13 18:48:44 laptop kernel: pcib2: slot 0 INTA is routed to irq 11
> > Jun 13 18:48:44 laptop kernel: pcib2: slot 0 INTB is routed to irq 11
> > Jun 13 18:48:44 laptop kernel: pcib2: slot 1 INTA is routed to irq 11
> > Jun 13 18:48:44 laptop kernel: pcib2: slot 2 INTA is routed to irq 11
> > Jun 13 18:48:44 laptop kernel: wakeup from sleeping state (slept 
> > 00:00:08)
> > Jun 13 18:48:44 laptop kernel: uhub0: illegal enable change, port 1
> > Jun 13 18:48:44 laptop kernel: uhub1: illegal enable change, port 1
> > Jun 13 18:48:44 laptop kernel: uhub2: illegal enable change, port 1
> > Jun 13 18:48:45 laptop kernel: uhub0: port 1 reset failed
> > Jun 13 18:48:45 laptop kernel: uhub0: illegal enable change, port 2
> > Jun 13 18:48:45 laptop kernel: uhub1: port 1 reset failed
> > Jun 13 18:48:45 laptop kernel: uhub1: illegal enable change, port 2
> > Jun 13 18:48:45 laptop kernel: uhub2: port 1 reset failed
> > Jun 13 18:48:45 laptop kernel: uhub2: illegal enable change, port 2
> > Jun 13 18:48:46 laptop kernel: uhub0: port 2 reset failed
> > Jun 13 18:48:46 laptop kernel: uhub0: illegal enable change, port 1
> > repeat....
> > 
> > Plus a blinking cursor top left corner.
> > 
> > Any ideas?  http://www.freebsd.org/cgi/query-pr.cgi?pr=59747 
> > indicates that this is a known problem.  Do I have options other than 
> > removing USB support from the kernel?
> > 
> > Ideas?  Comments?
> 
> First, S5 is a very deep sleep...power off. It only resumes by powering
> up and booting.

Heh, sounds like it's a "shutdown -h now", which is more or less what 
I saw on the screen the last time I tried.  

> S4 is suspend to disk. It requires that you build a hibernation
> partition on the hard drive. Without it, S4 will not work (but you
> noticed that.). This is indicated by the value of hw.acpi.s4bios. 

The lack of a hibernation partition is indicated the value of 
hw.acpi.s4bios?  That's interesting.  I will try a hibernation 
partition. From the sounds of it, it sounds like the best suspend 
strategy.  I now have a clear milestone which will indicate I'm good 
to go with hibernation.

> To get S3 (suspend to RAM) to work, I'd suggest building a kernel
> without SMP or APIC. The messages you are reporting are indicative of
> problems figuring out the interrupt routing for multiple processors,
> but you have only a single CPU. Turning off APIC (and SMP it it's
> enabled) should return to the simpler interrupt delivery.

Thank you for that.  This explains a few things...  I had removed the 
above two devices from my kernel.  Upon rechecking, I see I did a 
make buildkernel KENCONF=LAPTOP.... and KENCONF != KERNCONF....

After compiling the correct kernel (the above worked on GENERIC by 
default), I no longer have the uhub issues.

The existing issues after a resume are:

- blinking cursor at top left (I'll try killing moused in 
/etc/suspend and starting it again in /etc/resume)

- em0 is dead upon resume (I'll try killing dhclient, and starting it 
again, as well as setting).  I keep getting 

laptop kernel: em0: The EEPROM Checksum Is Not Valid
laptop kernel: em0: Unable to initialize the hardware

At boot time, this problem is avoided with the following entry in 
/boot/loader.conf

hw.pci.allow_unsupported_io_range="1"

Any ideas how to set that upon resume?
-- 
Dan Langille : http://www.langille.org/
BSDCan - http://www.bsdcan.org/



More information about the freebsd-mobile mailing list