Lenovo ThinkPad T420
This article covers the installation and configuration of Arch Linux on a Lenovo T420 laptop.
- 1 Installation
- 2 Hardware
- 3 Laptop Settings
- 4 Troubleshooting
- 5 See also
This laptop supports UEFI as well as the traditional BIOS.
There are no issues with installing Arch Linux with the latest Archiso.
The rest of the installation process can be followed with the official install guide.
All hardware not listed below works out-of-the-box.
Fingerprint reader works great with fprint and PAM (installation of fingerprint-gui recommended).
See Fprint#Setup_fingerprint-gui for more information.
The eSATA combo port works perfectly well under Arch Linux.
ACPI is well supported here. No obvious troubleshoots.
Unfortunately, tp_smapi is only partially supported on the Thinkpad T420. A number of features work since version 0.41. For example, the hard drive protection mechanism HDAPS now works well. See the linked wiki entry.
Some features like setting the starting threshold for charging the battery do not yet work. To control the battery charging thresholds, install the Perl script AUR.AUR from the
acpi_call kernel module by running
or by adding it to the
MODULES array in
Manually set the thresholds by calling
perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v startChargeThreshold 0 40 perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v stopChargeThreshold 0 80
The example values 40 and 80 given here are in percent of the full battery capacity. Adjust them to your own needs. You may also want to add these lines to
/etc/rc.local to set them at startup. While these values should be permanent, they will be reset any time the battery is removed.
Also, if you are dual booting with Windows, you can still control the battery charging thresholds with Lenovo's Power Manager which communicates directly to the battery controller.
CPU Frequency Scaling
CPU frequency scaling is fully supported with all of the available processor models with this laptop.
options thinkpad_acpi fan_control=1
The thinkfan configuration file also needs to know how to set the fan speed. Replace the default sensor settings with the following.
You can add or remove services by editing the
DAEMONS array in your /etc/rc.conf file. It will initially look something like this:
Laptop Mode Tools
No significant issues were found using Laptop Mode Tools.
Posible bug with Lenovo_ThinkPad_T420#Shutdown on Battery
Suspending and hibernating with pm-utils works as intended.
TouchPad and TrackPoint do work out of the box, but the TouchPad is way too sensitive (i.e. fast) to be usable, since it is recognized as a mouse. To fix this, install the package and add the following two files to your
Section "InputClass" Identifier "ThinkPad TrackPoint" MatchProduct "TPPS/2 IBM TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
Section "InputClass" Identifier "two finger scrolling" Driver "synaptics" MatchProduct "SynPS/2 Synaptics TouchPad" MatchDevicePath "/dev/input/event*" Option "VertTwoFingerScroll" "on" Option "HorizTwoFingerScroll" "on" Option "EmulateTwoFingerMinW" "8" Option "EmulateTwoFingerMinZ" "40" Option "TapButton1" "1" EndSection
Adjust to your own needs. Read Touchpad Synaptics for more information.
To adjust the speed/sensitivity of the TrackPoint add these lines in your
TPDEV=/sys/devices/platform/i8042/serio1 echo -n 180 > $TPDEV/speed echo -n 200 > $TPDEV/sensitivity
Possible range of values are 1-255.
Bumblebee works as intended on models with NVIDIA Optimus
Optional kernel boot arguments
Using the following kernel boot parameters [drastically reduces battery drain]:
pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1
Media keys that work out of the box:
- Wireless On/Off
- Backlight Brightness settings
You must find a workaround and bind the keys yourself for the rest of them.
Rebind Forward and Back keys
Keys forward and back (next to cursor keys) can be easily remapped to PageDown/PageUp.
Install xmodmap with the package
~/.Xmodmap file with content:
keysym XF86Back = Page_Up keysym XF86Forward = Page_Down
Add this line to your
~/.xinitrc to make it work:
keysym XF86AudioNext = End keysym XF86AudioPrev = Home
Turn touchpad on and off
For some, the (Template:Keypress) key does not switch the touchpad off. Here are some simple keybinds to add to your
~/.xbindkeysrc for keys to quickly change your touchpad state. For these to take effect, run
xbindkeysrc. This binds Template:Keypress and Template:Keypress to 'turn off touchpad' and 'turn on touchpad' respectively. If someone has a simple toggle that would be much appreciated. (Tested in i3wm, where normal Template:Keypress does not toggle the touchpad)
# Turn off touchpad "synclient TouchPadOff=1" m:0x0 + c:199 XF86TouchpadToggle
# Turn on touchpad "synclient TouchPadOff=0" m:0x0 + c:202 NoSymbol
Volume up/down not changing volume
Another quick keybind for
~/.xbindkeysrc to change the volume (which does not work on some DEs). Again, run
xbindkeys for these to take effect. Taken from Xbindkeys
#increase volume "amixer set Master playback 1+" m:0x0 + c:123 XF86AudioRaiseVolume
#decrase volume "amixer set Master playback 1-" m:0x0 + c:122 XF86AudioLowerVolume
Also, while the mute button works, I rebound it to interface with ALSA.
# Toggle mute "amixer set Master toggle" m:0x0 + c:121 XF86AudioMute
Shutdown on Battery
Some users have reported that the T420 was rebooting on shutdown on battery power. There have been quite a few attempts to fix this. Three are detailed here.
One way is to disable the module
ehci_hcd. See Kernel_modules#Blacklisting for more information.
Or try disable Laptop-mode.
!laptop-mode to the
DAEMONS array in
This forum post details another way to have your computer not reboot on shutdown. Turning off the
laptop-mode daemon causes battery life to suffer, so when on the move and in need of a simple way to shutdown, this seems to work better.
Hang on Reboot
This is a problem on many laptops and can be fixed by blacklisting the
e1000e kernel module.
No Backlight Controls
One user has reported that the brightness controls (fn+home, fn+end) did not work in some desktop environments. This could be fixed by adding the following kernel options: