Thinkpad T61
From Blue-IT.org Wiki
Contents
Introduction
After using a very old Thinkpad R31 for a very long time and having a lot of trouble using this machine with linux, I decided to renew my Thinkpad experience with a newer and faster model.
I bought this device used with a rest guaranty of 1 1/2 years (lenovo) which is pretty good.
What should I say: inserted Ubuntu 10.04, installed it and everything worked out of the box! Theres nothing more to say. This machine is awesome, the keyboard smooth as used to be for a Thinkpad, the Trackpoint my favorite and the Thinklight my friend, when just a candle is flickering around in the room ...
What i am writing here is just, when I some troubles occurred or I liked to modify something for better usage.
Machine description
- Model: Lenovo ThinkPad T61, model 6457BK3
- BIOS: ThinkPad BIOS 7LETC6WW (2.26 ), EC 7KHT24WW-1.08
- Processor: Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz, Intel 64 Technology, Enhanced Intel SpeedStep® technology1, Intel Dynamic Acceleration, Execute Disable Bit, Virtualization Technology, 800MHz system bus and 4MB shared L2 cache
- Memory: Lenovo 2 x 2GB (PC2-5300 667MHz DDR2), dual-channel capable, two 200-pin SO-DIMM sockets
- Display: 15.4" (391mm) WSXGA+ (1680x1050) color, anti-glare, 200 nits, 16:10 aspect ratio, 500:1 contrast ratio
- Graphics: NVIDIA® Quadro® NVS 140M, PCI Express® x16, 128MB memory, TurboCache, DVI pass-through support to optional Advanced Mini Dock or Advanced Dock
- PC Card: One slot (Type I, Type II), CardBus 32-bit
- Multicard Reader 4-in-1 reader: MultiMediaCard, Memory Stick® PROTM, Secure Digital, xD-Picture CardTM
- Ports: Three USB 2.0, DB-15 (external VGA monitor), RJ-11 (modem), RJ-45 (ethernet), IEEE 1394 FireWire 400 (4-pin connector; 1394a-2000 standard)
- Wireless: 11a/b/g wireless4, ThinkPad 11a/b/g Mini PCIe Adapter
- Bluetooth: Bluetooth 2.0 wireless, USB 2.0 interface via ICH8M, LED indicator
- Ethernet: Gigabit ethernet, Intel 82566MM Nineveh (PHY), PCIe x1 (GLCI), PXE
- Audio: High Definition (HD) Audio, AD1984JCP codec / stereo speakers, 1 watt / volume up, down, mute buttons / internal microphone, microphone input jack, headphone jack
- EIDE DVD±RW DVD burner, Ultrabay Slim Burner (41N5643), dual-layer, removable from Ultrabay Slim
- HDD: Hitachi SATA HTE723232L9A360 320 GB / 7200 UPM
- Akku: Noname 12Cell (!) 95 W
Operation System
- Ubuntu 10.04.1 LTS
- Kernel: Linux 2.6.32-24-generic #43-Ubuntu SMP x86_64 GNU/Linux
Sound
My soundcard is an intel hda:
> lspci -v 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) Subsystem: Lenovo Device 20ac Kernel driver in use: HDA Intel Kernel modules: snd-hda-intel
I modified the configuration of the '#snd-hda-intel module to be loaded correctly via alsa configuration file:
> sudo vim /etc/modprobe.d/alsa-base.conf
[...] options snd-intel8x0m index=-2 model=thinkpad [...]
The system uses pulseaudio. I get some strange errors in dmesg:
[...] Sep 26 12:16:41 server pulseaudio[1430]: ratelimit.c: 121 events suppressed Sep 26 13:04:03 server pulseaudio[1430]: ratelimit.c: 120 events suppressed Sep 26 13:07:28 server pulseaudio[1430]: ratelimit.c: 116 events suppressed [...]
The system runs without any problems, so to get rid of this known bug I did the following:
> sudo vim /etc/pulse/daemon.conf
[...] ; log-target = auto ; log-level = notice log-level errorr [...]
Then close all audio applikations (!) and restart pulseaudio als normal user(!):
pulseaudio -k
Wlan / bluetooth switch - prevent bluetooth from starting
I don't use bluetooth. But if i switch the hardware button in front of my thinkpad for both radio devices off and on, both devices come up. the following procedure disables bluetooth, but keeps the device running. So it is easy to switch it on via the gnome bluetooth icon. But be warned: this also disables toggling bluetooth via FN-F5!
The bluethooth device is a Broadcom one:
> udevadm monitor --udev UDEV [1285453647.905188] remove /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/bluetooth/hci0 (bluetooth)
> udevadm info --attribute-walk --path=/sys/bus/usb/devices/3-1/3-1\:1.0 looking at device '/bus/usb/devices/3-1/3-1:1.0': KERNEL=="3-1:1.0" SUBSYSTEM=="usb" DRIVER=="btusb" ATTR{bInterfaceNumber}=="00" ATTR{bAlternateSetting}==" 0" ATTR{bNumEndpoints}=="03" ATTR{bInterfaceClass}=="e0" ATTR{bInterfaceSubClass}=="01" ATTR{bInterfaceProtocol}=="01" ATTR{modalias}=="usb:v0A5Cp2110d0100dcE0dsc01dp01icE0isc01ip01" ATTR{supports_autosuspend}=="1"
On boot i prevent bluetooth from coming up via:
vim /etc/rc.local
echo disable > /proc/acpi/ibm/bluetooth
So edit a custom udev rule
vim /etc/udev/rules.d/10-disable-initial-T61-bluetooth
# Broadcom Bluetooth vom T61 abschalten SUBSYSTEM=="usb", KERNEL=="3-1:1.0", ACTION=="add", RUN+="/path/to/bin/disable_bluetooth"
Edit the according bluethooth-disable skript and make it accessible:
vim /path/to/bin/disable_bluetooth
#!/bin/sh echo disable > /proc/acpi/ibm/bluetoot
chmod 755 /path/to/bin/disable_bluetooth
Reload udev:
sudo service udev reload && sudo udevadm trigger
That's it ;)
Wlan Problems
Ubuntu Lucid / 10.04.1 64bit
I encountered some problems with my wlan and had some strange errors in dmesg:
The first problem was:
iwl3945 0000:03:00.0: Failed to get channel info for channel 100 [0] iwl3945 0000:03:00.0: Failed to get channel info for channel 104 [0] iwl3945 0000:03:00.0: Failed to get channel info for channel 108 [0] iwl3945 0000:03:00.0: Failed to get channel info for channel 112 [0]
According to this opensuse bug i filed a solution in Ubuntu Bug #340418:
Add a new file to /etc/modprobe.d/:
sudo vim /etc/modprobe.d/options-iwl3945.conf
with the following content
options iwl3945 disable_hw_scan=0
For testing purpose do
sudo rmmod -f iwl3945 && sudo modprobe iwl3945 disable_hw_scan=0
The second problem was:
cfg80211: Leaving channel 5170 MHz intact on phy2 - no rule found in band on Country IE cfg80211: Leaving channel 5180 MHz intact on phy2 - no rule found in band on Country IE cfg80211: Leaving channel 5190 MHz intact on phy2 - no rule found in band on Country IE
Look at dmesg like this:
dmesg | grep cfg | grep country
You'll see something like this
cfg80211: Calling CRDA for country: GB cfg80211: Received country IE:
To set the right country for your card (here GB) you have to install the program iw
sudo apt-get install iw
Then you can manually do
sudo iw reg set GB
and you'll see in dmesg:
cfg80211: Regulatory domain changed to country: GB
To automate this process you can write a so called dispatcher script for network manager (according to [1] and [2]):
vim /etc/NetworkManager/dispatcher.d/01changeCRDA
and add
#!/bin/sh INTERFACE=$1 ACTION=$2 CODE="GB" if [ "$ACTION" = "up" -a "$(echo $INTERFACE|grep wlan)" ];then iw reg set ${CODE} fi