:: Home :: Computing :: Downloads :: Scooter :: Links :: Music :: Nonsense :: Mail :: |
---|
This is a quick survey about Linux related hardware features of the Lenovo ThinkPad T61. I don't try to explain the usual installation details (for instance, which partitions I have made, what they are good for and so on and so on...). Requests for additional information may be directed by eMail to the author.
The laptop comes with an 15.4" WSXGA+ TFT LCD, which allows resolutions from "1680x1050" or "1280x800" pixels.
A nice goodie is the facility to boot the notebook over USB and LAN (not needed here yet, but a nice to have feature).
The machine comes with an ACPI interface. Standby- or suspend-mode is established by software (stock Linux acpi utilities) or pressing the appropriate hardware button. The laptop suspends under X and console to RAM and Disk. It restores it's former state in reasonable speed. All relevant FN buttons send appropriate signals, when thinkpad_acpi is loaded as module or compiled into the kernel.
The machine runs with the builtin battery up to 3,0 hours.
Be sure that you have installed the latest BIOS (7LETC6WW (2.26 ) (05/11/2009)), available on Lenovo's support site, which has eliminated a lot of ACPI bugs of the older BIOS version here.
My ThinkPad T61 runs these days on Gentoo Linux amd64/13.0/desktop, because this Linux flavor avoids auto-configuration and some other here not wanted mumbo jumbo. It's running on a plain-vanilla Torvalds kernel 3.13.
This notebook is as solid as it's black case -- no fancy stuff, only boring, functional hardware.
The system comes with an Intel Core2Duo (Penryn) 2.4 GHz processor.
Output from "cat /proc/cpuinfo":
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz stepping : 6 cpu MHz : 800.000 cache size : 3072 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida tpr_shadow vnmi flexpriority bogomips : 4787.56 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz stepping : 6 cpu MHz : 800.000 cache size : 3072 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida tpr_shadow vnmi flexpriority bogomips : 4787.94 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
The processor works without additional daemons nicely with the CPU-frequency governors of Linux-3.0.
Most times I use the ondemand or the conservative governor.
I bought the machine with 4096 MByte (2 x2048 MByte) RAM (SODIMM Synchronous 667 MHz, 64 bits) in the two available slots.
HITACHI HTS72201
Output from "lshw --class disk":
*-disk description: ATA Disk product: ST9100828A vendor: Seagate physical id: 0 bus info: scsi@0:0.0.0 logical name: /dev/sda version: 3.AL serial: 5LZ46LMK size: 93GiB (100GB) capabilities: partitioned partitioned:dos configuration: ansiversion=5 signature=27ee27ed
Output from "fdisk -l /dev/sda:"
Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x0d6420c9 Device Boot Start End Blocks Id System /dev/sda1 1 1306 10490413+ 83 Linux /dev/sda2 1307 1960 5253255 82 Linux swap / Solaris /dev/sda3 1961 19457 140544652+ 8e Linux LVM
MATSHITA DVD-RAM UJ-862
Output from "lshw --class disk":
*-cdrom description: DVD-RAM writer product: DVD-RAM UJ-862 vendor: MATSHITA physical id: 0.0.0 bus info: scsi@3:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: RB01 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc
The hard disk is connected to the 82801HBM/HEM (ICH8M/ICH8M-E) controller in SATA AHCI mode, the DVD-RAM to the same controller in IDE mode.
The Ricoh R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter controller runs with driver "sdhci_pci.ko" without problems.
Output from "lshw --class system":
*-system:0 description: SD Host controller product: R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter vendor: Ricoh Co Ltd physical id: 0.2 bus info: pci@0000:15:00.2 version: 21 width: 32 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: driver=sdhci-pci latency=64 module=sdhci_pci
The system comes with an Intel X1300 video adapter, which uses shared system RAM.
Output from "lshw --class video":
*-display:0 UNCLAIMED description: VGA compatible controller product: Mobile GM965/GL960 Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 0c width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: latency=0 resources: irq:16 memory:f8100000-f81fffff memory:e0000000-efffffff ioport:1800(size=8) *-display:1 UNCLAIMED description: Display controller product: Mobile GM965/GL960 Integrated Graphics Controller vendor: Intel Corporation physical id: 2.1 bus info: pci@0000:00:02.1 version: 0c width: 64 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: latency=0 resources: memory:f8200000-f82fffff
This chip performs well with linux Kernel mode settings (KMS) on the linux console and with the X Window System display server. It displays a resolution from 1680x1050 pixels - or 210 columns and 65 lines on the text console resp. 444x277 millimeters with the X Window display server. It's no problem to switch from the text console to the X Window system display server and back.
To enable KMS, you need these options in your kernel configuration:
CONFIG_DRM_I915=y CONFIG_DRM_I915_KMS=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y
Deactivate all framebuffer drivers!
The free xf86-video-intel driver from xorg-x11handles DRM/DRI out of the box. Some hints form my xorg.conf:
Section "Monitor" Identifier "Generic DVI" VendorName "Lenovo" ModelName "Liquid Crystal Display" Option "DPMS" EndSection Section "Monitor" Identifier "Generic VGA" Option "Enable" "false" Option "Ignore" "true" EndSection Section "Monitor" Identifier "Generic TMDS-1" Option "Enable" "false" Option "Ignore" "true" EndSection Section "Device" Identifier "Generic Videocard" VendorName "Intel" BoardName "Integrated Graphics Device" Driver "intel" Option "LVDS" "Generic DVI" Option "VGA" "Generic VGA" Option "TMDS-1" "Generic DVI SDVO" Option "AccelMethod" "UXA" Option "Tiling" "false" EndSection
The xorg.conf doesn't needs Display SubSections anymore, as the resolution for the X Window System display server is with activated KMS configured by the linux kernel.
CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
To get this device working, you'll need the modules pcmcia_core and yenta_socket.
Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
The sound comes quite clear, but with all common disadvantages of sound on laptops.
The module snd_hda.ko needs the following lines in /etc/modprobe.conf:
alias char-major-116 snd alias char-major-14 soundcore alias snd-card-0 snd-hda-intel alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss alias /dev/mixer snd-mixer-oss alias /dev/dsp snd-pcm-oss alias /dev/midi snd-seq-oss options snd cards_limit=1
BTW: The soundchip needs the analog codec, config option CONFIG_SND_HDA_CODEC_ANALOG=y.
FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
The device seems to run with the module ohci1394.ko, but I haven't tested it yet -- no firewire devices all around.
The notebook's got a touchpad with 2 and a trackpoint with 3 buttons. The whole stuff is recognized as a ExplorerPS/2 mouse and works in X and on console with gpm started like this:
# /usr/sbin/gpm -m /dev/input/mice -t exps2 -r 15 -Rraw
The X mouse listens to /dev/gpmdata. Here are some lines from my xorg.conf:
Section "InputDevice" Identifier "Touchpad" Driver "mouse" Option "Protocol" "MouseSystems" Option "Device" "/dev/gpmdata" Option "Buttons" "5" Option "YAxisMapping" "4 5" Option "XAxisMapping" "6 7" Option "ZAxisMapping" "4 5" EndSection
The touchpad/trackpoint combo listens on the same PS/2 port as the buttons, so it doesn't need additional configuration.
The keyboard comes quite unspectacular as a generic model with 104 keys. The relevant FN-keys work surprisingly well, wenn the module thinkpad_acpi.ko is loaded with options thinkpad_acpi experimental=1. You may define your own key bindings with a properly configured acpid.
USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller
The USB controller needs the kernel modules usbcore, uhci, ehci, kernel's storage subsystem usb-storage and SCSI hard disk support and supports USB 2.0.
The output of /proc/bus/usb/devices:
T: Bus=07 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 300 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.2 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=06 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 3.0 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=06 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=17ef ProdID=1003 Rev= 1.00 S: Manufacturer=Lenovo S: Product=Integrated Smart Card Reader C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=0b(scard) Sub=00 Prot=00 Driver=(none) E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=24ms T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 3.0 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 3.0 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1a.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 3.0 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1a.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0483 ProdID=2016 Rev= 0.01 S: Manufacturer=STMicroelectronics S: Product=Biometric Coprocessor C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 4 Ivl=20ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer=Linux 3.0 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1d.7 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 4 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer=Linux 3.0 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1a.7 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)
The on board chip uses the kernel module e1000e.ko and works like a charm.
Network controller: Intel Corporation PRO/Wireless 4965 AGN Network Connection (rev 61)
The WLAN runs the kernel module iwlagn.ko, which depends on
as options.
The card needs Intel firmware, which is free available, but doesn't come with the kernel sources. You'll need to download the firmware package iwl4965-ucode on the Intel-Wireless download site.
The modem needs a propietary driver and is thus not tested here.
STMicroelectronics Biometric Coprocessor
The fingerprint reader needs the kernel module uinput.ko and the software package thinkfinger. The device reads fingerprints in a reasonable way and works with an added line in /etc/pam.d/system-auth as alternative authentication method for users, which have deposited their fingerprints.
A nice HOWTO to get this device up and running is on ThinkWiki.
Output from "lspci":
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c) 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) 00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03) 00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03) 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3) 00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03) 03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN Network Connection (rev 61) 15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba) 15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04) 15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21) 15:00.3 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev ff) 15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 11) 15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)
The Pnp devices are handled by ACPI.
Output from dmesg
pnp: PnP ACPI init ACPI: bus type pnp registered pnp: PnP ACPI: found 10 devices
All hardware works well with a recent Linux kernel and my favorite distribution. The machine suspends to RAM and disk, from X or console -- and awakes from both suspend states again.
This document has nothing to do with Lenovo, they don't even know it exists. There is no guarantee that the information on this page is accurate, please don't hold me responsible if your experience is different from the information here. If you have found any glaring typos or outdated info in this page, please send an eMail to the author.
The basic of this report was generated by lanoche
v0.6, which is available at TuxMobile - Software.
Zurück zur Main-Site |