Computers/Thinkpad T400
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 |
Contents
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 |
- The key is visible to xev and similar tools.
- The physical key has a symbol on it, which describes its function.
- The key is marked as "reserved" in the hardware maintenance manual.
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
- https://www.thinkwiki.org/wiki/Category:T400 — Contains extensive and useful hardware information
- Product Specifications Reference (PSREF) — See pages 282–303 for the ThinkPad T400
- Hardware maintenance manual