Lenovo ThinkPad x121e
Note that there are several models of this laptop. The notes below refer to the model with the following specification and options:
- Intel(R) Core(TM) i3-2367M CPU @ 1.40GHz GenuineIntel
- Board 3045CTO
- Intel Centrino Wireless-N 1000 (Note: this is not the default option)
- US keyboard with Euro
- 320G HDD
Working out of the box:
- graphics (intel_agp,i915 are loaded automatically; add i915 to the modules in mkinitcpio.conf for support during early boot)
- wifi (with Intel Centrino Wireless-N 1000 option)
- sound (with ALSA)
- touchpad (with synaptics)
- most function keys
- suspend to RAM
- suspend to disk
- boot from MBR partitioned disk in BIOS mode (note: there must be at least one primary partition flagged as bootable)
- microphone (barely - it does capture sound but it is unusably noisy on my setup)
- 2 "Think" LEDs
- HDD in AHCI mode
- boot from USB key, USB HDD, internal HDD
- SD card reader
Working but not out of the box:
- boot from GPT partitioned disk in UEFI mode (with hack to work around buggy firmware - see here and forum links below)
- bluetooth (with BIOS upgrade - see below)
- VGA out to external monitor (connection generally goes OK but disconnect frequently freezes X and sometimes causes hard lock up forcing cold reboot; could be configuration or DE related - see below)
- boot from GPT partitioned disk in BIOS mode
- HDMI out
- security chip thing
- boot from USB FDD, network boot
Arch user blogs about the x121e
Power saving options for the x121e
In /etc/rc.conf, add acpi-cpufreq to the MODULES array to enable CPU frequency scaling. If you use laptop-mode-tools, that's enough. Otherwise, add the governor you want to use, too e.g. cpufreq_ondemand.
Then add the following to the DAEMONS array:
- either laptop-mode or cpufreq
- sensors (if you want to monitor fan speed, temperature etc.)
thinkpad_acpi should be loaded automatically. Check this with lsmod | grep think.
Add to the kernel command line:
pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 i915.semaphores=1
If using laptop-mode-tools stops your machine from shutting down while on battery power, try setting the following configuration line in /etc/laptop-mode/conf.d/runtime-pm.conf:
tp_smapi does not currently support the x121e and is apparently not likely to do so in the foreseeable future. Apparently the x121e is not quite a "real" ThinkPad.
Getting bluetooth enabled can be a bit tricky. If bluetooth doesn't work or stops working and cannot be unblocked by rfkill, check first that it is enabled in the BIOS. If that isn't the problem, you may need a BIOS upgrade (see below).
Even after a BIOS upgrade, it seems that bluetooth may stop working in some cases. For example, changing the RAM in my machine seems to result in a hard block which rfkill can't touch even though bluetooth is enabled in BIOS. Repeating the post-bios-upgrade procedure of loading the default BIOS settings, booting and then redoing your custom settings seems to help. (I don't know if the reboot with the default settings is actually needed or if loading the defaults, saving them and then re-customising would be enough.) If you do this, remember that you may need to re-add grub to your boot menu to get everything working normally again. (This applies to GRUB2, at least.)
Broadcom BCM43224 a/b/g/n wifi
$ lspci -vnn | grep 14e4 02:00.0 Network controller : Broadcom Corporation BCM43224 802.11a/b/g/n [14e4:0576] (rev 01)
Wifi can be enabled using the Broadcom_wireless broadcom-wl driver. Be sure to rfkill-enable it and disable power saving :
$ ip link set eth1 down $ iwconfig eth1 channel auto $ iwconfig eth1 power off $ rfkill unblock wifi $ ip link set eth1 up
Some people experience difficulties booting if their disk is partitioned using a GPT partition map. It may work to use a GPT partition map, UEFI boot and a fat 16 formatted EFI partition (this violates UEFI spec but may have the advantage of actually working). See https://bbs.archlinux.org/viewtopic.php?id=131149 and https://bbs.archlinux.org/viewtopic.php?id=133074.
If bluetooth doesn't work or stops working and cannot be unblocked by rfkill, check that it is enabled in the BIOS. If that's not the problem, a BIOS upgrade may help. See https://bbs.archlinux.org/viewtopic.php?id=137346.
Speed up trackpoint: https://bbs.archlinux.org/viewtopic.php?id=130130.
Solution for difficulties suspending or hibernating: https://bbs.archlinux.org/viewtopic.php?id=125011.
VGA disconnect problems: https://bbs.archlinux.org/viewtopic.php?id=134886.