Computers/Thinkpad T400

From ParabolaWiki
Jump to: navigation, search
Hardware PCI/USB ID Working?
Bluetooth 0a5c:2145 Yes
Webcam 17ef:1004 Yes
Ethernet 8086:10f5 Yes
8086:10bf Yes
WLAN (Intel) 8086:4237 No
8086:4236 No
WLAN (Realtek) 10ec:8172 No
WWAN (Sierra) 1199:0220 No
WWAN (Ericsson) 0bdb:1900 No
GPU (Intel) 8086:2a42 Yes
GPU (ATI) 1002:95c4 Unknown
Touchpad Yes
Trackpoint Yes
Keyboard Yes
TPM No
Fingerprint reader
(STMicroelectronics)
0483:2016 Yes
Fingerprint reader
(AuthenTec)
08ff:2810 Yes
ExpressCard slot Yes
CardBus slot 1180:0476 Yes
Smart card reader 17ef:1003 Unknown
SD card reader 1180:0822 Yes
Memory Stick reader 1180:0592 Unknown
xD card reader 1180:0852 Unknown
Audio 8086:293e Yes


1 Firmware

Proprietary Lenovo BIOS can be replaced with Libreboot.

1.1 Hardware video acceleration

libva-intel-driver can be installed to enable accelerated graphics.

2 Touchpad

Although libinput is recommended over Touchpad Synaptics, the latter driver provides more touchpad scrolling options, namely:

  • Horizontal and vertical edge scrolling.
  • Horizontal and vertical two-finger scrolling.
  • Circular scrolling.

libinput, on the other hand, only supports vertical edge scrolling for this particular touchpad.

2.1 Touchpad Synaptics

Note that two-finger pressure may need to be decreased in order to increase the responsiveness/sensitivity of two-finger scrolling. This can be done by decreasing the default value of 282 to a value like 50:

$ xinput set-prop 'SynPS/2 Synaptics TouchPad' 'Synaptics Two-Finger Pressure' 50

You can experiment with different values to find something that works for you. See synaptics(4) for more input device properties (and configuration options), e.g., selecting the scrolling method. See Touchpad Synaptics#Configuration for making the above change persistent across sessions.

3 Mute key

You may need to pass acpi_osi=Linux as a kernel parameter to allow the mute key to function as intended. See https://thinkwiki.org/wiki/Mute_button and the relevant thread on the linux-acpi mailing list for more details. Under Libreboot/Coreboot one can also use the ectool binary to set the correct mode as follows:

# ectool -w 0x03 -z 0x40

This should enable the mute button to work as intended, be careful with ectool though as it is directly manipulating the registers in the EC.
To make this persist after reboots and suspend-wakeups, you can create a systemd service to rerun the command on boot and after wakeup:

/etc/systemd/system/mutekey.service
 [Unit]
 Description=mutekey
 After=suspend.target
 
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/mutekey.sh
 
 [Install]
 WantedBy=suspend.target
/usr/local/bin/mutekey.sh
 #!/bin/bash
 ectool -w 0x03 -z 0x40
# chmod +x /usr/local/bin/mutekey.sh
# systemctl enable mutekey
# systemctl start mutekey

4 Power management

If using tlp then one can set charge thresholds and even run a battery calibration through it:
If still on stock Lenovo BIOS then enable TP-SMAPI driver in TLP's configuration file.
If using Coreboot or a distro thereof (e.g.: Libreboot), then use the NATACPI driver instead.

While tp-smapi doesn't work under Coreboot/Libreboot, it should still be possible to change the EC's registers directly by using ectool from libreboot-util.

To set the upper charge threshold for the main battery (e.g.: 75%):

# ectool -w 0x3 -z 0x44
# ectool -w 0x24 -z 0xcb

Similarly, the lower threshold for the main battery can be set by (e.g.: 30%):

# ectool -w 0x3 -z 0x40
# ectool -w 0x24 -z 0x9e

For the Ultrabay battery, same commands apply just replace the 0x24 address to 0x25.

Battery calibration: Note that the computer has to be plugged in and adequately cooled throughout this operation. Main battery:

# ectool -w 0x23 -z 0x07

Ultrabay battery:

# ectool -w 0x23 -z 0x08


For reference:

Percentage Hex Value
10% 0x8a
15% 0x8f
20% 0x94
25% 0x99
30% 0x9e
35% 0xa3
40% 0xa8
45% 0xad
50% 0xb2
55% 0xb7
60% 0xbc
65% 0xc1
70% 0xc6
75% 0xcb
80% 0xd0
85% 0xd5
90% 0xda
95% 0xdf
100% 0xe4


Note that in the case of a battery being totally discharged and refusing to charge again, you can reset it by forcing recalibration.

5 LED/ThinkLight

Can be triggered on by:

# ectool -w 0x3b -z 0x12

And off by:

# ectool -w 0x3b -z 0x10


5.1 Fan speed control

See Fan speed control#ThinkPad laptops.

6 Function keys

Key Visible?1 Marked?2 Effect
Fn Yes Yes XF86WakeUp
Fn+F1 No Reserved3
Fn+F2 Yes Yes XF86ScreenSaver
Fn+F3 Yes Yes XF86Battery
Fn+F4 Yes Yes XF86Sleep
Fn+F5 Yes Yes XF86WLAN
Fn+F6 Yes No XF86WebCam, reserved3
Fn+F7 Yes Yes XF86Display
Fn+F8 Yes Yes XF86TouchpadToggle
Fn+F9 Yes Yes NoSymbol
Fn+F10 Yes No XF86WakeUp, reserved3
Fn+F11 No Reserved3
Fn+F12 Yes Yes XF86Suspend
Fn+PageUp No Yes Toggles the ThinkLight
Fn+Home Yes Yes XF86MonBrightnessUp
Fn+End Yes Yes XF86MonBrightnessDown
Fn+Space No Yes None
Fn+PrtScr Yes Yes Alt_L Alt_L+Sys_Req
Fn+ScrollLock Yes Yes Num_Lock
Fn+Pause Yes Yes Control_L+Break
  1. The key is visible to xev and similar tools.
  2. The physical key has a symbol on it, which describes its function.
  3. The key is marked as "reserved" in the hardware maintenance manual.
Note: Pressing Fn+ScrollLock even once (to toggle Num Lock) will cause subsequent Fn+ScrollLock key presses to become invisible to xev and similar tools until the system is rebooted. However, the Num Lock LED indicator will still function and correctly indicate whether Num Lock is enabled.

7 Dock

Note that on the Type 2504 docking station, there is a design bug where the outer two metal prongs (further from the connector) will cause a short and system hang/reboot upon docking/undocking. It is enough to cover them in some electrical tape or non-conducting paint to fix the issue.

8 Possible Bugs

If you encounter unexplained high CPU usage (mostly pegging one core), crashing of WiFi drivers without much explanation, or other USB-related bugs - especially after resuming from suspend: check if there are any prints about IRQ #17 in dmesg. If so, chances are there that blacklisting uhci_hcd will solve the issue. Keep in mind that this will "break" the fingerprint sensor though as it is running over USB 1.1.

In case the laptop does seem to start to boot but then fails and all throughout there is no output on the display chances are that a RAM stick has gotten dislodged and/or NVRAM needs to be cleared out; if it is the latter the process involves removing all power to the laptop (AC and batteries) and then disconnecting the NVRAM battery (right next to the RAM sticks), waiting a few seconds and reconnecting it again.

9 See also