Segfault > IT > Hardware > Notebook Lenovo X121e
First published on: 10.Dec.2011

Index:


Intro

All in all my feelings about the notebook are very good.
All what I write next are Linux-related informations - not Windows nor anything else.

So small that it fits into my bag, solid, a good screen with a good resolution, a good keyboard & mouse (I am using only the red trackpoint - not the touchpad), a really good CPU, and all this with at least 4h battery life - especially considering the CPU it's a big improvement if compared to the notebooks based on Atom-CPUs.
Yes, it costs a bit more but in the end I think that this is what I really expected from the original netbooks.

I use Linux - more specifically the distribution called "Gentoo" - and have compiled the kernel on my own activating all the Thinkpad-related modules/drivers.
If you're using another distribution all these options are probably active as default.
As usual, even if something's not working for you when using the same or a different distribution (Ubuntu, Fedora, etc...), think that if I managed to make it work then basically the support in Linux exists and it's just a matter of you making it work, somehow ;o)

I'm using right now the kernel 3.1.4.

My notebook/netbook came with Windows 7 Professional preloaded.
I had a quick look around in Win7 before erasing everything and installing Linux and saw that there were a lot of GBs used by software ready to be installed - if deciding to use Win7, cleaning all this up manually will take some time, especially because it wasn't clear for me what belongs to Lenovo and what doesn't.

Buy a 7mm SDD (not 9mm) if you want to replace the HDD.

IMPORTANT!!!
The battery, under Linux (under Windows it probably lasts longer), should last under real usage for at least 4hrs.
If you don't implement the changes listed at the bottom, especially the ones related to the graphics card (GPU), you won't even be able to reach 2hrs runtime when using only the battery.


CPU

There are at least 2 versions of this notebook/netbook - one with an Intel and a cheaper one which has an AMD E-350 CPU.
You'll have to weight costs vs. performance when choosing between the two variants (probably the variant with the E-350 CPU has a longer battery life?).

I opted for the version that has the Intel CPU as I was looking for "absolute" computing power after my experience with en EeePC and an Intel Atom N270 @ 1.60GHz CPU (2 cores without Hyperthreading). I needed a strong CPU because compiling programs and using realtime audio processing when playing guitar just need that.
The CPU in my case is therefore an "Intel(R) Core(TM) i3-2357M CPU @ 1.30GHz", featuring VT-x (but no "VT-d") and two physical cores with Hyperthreading enabled (total logical cores is therefore 4).

On cpubenchmark.net the i3-2357M is rated with overall 1656 points and on the other side the Atom N270 gets only 304 points.
For a single core the this notebook featuring the i3 gets 414 points (1656 / 4 logical cores) and the N270 gets 152 points (304 / 2 logical cores) => the i3 (this notebook) is for single-threaded apps therefore 2.7 times faster than my old EeePC, and for concurrent programs or multithreaded apps it's able to handle 5.4 times more load - and I do notice all this.


Backlight

After the initial boot the backlight is set to 100%.

Dimming it with the Fn-keys worked out-of-the-box in both the terminal and X.


Graphics card

Using the i915 module.

See below for power-saving settings.


Framebuffer

Nothing special - changes to the native resolution of the display during boot as soon as the module of the graphics card is loaded.


Touchpad

I deactivated the touchpad and kept only the Trackpoint active - see my xorg.conf at the bottom.


Keyboard

I miss(ed) the "Insert" key!!! Without it I cannot copy/paste in X using the shift/ctrl+insert!

Edit 07.Apr.2014:
Solved by updating the BIOS (I updated to version 1.19 but from what I read in the forums it should work already since 1.15)
After the update the insert key was emulated by using "fn+i". Therefore, to emulate e.g. "shift+insert" you would press "fn+shift+i" and to emulate "ctrl+insert" you press "fn+shift+i".

To solve this problem I
1) started up X
2) identified the technical key name I wanted to use as replacement for the insert key by running "xbindkeys -k" and pressing on the keyboard "F12" (that's the key that I am going to use as replacement for the missing "Insert" key). The output of "xbindkeys" then showed that the physical key "F12" is really called "F12" - what a surprise.
3) Ran the command "xmodmap -e "keysym F12 = Insert" and from this point onwards I was able to use ctrl/shift+F12 to copy/paste.
4) Put that command into a script that runs as soon as I start up X.

All the rest is good, after that I reversed the Fn and Ctrl keys in the bios.


Audio

Done nothing special.
Using the normal "snd-hda-intel" module.


Lan

Done nothing special.
Using the "atl1c" module.


Wireless

Review 20.Oct.2012: the first method described below didn't fully work anymore since I performed an update of the OS & kernel. Please have a look at the remark if you're using a kernel >= ~3.3.X

Using the "iwlagn" module.

Losing connection after a couple of minutes.
Solved this problem by loading the module "iwlagn" with the options "swcrypto=1 fw_restart=1 bt_coex_active=0 power_save=1".

Please note that above I set "swcrypto=1 fw_restart=1 bt_coex_active=0" being only candidates for the solution of the problem and that I didn't spend time trying to investigaate which specific parameter is the solution - just know that setting them all like that solve this problem and that you're free to find out which specific one (or 2, or again all 3) solve the problem.

I set the option "power_save=1" only later to make the battery last longer - it doesn't have anything to do with this problem.

Remark 20.Oct.2012

  • The kernel module that is needed has changed from the kernel 3.3.x onwards.
    Using a kernel 3.6.2 the module is now called "iwlwifi".
  • The Wireless card will now be switched off as default. Therefore in order to switch it on one possibility is to pass the option "default_state=1" to the kernel module "rfkill" when it gets loaded.
    Alternatively use the utility "rfkill" to issue e.g. "rfkill list" and then "rfkill unblock 0".

Webcam

Not tested.


Cardreader

Not tested.


Battery

Should last at least 4hrs if the following options are implemented:

  • On the kernel boot line of Grub or Lilo or whatever you're using add the following options - this makes a HUGE difference in the power consumption of the notebook:
    pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1

    Therefore your kernel boot line will look similar to this one:
    kernel /boot/kernel-3.1.4-gentoo-r0 pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 root=/dev/sda3 console=tty1

    See here for more informations about the above options.
  • "power_save=1" for the iwlagn module of the wireless device as mentioned above.
  • echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
    To lower the power consumption of the SATA HDD-connection.
  • echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
    Raises the timeout when the changes to the filesystem are committed to the HDD from ~5 to 15 seconds - personally I don't think that this changes much.
  • echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
    Mistery option... .

Excluding the kernel-options, you could put the remaining commands into a single script and run it during the system boot, depending on how your Linux distribution handles init-scripts.


Fan & fan noise

Without doing anything, under both Windows 7 and Linux, the fan runs continuously on low RPMs independently of what you're doing.
The fan itself is not really noisy and has only a low-pitched noise - doesn't disturb.

In my case, as I hear EVERYTHING, I did not like that it was running all the time, so I set the limits higher than the default ones to keep it disabled if I'm not doing something special (compiling, watching sites which contain animations, etc...) and then run at higher RPMs if the temperature raises.

Do the following to change the FAN settings - I DO NOT TAKE ANY KIND OF RESPONSABILITY FOR WHAT HAPPENS TO YOUR DEVICE WHEN CHANGING THESE SETTINGS - PLEASE BE AWARE THAT YOUR DEVICE MIGHT STOP WORKING IF OVERHEATED BEYOND THE FACTORY LIMITS AND THAT IT EVEN MIGHT CATCH FIRE WITH ALL LOGICAL CONSEQUENCES:

  • Download thinkfan.
  • Unpack and compile "thinkfan" executing in the unpacked directory the command "make".
  • Execute "thinkfan" specifying a settings-file like this:
    ./thinkfan -c /my/directory/thinkfan.conf
  • "thinkfan.conf" in my case looks as follows:

    #This increases the real temperature of the HDD to be aligned with the one of the CPU - do a "cat /proc/acpi/ibm/thermal" to see the real values and increase them to reach ALMOST the CPU values.
    sensor /proc/acpi/ibm/thermal (0, 0, 0, 0, 0, 0, 22, 0)

    #This sets how fast the fan should run at which temperature, where "0" is off and "7" is the fastest speed.
    #, ,
    (0,     0,      60)
    (2,     55,     62)
    (3,     61,     64)
    (5,     62,     66)
    (7,     65,     32767)

My xorg.conf

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerFlags"
        Option "BlankTime" "20"
        Option  "AutoAddDevices"        "false"
EndSection

Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "glx"
        Load  "record"
        Load  "freetype"
        Load  "type1"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
#       Option  "XkbLayout" "de_CH"
        Option  "XkbLayout" "ch"
        Option  "XkbVariant" "de"
        Option  "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Section "InputDevice"
        Identifier "Mouse1"
        Driver  "mouse"
        Option  "Protocol"      "IMPS/2"
        Option  "Device"        "/dev/input/mouse1"
        Option  "Buttons"       "5"
        Option  "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        Identifier "Card0"
        Driver  "intel"
        VendorName  "BLAH-BLAH Corporation"
        BoardName   "Unknown Board"
        BusID       "PCI:0:2:0"
EndSection

Section "Extensions"
        Option      "Composite"   "enable"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes   "1366x768"
        EndSubSection
EndSection


My lspci

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
        Subsystem: Lenovo Device 21ed
        Flags: bus master, fast devsel, latency 0
        Capabilities: [e0] Vendor Specific Information: Len=0c
        Kernel driver in use: agpgart-intel

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device 21ed
        Flags: bus master, fast devsel, latency 0, IRQ 40
        Memory at d0000000 (64-bit, non-prefetchable) [size=4M]
        Memory at c0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 4000 [size=64]
        Expansion ROM at [disabled]
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Capabilities: [a4] PCI Advanced Features
        Kernel driver in use: i915

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
        Subsystem: Lenovo Device 21ed
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at d1605000 (64-bit, non-prefetchable) [size=16]
        Capabilities: [50] Power Management version 3
        Capabilities: [8c] MSI: Enable- Count=1/1 Maskable- 64bit+

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) (prog-if 20 [EHCI])
        Subsystem: Lenovo Device 21ed
        Flags: bus master, medium devsel, latency 0, IRQ 16
        Memory at d160a000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Debug port: BAR=1 offset=00a0
        Capabilities: [98] PCI Advanced Features
        Kernel driver in use: ehci_hcd

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
        Subsystem: Lenovo Device 21ed
        Flags: bus master, fast devsel, latency 0, IRQ 42
        Memory at d1600000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [130] Root Complex Link
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd-hda-intel

00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Lenovo Device 21ed
        Capabilities: [a0] Power Management version 2
        Kernel driver in use: pcieport

00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        Memory behind bridge: d1500000-d15fffff
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Lenovo Device 21ed
        Capabilities: [a0] Power Management version 2
        Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b4) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=03, subordinate=07, sec-latency=0
        I/O behind bridge: 00003000-00003fff
        Memory behind bridge: d0d00000-d14fffff
        Prefetchable memory behind bridge: 00000000d0400000-00000000d0bfffff
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Lenovo Device 21ed
        Capabilities: [a0] Power Management version 2
        Kernel driver in use: pcieport

00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b4) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=08, subordinate=08, sec-latency=0
        I/O behind bridge: 00002000-00002fff
        Memory behind bridge: d0c00000-d0cfffff
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Lenovo Device 21ed
        Capabilities: [a0] Power Management version 2
        Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04) (prog-if 20 [EHCI])
        Subsystem: Lenovo Device 21ed
        Flags: bus master, medium devsel, latency 0, IRQ 23
        Memory at d1609000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Debug port: BAR=1 offset=00a0
        Capabilities: [98] PCI Advanced Features
        Kernel driver in use: ehci_hcd

00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04)
        Subsystem: Lenovo Device 21ed
        Flags: bus master, medium devsel, latency 0
        Capabilities: [e0] Vendor Specific Information: Len=0c

00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04) (prog-if 01 [AHCI 1.0])
        Subsystem: Lenovo Device 21ed
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 41
        I/O ports at 4088 [size=8]
        I/O ports at 4094 [size=4]
        I/O ports at 4080 [size=8]
        I/O ports at 4090 [size=4]
        I/O ports at 4060 [size=32]
        Memory at d1608000 (32-bit, non-prefetchable) [size=2K]
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [70] Power Management version 3
        Capabilities: [a8] SATA HBA v1.0
        Capabilities: [b0] PCI Advanced Features
        Kernel driver in use: ahci

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
        Subsystem: Lenovo Device 21ed
        Flags: medium devsel, IRQ 18
        Memory at d1604000 (64-bit, non-prefetchable) [size=256]
        I/O ports at efa0 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c-i801

02:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000
        Subsystem: Intel Corporation Centrino Wireless-N 1000 BGN
        Flags: bus master, fast devsel, latency 0, IRQ 43
        Memory at d1500000 (64-bit, non-prefetchable) [size=8K]
        Capabilities: [c8] Power Management version 3
        Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [e0] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Device Serial Number 74-e5-0b-ff-ff-2c-6c-4c
        Kernel driver in use: iwlagn
        Kernel modules: iwlagn

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5116 PCI Express Card Reader (rev 01)
        Subsystem: Lenovo Device 21ed
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at d0d00000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Device Serial Number 00-00-00-01-00-4c-e0-00

08:00.0 Ethernet controller: Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet (rev c0)
        Subsystem: Lenovo Device 21f2
        Flags: bus master, fast devsel, latency 0, IRQ 44
        Memory at d0c00000 (64-bit, non-prefetchable) [size=256K]
        I/O ports at 2000 [size=128]
        Capabilities: [40] Power Management version 3
        Capabilities: [48] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [58] Express Endpoint, MSI 00
        Capabilities: [6c] Vital Product Data
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [180] Device Serial Number ff-d0-6f-5b-e8-9a-8f-ff
        Kernel driver in use: atl1c