Lenovo ThinkPad X120e
- 1 CPU
- 2 Video Drivers
- 3 Wireless
- 4 Audio
- 5 Input
- 6 Power Management
- 7 Suspend and hibernation
- 8 External Resources
The AMD CPU used on the X120e is microcode-upgradeable. To enable this functionality install the amd-ucode packages (available on extra) and add microcode to the MODULE list on /etc/rc.conf.
In order to use the open source driver you must have at least kernel 2.6.38.
The open source ATI driver has flawless performance (including suspend). Gnome 3 works well with the open source ATI driver.
The Catalyst drivers do offer better 3D performance but usually have various minor issues (such as suspend support). As of kernel 18.104.22.168, suspend appears to work fine with this computer while using the catalyst drivers.
The Thinkpad X120e can come with one of two wireless cards.
- The Realtek BGN Wifi card currently is supported by
- The 2.6.38 kernel includes support for this card, but suffers from intermittent hard locks when associating with an access point. The AUR driver linked here does not suffer from this problem. (The Ubuntu folks seem to have the same issue with the x120e and the module included in the kernel.)
- The Broadcom ABGN Wifi card is currently supported by Broadcom wireless wiki page for more info. AUR from AUR. See the
The kernel modules work, but the HDMI audio is the primary device (not the speaker). You can swap that:
$ vim ~/.asoundrc
defaults.pcm.card 1 defaults.pcm.device 0 defaults.ctl.card 1
Note: Alternatively, you can accomplish the same thing by configuring the snd-hda-intel module:
$ grep snd-hda-intel /etc/modprobe.d/snd-hda-intel.conf
options snd-hda-intel index=1
By specifying index you should no longer specify the default in
TrackPoint Scrolling (wheel emulation)
To enable scrolling with the TrackPoint while holding down the middle mouse button, create a new file /etc/X11/xorg.conf.d/20-thinkpad.conf with the following content:
Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
There are more details about how this works on the Xorg page.
Disabling the TrackPad
If you try to use your x120e lying down you will notice its very easy to hit the TrackPad buttons and invert the functionality of the other inputs(fun).
To disable the buttons and pad add the following to /etc/X11/xorg.conf.d/10-synaptic.conf:
Section "InputClass" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" Option "SHMConfig" "on" EndSection
And install the synaptics driver from extra:
# pacman -S xf86-input-synaptics
You can now toggle the TrackPads functionality using the synclient utility:
$ synclient TouchpadOff=0 ; enables $ synclient TouchpadOff=1 ; disables
If you want this to be permanent add the option to your Xorg config:
Option "TouchpadOff" "1"
Enable Thinkpad ACPI
To have the thinkpad_acpi module load everytime at bootup add it to MODULES=() in /etc/rc.conf
This module allows you to see and control various aspects of your Thinkpad from /proc/acpi/ibm
To save some power you can disable Bluetooth:
# tee <<< disable /proc/acpi/ibm/bluetooth
If you want to disable Bluetooth at every boot just add that line to /etc/rc.local
To enable CPU Frequency Scaling first add powernow-k8 to the
MODULES array in
# vim /etc/rc.local
tee <<< ondemand /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor tee <<< ondemand /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
If you wish to have the ondemand governor ignore niced (background) processes when deciding whether to increase CPU speed:
# vim /etc/rc.local
tee <<< 1 /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
ATI Video card Powersaving
Under the opensource ATI video card driver you can control the clockspeed of the GPU. The recommended setting is:
echo dynpm > /sys/class/drm/card0/device/power_method
This enables dynamic frequency switching based off of GPU load. Further information on this topic can be found in ATI#Powersaving.
SATA Power Policy
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
Will tell hard drive to minimize power use.
Sound card Powersaving
Because the sound card in the X120e isn't actually an Intel card (even though it uses the Intel HDA driver) I'm not sure if this actually does anything. Doesn't seem to cause any problems though.
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
"24 26 52" is what I have my E-350 set to. The three numbers represent 1600mhz, 1200mhz and 800mhz.
Another method for undervolting isAUR. It is more intuitive then PHC tool and needs Kernelmodule cpuid and msr.
Information output available cores and current frequencies and voltage:
sudo tpc -l
Example how to use
tpc -set core all pstate 2 frequency 825 vcore 0.825 tpc -set core all pstate 1 frequency 1320 vcore 1.2250 tpc -set core all pstate 0 frequency 1650 vcore 1.3000
The X120e's fan spins constantly but luckily can be controlled by the user.
To enable manual fan control place the following into /etc/modprobe.d/modprobe.conf
options thinkpad_acpi fan_control=1
Now you have to reload thinkpad_acpi module or reboot your Netbook.
# rmmod thinkpad_acpi && modprobe thinkpad_acpi
Now it should look like that:
# cat /proc/acpi/ibm/fan status: disabled speed: 0 level: 0 commands: level <level> (<level> is 0-7, auto, disengaged, full-speed) commands: enable, disable commands: watchdog <timeout> (<timeout> is 0 (off), 1-120 (seconds))
At this point the fan will still be safely under the system's control. You can either directly modify the values in /proc/acpi/ibm (NOT RECOMMENDED. e.g. 'echo level 1 > /proc/acpi/ibm/fan') or install a fan control daemon such as [thinkfan].
Suspend and hibernation
Suspend works out of the box, but hibernate may fail - the system usually hangs with a black screen and a blinking power button led. To fix this we need to modify the hibernation mode; using pm-utils is just a matter of creaing a file /etc/pm/config.d/hibernate_mode containing a single line: