GenToo Linux on a Lenovo ThinkPad Z60t

Kathryn Andersen 14th March 2006 (updated 10th June 2006)

Hardware

Graphics

00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)

00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)

00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)

Audio

00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)

USB

00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)

00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)

00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)

00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)

00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)

Disk

00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)

Ethernet

02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)

Wireless

13:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

Card reader

14:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)

FireWire

14:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)

The rest

00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)

00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)

00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03)

00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 03)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)

00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)

00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)

14:00.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)

Repartitioning the Hard Drive

At the suggestion of http://www.thinkwiki.org/wiki/Pre-Installation_steps I booted up into MS-Windows and burnt a set of Rescue CDs, just in case. However, I had no intention of selling my soul to Microsoft, so all the MS-Windows stuff was slated for erasure. Instead of using the GenToo install CD to do the partitioning, I used System Rescue CD http://www.sysresccd.org/Main_Page because with it I can use QTParted. It was also a bit of a test to see if the framebuffer would work, since System Rescue CD is GenToo based.

There were parts of the disk I couldn't seem to erase, even though I had changed the BIOS settings to enable recovery of the Hidden Protected Area (http://www.thinkwiki.org/wiki/Hidden_Protected_Area) I only seemed to be able to delete the Rescue and Recovery area. Oh well, it's only a few meg.

Because of the oddness of the non-erasure, I partitioned the disk as follows:

/dev/sda1 ext2 /boot /dev/sda2 swap (extended partition) /dev/sda5 ext3 / /dev/sda6 ext3 /files (I use this for common and personal files)

GenToo Installation

I used the 2005.1 Universal Install x86 CD which I had downloaded and burned. Followed the Handbook http://www.gentoo.org/doc/en/handbook/2005.1/handbook-x86.xml

One trick I've discovered is that, when one has chroot-ed into the new GenToo Base System, of course, one can't use vim (my favourite editor) any more, because it isn't in the base system. One is expected to use nano. However, one can still use vim, if one switches to another console (Alt F2, Alt F3 etc); the install CD has vim on it, and you can access the base system file system by just prepending "/mnt/gentoo" to the filename.

The Safe CFLAGs page http://gentoo-wiki.com/Safe_Cflags#Pentium-M_.2F_Centrino_.28Intel.29 gives good settings for your CFLAGS variable in /etc/make.conf

Note: when installing from CD, never ever install more than you absolutely need before you upgrade, because the install CDs are always out of date. However I still prefer installing from CD because you get a working system more quickly, even though you have to recompile stuff afterwards.

Kernel Settings

The kernel version on the CD was 2.6.12-r6. I was using gentoo-sources kernel, with manual "make menuconfig" rather than genkernel.

I messed up the kernel settings on my first attempt, got a kernel panic on reboot. (!) Thanks to Geoffrey Buchan's page (http://fillmore.homelinux.net/Z60/Z60.html) where he gave his kernel configuration, I was able to puzzle out that there was a CONFIG_DRM_I915 setting (for the graphics card) which should be on, even though the description in the Device Driver section didn't mention anything about the 915 card... (sigh) And added various other things, like nvram and mttr.

And thanks to Hubert Figuière's page (http://www.figuiere.net/linux/tpz60t/) I was able to find out that the Broadcom Ethernet card was supposed to use the Tigris (tg3) driver, even though there wasn't a word about "Tigris" anywhere.

config-2.6.12-gentoo-r6.txt

Another thing that I did was take a sort of hybrid approach as far as the kernel modules were concerned. I did do a manual kernel config, but I also emerged "coldplug" so that it would autodetect the modules which needed to be loaded.

emerge coldplug rc-update add coldplug boot

A note about Pentium M: it can be confusing when there are settings which don't refer to Pentium M specifically, but one should be using; one is that a Pentium M is based on the Pentium III, so if something refers to Pentium III and not Pentium M, then it's probably okay to use Pentium III. Another is that the Centrino uses the Pentium M CPU, but I don't know if it's always okay to use them interchangeably, since the Centrino has extra stuff.

Then after updating and upgrading gcc (see below), I compiled a more recent kernel (2.6.15-r1). See http://www.gentoo.org/doc/en/kernel-upgrade.xml

While they say "don't use oldmenuconfig for major revisions" I have found that it does save time to copy over your old .config and then run the usual "make menuconfig" on it, because it will preserve those settings which can still be preserved.

config-2.6.15-gentoo-r1.txt

gcc upgrade

The 2005.1 CD uses gcc 3.3 while the current version is 3.4; since you get specific PentiumM optimisation with gcc 3.4 it is a good idea to upgrade. Look here for a safe method: http://www.gentoo.org/doc/en/gcc-upgrading.xml

Framebuffer 1280x768

I used the vesafb-tng version of the VESA framebuffer settings in the kernel settings, and it worked fine. The advantage of this is that one doesn't have to calculate obscure modes, you can just give the resolution you want in the boot parameters.

What I did was that I left the setting in the kernel as 640x480@60 to have a fallback that would work, and then in my grub.conf file I had two entries, one for the fallback option, and one for the high-resolution option, with this extra parameter

video=vesafb:mttr,1280x768-32@75

I added in GPM (mouse on console) support by following the instructions: http://www.gentoo.org/doc/en/gpm.xml

After I got X working (see below) I played with splashutils and qingy.

I installed the splashutils, not to have bootsplash, but just to have pretty framebuffer console backgrounds. If one chooses not to set up bootsplash, one doesn't have to worry about initrd or boot parameters. Console backgrounds just involves running the "splash" utility on startup

/etc/init.d/splash start rc-update add splash default

And editing the /etc/conf.d/splash file to set one's preferred theme.

The downside for the z60t is that the splash console backgrounds don't work if they don't have the exact same resolution, and none of the predefined splash themes have a 1280x768 config. However, using the "splash_resize" utility, and the Imagemagick convert command, I was able write a script (add wide.perl) to convert some. The "emergence" theme worked very well, but others not so well.

I installed qingy to have a pretty console login replacement instead of getty. That worked without having to make my own themes, though some of the themes are stretched out and look odd. I then tweaked the /etc/X11/Sessions sessions to make them work better for me, so that I could choose between window managers rather than just sticking to one. (When I have an external mouse, I prefer Fvwm, but when I'm travelling and am using the laptop in my lap, I prefer the keyboard-oriented Ion3).

ACPI Power Management

I followed the instructions here: http://www.gentoo.org/doc/en/power-management-guide.xml

I needed to edit the /etc/acpi/default.sh script so that it would stop saying that "ac_adapter" and "battery" were not defined. This is because the "default" script always runs because it matches everything. So, since it matches everything, I found it simpler not to add new "event" files to the events, but handle everything in the default event. I used the script they gave, but called it from within /etc/acpi/default.sh instead.

I couldn't get CPU frequency stuff to work.

Suspend

I compiled the default software-suspend in the kernel (swsusp).

I couldn't get suspend-to-ram to come back properly. Following the instructions at http://www.thinkwiki.org/wiki/Problem_with_display_remaining_black_after_resume didn't work for me, and the second section where it said "don't use framebuffer", well, I want my framebuffer!

Besides, suspend-to-disk worked fine. And it works with X too.

However, for some unknown reason, suspending to disk while displaying X while running from batteries took an extremely long time (more than 7 minutes). Switching off laptop_mode only decreased the time a little (5-6 minutes). However, when it was connected to AC, or when one switched to a console while on battery, it only took 20-30 seconds to suspend to disk.

In all cases it took only about 30 seconds to come back from suspend-to-disk.

For some reason, the ssh daemon does not restart when coming back from hibernation.

xorg-x11

Initially I got X working with the vesa driver, but that only gave me 1024x768 stretched out over the whole screen.

Some instructions from http://www.gentoo.org/doc/en/xorg-config.xml were helpful.

In the end I migrated to Modular Xorg http://www.gentoo.org/proj/en/desktop/x/x11/modular-x-howto.xml because it had better support for the i915 video card. And it does; doing Xorg -configure had it working with the i810 driver (which is what one needs) rather than the vesa driver which it was doing before.

One thing which should have been obvious is that one needs to do a revdep-rebuild after changing the X over. And because portage needed to be updated, one also needed to update eix (if one uses eix).

The other consideration is that because this is now modular Xorg there are X programs which will need to be emerged separately, such as xdpyinfo! Also, some packages will have to have their keywords changed in /etc/portage/package.keywords in order to get the versions which work with modular Xorg. And some packages don't yet do so.

There was a problem with unison, but the solution given in GenToo BugZilla fixed it; that is:

emerge font-schumacher-misc

xorg.conf

Note: don't forget that if one adds more than the default fonts that one needs to edit not only xorg.conf to add the font paths but also /etc/fonts/local.conf to add the font paths to there as well.

ALSA Sound Configuration

I needed to configure the snd_hda_intel module in the kernel. Also needed to add the ALSA utilities

emerge alsa-utils

And after that, edit /etc/modules.d/alsa to add in the snd-hda-intel module (or use alsaconf which will do it for you). And add the alsasound driver to the daemons run at boot

rc-update add alsasound boot

And use alsamixer if need be.

It all seems to work.

USB

USB worked as expected; my USB mouse was detected.

Not Yet Tested

And probably not likely to be tested any time soon...

  • Wireless
  • PCMCIA slot
  • Bluetooth
  • Firewire port
  • SD/MMC Card Reader
  • Modem

Files

Helpful Links