RHEL4 on Thinkpad T60p (Sleep+Wireless)

This laptop is 100% Lenovo. It's a lot different! I did get the ATI driver working. Update, the ChipID hack is no longer needed, Release 8.25.18 adds support for the V5200.

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 driver
You 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.