Sleeping
Finally, 2.6.17-rc6 is able to make this thing sleep and wake properly, phew. Ok, I seem to have a working RPM, so I'll post it, let me know if you have issues with this rpm, I've resumed a few times without issue. This is the Fedora RPM with all the patches but 2.6.17-rc6 removed. The other patches seem to kill the resume, I tried the stock 2258 and it crashed on resume with all sorts of SCSI errors and finally a panic. RPMS kernel-2.6.16-1.2258_FC6 i686 devel src
You can compile the vanilla 2.6.17-rc6, here's my .config
Then append this in your kernel line:
acpi_sleep=s3_bios hdc=noprobe
You need the hdc=noprobe to make sure the ide driver doesn't steal the cdrom, trust me, you don't want that.
With this in place, you should see your cdrom as /dev/scd0 instead of /dev/hdc
Note: You need to disable AHCI to sleep. I got the idea from this email:
Date: Tues, Jun 6 2006 1:00 pm Email: Jeff Chua > On Mon, 5 Jun 2006, Linus Torvalds wrote: > ... a SATA resume fix that is reported to fix resume on at least a > couple of machines. Thank you. This works on my IBM X60s with Centrino Duo. Pure vanilla 2.6.17-rc6, no other patches necessary. Works with ata-piix, but not ahci. Jeff.It took me a while to realize he meant disable AHCI in the bios (I hope that's what he meant). Going into the bios and setting the SATA to Compatability mode solved the suspend issue and also removed the ahci module from the picture, I'm now using the ata_piix driver.
SCSI subsystem initialized
libata version 1.20 loaded.
ata_piix 0000:00:1f.2: version 1.05
ata_piix 0000:00:1f.2: MAP [ P0 P2 IDE IDE ]
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 16 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0x18B0 irq 14
ata1: dev 0 cfg 49:0f00 82:746b 83:7f69 84:6063 85:7469 86:3c49 87:6063 88:203f
ata1: dev 0 ATA-7, max UDMA/100, 195371568 sectors: LBA48
ata1: dev 0 configured for UDMA/100
scsi0 : ata_piix
Vendor: ATA Model: HTS721010G9SA00 Rev: MCZI
Type: Direct-Access ANSI SCSI revision: 05
...
ata2: dev 0 cfg 49:0f00 82:0000 83:0000 84:0000 85:0000 86:0000 87:0000 88:0407
ata2: dev 0 ATAPI, max UDMA/33
ata2: dev 0 configured for UDMA/33
scsi1 : ata_piix
Vendor: MATSHITA Model: DVD-RAM UJ-842 Rev: RB01
Type: CD-ROM ANSI SCSI revision: 05
I've suspended a few times now, no problems, seems like that did the trick. Yay, fully sleeping T60p! DVD's play at full speed with this configuration also. Without the ata_piix driver you may see sense command errors in dmesg when trying to watch a dvd. The ide driver can't do the dma properly (since it's not really an ide).
Ethernet
There's a bug with the (motherboard|driver|bios|???) that causes the wrong checksum to be seen sometimes. You can patch against it and remove the checksum patch. I haven't seen this issue in a while though, since 2.6.17-rc3 or so it's done the right thing.Wireless
03:00.0 Network controller: Intel Corp.: Unknown device 4227 (rev 02) You can get this working with this driverYou need to get ieee80211 first, then ipw3945 and ipw3945d you make ipw3945 and specify the location of ieee80211 (and the kernel source). Then install it in updates
make IEEE80211_INC=ieee80211-1.1.13 KSRC=linux-2.6.17-rc6
mkdir -p /lib/modules/2.6.17-rc6/updates
mv ipw3945.ko /lib/modules/2.6.17-rc6/updates
Next you'll need to either use the load script or update your modprobe.conf to do the right thing
my modprobe.conf has this
alias eth1 ipw3945
install ipw3945 /sbin/modprobe ieee80211; /sbin/modprobe --ignore-install ipw3945; sleep 0.5; /sbin/ipw3945d --quiet >>/var/log/messages; sleep 2; /sbin/ipw3945d --kill; sleep 2; /sbin/ipw3945d >>/var/log/messages
remove ipw3945 /sbin/ipw3945d --kill; wait; /sbin/modprobe -r --ignore-remove ipw3945; /sbin/modprobe -r ieee80211
For some reason I have to start ipw3945d, wait 2 seconds, kill it, then start it again. This combination seems to work, without the kill and restart the device shows up but doesn't see the wireless network. You'll need the alias line so that you can do an ifup eth1 without worrying about the modprobe.
Display
The ChipId of the ATI Mobility FireGL V5200 is 71c4
01:00.0 VGA compatible controller: ATI Technologies In: Unknown device 71c4
By overriding this you can make the fglrx driver from ATI believe it has a Mobility Radeon X1600, this works fine for me and I'm able to get a projector working with the laptop, less is more it seems. I tried with this:
Section "Device"
Identifier "ATI Graphics Adapter 0"
Driver "fglrx"
ChipID 0x71c5
Option "DesktopSetup" "Clone"
Option "ForceMonitors" "lvds,tmds2"
Option "Mode2" "1280x1024,1024x768"
Option "VRefresh2" "60"
BusID "PCI:1:0:0"
EndSection
But less options produced better output, it seems without specifying anything, the VESA modes are used.
Section "Device"
Identifier "ATI Graphics Adapter 0"
Driver "fglrx"
ChipID 0x71c5
Option "DesktopSetup" "Clone"
Option "ForceMonitors" "lvds,auto"
Option "MonitorLayout" "lvds,auto"
BusID "PCI:1:0:0"
EndSection
In this mode all by 1600x1200 work. And I believe that 1600x1200 is actually working, but my projector cannot display that resolution.
I have a 1600x1200 UXGA projector on campus, so I will test that later.
Other
lspci failed on this system, really odd
[root@burnaby ~]# lspci
lspci: /usr/share/hwdata/pci.ids, line 9750: duplicate entry
line 9750 is
101a 82547EI Gigabit Ethernet Controller (Mobile)
I commented out the line, I assume lspci is case insensitve? The duplicate entry was for 101A instead of 101a.