New laptop (an IBM R51)

I’m writing this on my new IBM ThinkPad R51, which arrived about half a week before they said it would, and only about 10 days after I ordered it. I thought that was pretty impressive service for a model so new that they didn’t have any of them in the country yet when I ordered it. Anyways, some dirt on the machine… It’s an 1829-EBM, which is distracting to anyone who has two young children — EBM is short for “Expressed Breast Milk” to parents of young children. It’s got a 1.7Ghz Pentium M (Centrino), a gig of RAM, and a 60 GB hard disk. There’s 802.11a, 802.11b, and 802.11g, all done with an “IBM miniPCI card, which reports itself as a “Atheros Communications, Inc. AR5212 802.11abg NIC” in the lspci output below:

    challenger:/home/mikal# lspci
    0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03)
    0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03)
    0000:00:1d.0 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #1 (rev 01)
    0000:00:1d.1 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #2 (rev 01)
    0000:00:1d.2 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #3 (rev 01)
    0000:00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller (rev 01)
    0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 81)
    0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 01)
    0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 01)
    0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBM (ICH4) SMBus Controller (rev 01)
    0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 01)
    0000:00:1f.6 Modem: Intel Corp. 82801DB (ICH4) AC'97 Modem Controller (rev 01)
    0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000 M9] (rev 02)
    0000:02:00.0 CardBus bridge: Texas Instruments PCI4520 PC card Cardbus Controller (rev 01)
    0000:02:00.2 FireWire (IEEE 1394): Texas Instruments: Unknown device 802a (rev 01)
    0000:02:01.0 Ethernet controller: Intel Corp. 82540EP Gigabit Ethernet Controller (Mobile) (rev 03)
    0000:02:02.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
    challenger:/home/mikal#
    

Let’s work through the features of the laptop, and I’ll tell you if they work yet…

Video

The machine has an amazing 1400 x 1050 LCD display. I’ve been used to the micro-laptops that I’ve been using for the last few years, and this is the first laptop I’ve ever owned which can do more than 1024 x 768. It’s taking a little time to get used to my eye having to move horizontally to see an entire line of text. The display is amazingly crisp, and X worked almost instantly (Debian Unstable) without any fiddling. I’m using version 4.3.0.dfsg.1-1 of XFree86, where I suspect that the dfsg is a Debianism. I’ve put the XF86Config-4 file online for other people’s reference. I used the ATI driver.

Xine produces very nice output in fullscreen mode — it’s a lot nicer than my Grundig TV.

Audio

I use 2.6, so I’ve got ALSA configured on the machine. This machine uses the same sound driver as the Dell D400 I was using before this machine. Select “Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111” from the ALSA PCI drivers menu in the kernel config.

Sound just works. Remember that ALSA defaults to all the volume levels being turned down at first, so you’ll need to turn the sound up for noise to come out of the machine. The best feature of the Intel AC97 sound chipset is that finally I can control the headphone volume separately from the speaker volume. That’s very handy, as I hardly ever use the speaker.

Unfortunately, the ThinkPad displays the same behaviour as my old X21 — plugging in the headphones disabled the speakers, and the headphone volume control seems to be ignored.

There is no line out jack, but I never use that anyway.

Networking

The wired network card is a an Intel Pro 1000 gigabit card. Use the e1000 driver, and all is good. I haven’t got the wireless network card working yet, as I’ve only owned the machine for a day… I’ll let you know when I have more to say on that point.

Update: There is a driver for the wireless card called “madwifi”… It just works.

Modem

I don’t use it, so I don’t know.

Expansion

2 USB 2.0, Firewire, 2 PCMICA slots, S Video, parallel port (that one surprised me), external VGA, and docking station hole.

DVD / CD / CD-ROM

I’ve only used this to install the system, so I don’t know if it works well yet. I’ll get back to you on that one.

Other stuff

Well, I can’t think of anything else about the machine to mention, apart from the fact that the machine ships with a nipple (which I’ve always prefered, and is the normal ThinkPad thing to do), but it’s bigger and rubbery. It’s actually a lot nicer to use. It also comes with a touchpad like the Apple and Dell machines. I hate these, but I know other people like them, so it’s worth mentioning. I must also say that the keyboard is very nice, much better than the Toshiba, Acer, and Dell keyboards I’ve used recently. It’s also very close to full size because there is a lot of space for a keyboard for once. Very nice to type on.

The battery is huge (it protrudes out the back of the machine), and the machine is a little heavy at 3.147 kilos. It doesn’t fit in my old laptop bag, but IBM gave me a new one in their wisdom. I don’t know about my backpack yet.

Update: ACPI S3 hybernation (suspend to RAM) now works for me, even in X Windows! (23 July 2004)

So, after a very satisfying session with Len Brown from Intel at OLS, S3 suspension of the machine now works. What did I need to do to make it happen? Well, I used the latest 2.6 kernel bitkeeper snapshot (which will become 2.6.9, which isn’t out yet), and applied this patch, which will make it into the mainline kernel sometime soon, and then just compiled.

Everything just worked then if I do a:

    echo 3 > /proc/acpi/sleep
    

…and wakeup works by default. All you need then is a script in /etc/acpi/ to do the echoing when you shut the lid. I used these dodgy scripts: