openSUSE-12.1 on Lenovo X220 laptop

I installed openSUSE-12.1 on my wife’s Lenovo X220 laptop. Overall, the installation went well.

I had previously blogged about the selection of this laptop to attempt to ensure GNU/Linux compatibility.

The same blog entry described my wife’s procurement of this laptop (with her a Thai native speaker and me a native English speaker, both of us being Expatriates living in Germany), and I blogged about the tests I had conducted with the openSUSE-12.1 release candidate liveCD.

In addition, others had posted about their experiences with this Lenovo X220, so I was anticipating it should work reasonably well. In particular this thread: [size=2]Lenovo X220 on openSUSE-11.4

[/size]
My wife decided to go for the X220 with the “premium IPS display” which we both believe was a ‘smart move’ as the visual quality of this display’s output is very very good.

The only areas of possible concern based on some (but not all) users who had problems were:

  • Intel sandybridge graphic hardware has caused users problems with GNU/Linux on other manufacturer’s laptops, and
  • [Internal mic caused an openSUSE user some hiccups](http://forums.opensuse.org/forums/english/get-technical-help-here/la ptop/469598-opensuse-12-1-amd64-x220-sound-after-suspend-white-noise-over-mi crophone.html), and
  • Intel wireless caused on openSUSE user to express major disappointment because they could not get it to work well.

… although for all that functionality noted above, I managed to get it to work well with a liveCD RC version of openSUSE-12.1, and also in all cases of the above, I had read posts of users who noted it worked well. So I was left with a suspicion that those who had problems did not configure the settings properly.

The Lenovo X220 does not have an integrated CD/DVD reader/writer, so in all cases I used a Samsung External USB CD/DVD reader/writer to both test from the liveCDs, and also to install openSUSE-12.1.
**
Hard drive Preparation:
**
This Lenovo X220 came with an English language version of Windows7 Premium installed, with its 250 GB Toshiba hard driver carved up originally into 3 partitions: a small Windows7 boot partition (~ 1.17 GB), a somewhat larger Lenovo recovery partition for Windows7 (~11.72 GB), and finally the remaining very large Windows7 main partition taking up the remainder of the hard drive.

Now a couple of months back, in preparation for placing GNU/Linux on this laptop, my wife defragged the Windows7 hard drive and then using a Windows7 tool (I don’t know which) she reduced the main Windows7 partition in size, creating 50 GBytes of unallocated hard drive space. Then she booted to either a gparted or a Parted-Magic live CD, and she turned that 50 GBytes into an extended partition, and formatted it as one 50 GByte EXT3 partition. The idea being GNU/Linux would eventually go in that 50 GBytes.

**Backup Preparation **

Before installing GNU/Linux my wife assured me she had her data all backed up. I then booted to an openSUSE-12.1 liveCD and I backed up the Master Boot Record of her Lenovo X220’s hard drive from a terminal with root permissions with something like the command:


dd if=/dev/sda of=lenovo-x220-windows7-mbr-440 bs=440 count=1

and I copied that to a USB memory stick. Of course the idea here is I could then always restore her MBR if for some reason the openSUSE-12.1 boot manager had a problem with its MBR install.

openSUSE-12.1 installation.

I then removed the memory stick, rebooted and removed the openSUSE-12.1 liveCD and replaced it with a 64-bit openSUSE-12.1 DVD, and booted to that DVD. My wife chose the KDE desktop. Install was fairly straight forward.

**Partitioning **

The openSUSE installer identified the empty 50 GByte extended partition (that my wife and previously made available), and used that /dev/sda4 extended partition, carving it up in a ~2 GByte swap (/dev/sda5), a ~19 GByte / (/dev/sda6) and a 28 GB /home (/dev/sda7) partition.

**Boot Loader Configuration **

When reviewing the boot loader settings BEFORE the installation to the hard drive, I noted “Grub” selected as ‘Boot Loader’ and only ‘Boot from Extended Partition selected’. Note neither ‘Boot from Master Boot Record’, NOR ‘Boot from Root Partition’, NOR ‘Boot from Boot Partition’, NOR ‘Custom Boot Partition’ were selected. This made sense as GNU/Linux was ONLY on this drive’s extended partition.

I then went to the Boot Loader Options and in the Boot Menu I noted “Set Active Flag in Partition Table for Boot Partition” was selected. I wanted that, as that would result in the ‘Extended’ partition being marked as active, and would point the PC to go to the Extended partition to boot. But I also noted the ‘Write generic Boot code to MBR’ was selected and I did NOT want that, so I deselected that. I decided if I could get that to work, I did not want the Windows7 boot code in the MBR replaced by generic boot code. This approach has worked for me in the past.

I then selected OK for the settings, and started the installation.

**Time-out during installation **

The installation went smooth, until the 1st reboot, when the PC appeared to hang with a black screen and a lot of text after these lines:


mount -o rw,acl,user_xattr -t ext4 /dev/disk/by-id/ata-HITACHI_HT3543225A384_E00G4243ELASSF-part6 /root
systemd-fsck[785]: /dev/sda7: clean, 11/1835008 files, 15185/7330048 blocks

There was no disk activity. The black full screen with text appeared frozen. But rather than rush to judgment, I went for a coffee, and came back and pondered this. As I was taking my first coffee sip, a time-out text appeared below the above line, and then the install continued !

**Hiccup in Network configuration **

The install then proceeded fairly painless until the network settings. The openSUSE installer identified both the wired and the wireless. The wireless was not (yet) configured and I left the default settings in place, so that that wired ethernet (which was plugged in) would function. However when ‘Saving Network Configuration’ the YaST2 dialog box "Error - No Network Running’ appeared where pressing ‘OK’ was the only option. After that, none of the Installation network functionality worked.

After which the install completed, and I noted at that point, with a completed installation, that I had Internet via the wired connection. I thus launched YaST > Software > Software Management and installed all the waiting updates for 12.1.

**Successful reboot **

Then I rebooted, as I was curious if the reboot would work given I had changed the default ‘boot settings’. Reboot worked fine, with openSUSE-12.1 nominal and failsafe boot settings in grub, along with 3 MS-Windows boot selection options (which I later edited/reduced down to two MS-Window boot options).

… continued …

Third party packages and configuring hardware

I then added the Packman Packager repository, switched system packages to Packman, and updated. I added a number of my favourite multimedia applications. Then I configured our HP C309a all-in-one Premium printer, scanner for network printing and scanning. I then installed guvcview (from Packman) and tested the webcam. It worked fine. And I installed Skype and tested it. Both video (from webcam) and integrated Mic worked fine.
**
Wireless worked fine **

Then I unplugged the wired Ethernet cable, and configured our wireless router using the Network Manger. Wireless worked fine, although I was careful not to fight the KDE password manager (but rather to use that service). I note wireless details:


03:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [8086:0085] (rev 34)
Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN [8086:1311]
Kernel driver in use: iwlagn

**
Miscellaneous**

So I had no problems with:

  • integrated mic - it ‘just worked’ in Skype
  • wireless network - it ‘just worked’ with Network Manager AFTER the install was complete
  • Sandybridge graphics worked fine (using i915 Intel driver).

.
Some information on this laptop:

**
Webcam** : webcam is uvc compatible:


Bus 001 Device 004: ID 04f2:b217 Chicony Electronics Co., Ltd

and worked fine.

PCI devices: lspci -nnk


00:00.0 Host bridge [0600]: Intel Corporation 2nd Generation Core Processor Family DRAM Controller [8086:0104] (rev 09)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: agpgart-intel
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: i915
00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: mei
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
Subsystem: Lenovo Device [17aa:21ce]
Kernel driver in use: e1000e
00:1a.0 USB Controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 [8086:1c2d] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: ehci_hcd
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b4)
Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 [8086:1c12] (rev b4)
Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 [8086:1c16] (rev b4)
Kernel driver in use: pcieport
00:1c.4 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 [8086:1c18] (rev b4)
Kernel driver in use: pcieport
00:1d.0 USB Controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: ehci_hcd
00:1f.0 ISA bridge [0601]: Intel Corporation QM67 Express Chipset Family LPC Controller [8086:1c4f] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
00:1f.2 SATA controller [0106]: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller [8086:1c03] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: i801_smbus
03:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [8086:0085] (rev 34)
Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN [8086:1311]
Kernel driver in use: iwlagn
0d:00.0 System peripheral [0880]: Ricoh Co Ltd Device [1180:e823] (rev 04)
Subsystem: Lenovo Device [17aa:21da]
Kernel driver in use: sdhci-pci

The above shows the i915 Intel graphic driver in use.
**
xrandr**: Output of xrandr showing the 1366x768 resolution:


Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm
1366x768 60.0*+
1024x768 60.0 
800x600 60.3 56.2 
640x480 59.9 
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)

**
Xorg.0.log graphics information** : The content of /var/log/Xorg.0.log file:
SUSE Paste
where that link also shows the Intel graphic driver in use.
**
Audio hardware/configuraiton information:** The alsa-info.sh audio diagnostic script:
SUSE Paste
**
dmesg**: Output of dmesg:
SUSE Paste

**BIOS
**
I note from dmidecode her Lenovo X220’s BIOS version


BIOS Information
Vendor: LENOVO
Version: 8DET50WW (1.20 )
Release Date: 07/07/2011

which according to the [Lenovo site](http://support.lenovo.com/en_US/detail.page?LegacyDocID=MIGR-77150&medi um=rssX220) is not the newest version, where the Lenovo site notes these BIOS updates:


VERSION INFORMATION
The following versions of UEFI BIOS and ECP (Embedded Controller Program) have
been released to date.
Package (ID) UEFI BIOS (BIOS ID) ECP (ECP ID) Rev. Issue Date
---------------- --------------------- ---------------- ---- ------------------
1.24 (8DUJ12US) 1.24 (8DET54WW) 1.13 (8DHT29WW) 02 2011/11/10 1.13 (8ZHT29WW)
1.24 (8DUJ12US) 1.24 (8DET54WW) 1.13 (8DHT29WW) 01 2011/10/28 1.13 (8ZHT29WW)
1.22 1.22 (8DET52WW) 1.12 (8DHT28WW) 01 2011/10/07 1.12 (8ZHT28WW)
1.21 1.21 (8DET51WW) 1.11 (8DHT27WW) 02 2011/09/13 1.11 (8ZHT27WW)
1.21 1.21 (8DET51WW) 1.11 (8DHT27WW) 01 2011/09/07 1.11 (8ZHT27WW)
1.19 1.19 (8DET49WW) 1.09 (8DHT25WW) 01 2011/07/19 1.09 (8ZHT25WW)
1.18 1.18 (8DET48WW) 1.08 (8DHT24WW) 01 2011/07/19 1.08 (8ZHT24WW)
1.17 1.17 (8DET47WW) 1.08 (8DHT24WW) 01 2011/06/10 1.08 (8ZHT24WW)

with more details here: http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/8duj12us.txt … I note the 1.21 update purportedly has system performance improvements (when laptop is under heavy load), and other fixes wrt cooling fan, behaviour when smart phones attached, etc … I don’t know if my wife will update the BIOS.

Its interesting that the above list does not include the version 1.20 on my wife’s Lenovo X220.

**Overall Hardware Summary
**
Output of ‘inxi -F’ command (where inxi comes from Packman packager site)


[size=2]**System:** Host: lenovo-x220.darmstadt Kernel: 3.1.0-1.2-desktop x86_64 (64 bit) 
Desktop KDE 4.7.2 Distro: openSUSE 12.1 (x86_64) VERSION = 12.1 CODENAME = Asparagus
**
Machine:** System: LENOVO (portable) product: 4286CTO version: ThinkPad X220
Mobo: LENOVO model: 4286CTO Bios: LENOVO version: 8DET50WW (1.20 ) date: 07/07/2011
**
CPU:** Dual core Intel Core i5-2410M CPU (-HT-MCP-) cache: 3072 KB flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) 

**Clock Speeds:** 1: 800.00 MHz 2: 800.00 MHz 3: 800.00 MHz 4: 800.00 MHz
**
Graphics:** Card: Intel 2nd Generation Core Processor Family Integrated Graphics Controller 
X.Org: 1.10.4 drivers: intel (unloaded: fbdev,vesa) Resolution: 1366x768@60.0hz 

**GLX Renderer:** Mesa DRI Intel Sandybridge Mobile GLX Version: 2.1 Mesa 7.11
**
Audio:** Card: Intel 6 Series/C200 Series Chipset Family High Definition Audio Controller driver: snd_hda_intel

**Sound:** Advanced Linux Sound Architecture ver: 1.0.24
**
Network:** Card-1: Intel 82579LM Gigabit Network Connection driver: e1000e 
**
IF:** eth0 state: down speed: 4294967295 Mbps duplex: full mac: f0:de:f1:7e:f4:97

**Card-2:** Intel Centrino Advanced-N 6205 driver: iwlagn 

**IF:** wlan0 state: up mac: a0:88:b4:d3:3f:38
**
Drives:** HDD Total Size: 251.1GB (42.3% used) 1: /dev/sda HITACHI_HTS54322 250.1GB 
2: USB /dev/sdb TS1GJF2A 1.0GB 
**
Partition:** ID: / size: 19G used: 4.8G (27%) fs: rootfs ID: / size: 19G used: 4.8G (27%) fs: ext4 
ID: /home size: 28G used: 372M (2%) fs: ext4 ID: swap-1 size: 2.16GB used: 0.00GB (0%) fs: swap 
**
Sensors:** Error: You do not have the sensors app installed.
**
Info:** Processes: 181 Uptime: 0:10 Memory: 650.0/3847.0MB Client: Shell inxi: 1.7.24

I really like that output, as it is chalk full of useful information on both hardware and software configuraiton.

**Very fast installation **

The above installation from start to finish, including going for coffee, configuring printer/scanner/webcam, and installing 3rd party applications, took a total of 90-minutes from START to FINISH. My wife was very surprised, as she was still finishing an MS-Windows7 install on her desktop, that she had started some days ago, and had spent MANY hours since configuring hardware, installing 3rd party apps, and turning and tweaking.

Not YET tested

There is still a LOT that we have not tested:

  • bluetooth

  • external mic

  • eSATA / HDMI

  • external monitor support

  • Express Card slot

  • various custom buttons

  • resume from suspend

  • USB-3.0 (I’m not even certain my wife’s Lenovo X220 has USB-3.0, as purportedly some X220’s have this, and some do not)

  • temperature sensors
    [/size]

I installed the excellent script ‘updategrub’ and ran its application ‘findgrub’ . I find its output quite educational and useful for understanding what one has in place wrt code on the MBR in various partitions.

My wife’s Lenovo X220 now has this in place, and it clearly shows that the MBR was not touched by the openSUSE installer, given the settings that I tuned:


Find Grub Version 3.5.1 - Written for openSUSE Forums

 - reading MBR on disk /dev/sda                       ...
 - searching partition /dev/sda1      (NTFS)          ... --> Windows7/Vista Loader found in /dev/sda1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can add the following entry to /boot/grub/menu.lst :

###Don't change this comment - YaST2 identifier: Original name: WindowsBootLoader###
title Windows on /dev/sda1
    rootnoverify (hd0,0)
    chainloader +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 - searching partition /dev/sda2      (NTFS)          ... --> Windows7/Vista Loader found in /dev/sda2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can add the following entry to /boot/grub/menu.lst :

###Don't change this comment - YaST2 identifier: Original name: WindowsBootLoader###
title Windows on /dev/sda2
    rootnoverify (hd0,1)
    chainloader +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 - searching partition /dev/sda3      (NTFS)          ...umount: /mnt: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

 - reading bootsector  /dev/sda4   *  (Extended)      ... --> Legacy GRUB  found in /dev/sda4   => sda6   0x83 (openSUSE)
 - skipping partition  /dev/sda5      (swap)         
 - reading bootsector  /dev/sda6      (LINUX)         ...
 - reading bootsector  /dev/sda7      (LINUX)         ...

The /dev/sda4 * (note the asterisk) clearly indicates that /dev/sda4 is the boot partition and that the PC will go there to boot the operating system.

Edit: here also is the output of ‘fdisk -l’ :


Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xeee1f7f9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2459647     1228800    7  HPFS/NTFS/exFAT
/dev/sda2         2459648   361418751   179479552    7  HPFS/NTFS/exFAT
/dev/sda3       463818752   488394751    12288000    7  HPFS/NTFS/exFAT
/dev/sda4   *   361418752   463818751    51200000    f  W95 Ext'd (LBA)
/dev/sda5       361420800   365639679     2109440   82  Linux swap / Solaris
/dev/sda6       365641728   405176319    19767296   83  Linux
/dev/sda7       405178368   463818751    29320192   83  Linux

Partition table entries are not in disk order

What is interesting is this Lenovo X220 has a UEFI BIOS, and there are a few forum threads of users struggling to install openSUSE on PCs with a EFI/UEFI BIOS. I’m wondering why I avoided this problem, and I am thinking it might be because I chose not to have the MBR on /dev/sda touched by the openSUSE installer. (Edit: see blog post below about Lenovo X220’s BIOS set to ‘legacy boot’ mode).

The Lenovo X220 UEFI BIOS was set to legacy boot mode. That explains, I think, the mystery.

Looking back at my above statement, given there is a legacy boot mode, I don’t think my MBR selection was relevant to being able to boot this laptop with openSUSE. Rather I think now it was the BIOS setting.

Here is the 1st of 3 pix of my wife’s laptop’s BIOS:
http://thumbnails17.imagebam.com/16740/46528c167394658.jpg](http://www.imagebam.com/image/46528c167394658)
[click on above image for larger view]

clearly, its a UEFI.

But, and here is the BIG but, … Look at the BIOS start up setting. There is a ‘legacy boot mode’ :
http://thumbnails66.imagebam.com/16740/ee139a167394661.jpg](http://www.imagebam.com/image/ee139a167394661)
[click on above image for larger view]

and further, it is set to the Legacy boot mode by default:
http://thumbnails65.imagebam.com/16740/eeeffe167394665.jpg](http://www.imagebam.com/image/eeeffe167394665)
[click on above image for larger view]

I think that may explain part of the mystery ? … although as to exactly what ‘legacy boot mode’ means is not 100% clear to me. But I have a sneaky suspicion that it means that UEFI mode is not being applied in this BIOS, even though it is capable of such.

Ergo my comments that I installed openSUSE-12.1 on a Lenovo with UEFI BIOS is incorrect, or inaccurate at best, as the Lenovo X220 was likely not set to use the UEFI settings.

High Definition videos play back well on openSUSE-12.1 on this Lenovo X220 with Intel Sandybridge graphics.

To test I went to this web site: H.264 Demo Clips | H264info.com and I downloaded:

  • Serenity – 720p “On HD DVD” Trailer
  • Fantastic Four: Rise of the Silver Surfer – 720p Trailer
  • The Hobbit: An Unexpected Journey - H.264 HD 1080p Theatrical Trailer

I was able to play both the 720p and 1080p with vlc packaged by packman packagers. When playing the 720p with vlc I note from top that xorg cpu load was 22% of one cpu, and vlc cpu load 22% of one cpu. When playing the 1080p with vlc I note that xorg cpu load was ~30% of one cpu and vlc load varied, from about 25% to 50% load of one cpu. But the video playback was smooth with sound in sync.

MPlayer was able to play back the 720p after selecting the output driver ’ xv '. xorg cpu load on the 720p video was 20-25% and mplayer cpu load was ~25-30% also. However the 1080p video would NOT play back with that smplayer setting.

Still, I’m impressed to see the 1080p playback on vlc. The resolution of that was 1920x800 and bit rate 7575 kbs

As noted above, this Lenovo X220 variant has a Dual core Intel Core i5-2410M CPU and Intel Sandybridge graphics.

I found information here which improves the power consumption using battery:

http://forum.notebookreview.com/7764851-post181.html

specifically, adding i915.i915_enable_rc6=1 to the kernel command line in the bootloader

Also, adding the following to /etc/modprobe.d/50-thinkpad_acpi.conf

options thinkpad_acpi fan_control=1

and loading the module by the following command as root (i think)

modprobe thinkpad_acpi

Hi swims, thanks for the feedback. Its been well over a month since I last had major access to my wife’s laptop (other than a brief openSUSE-12.2 Milestone1 test). My wife nominally boots to win7 on this laptop, so I typically only have access when she is not home and not using the laptop.

intel i915 driver tuning

I noted with the intel i915 driver loaded the command:


dir /sys/module/i915/parameters/ 

gave the output:


total 0
-rw-r--r-- 1 root root 4096 Feb 20 14:46 enable_hangcheck
-r-------- 1 root root 4096 Feb 20 14:46 fbpercrtc
-rw------- 1 root root 4096 Feb 20 14:46 i915_enable_fbc
-rw------- 1 root root 4096 Feb 20 14:46 i915_enable_rc6
-r-------- 1 root root 4096 Feb 20 14:46 lvds_downclock
-rw------- 1 root root 4096 Feb 20 14:46 lvds_use_ssc
-r-------- 1 root root 4096 Feb 20 14:46 modeset
-rw------- 1 root root 4096 Feb 20 14:46 panel_ignore_lid
-rw------- 1 root root 4096 Feb 20 14:46 powersave
-rw------- 1 root root 4096 Feb 20 14:46 reset
-rw------- 1 root root 4096 Feb 20 14:46 semaphores
-rw------- 1 root root 4096 Feb 20 14:46 vbt_sdvo_panel_type

I noted the command (with root permissions):


cat /sys/module/i915/parameters/i915_enable_rc6 

gave a value of zero.

wrt i915.i915_enable_rc6=1, I note Phoronix have this to state: [Phoronix] Tweaks To Extend The Battery Life Of Intel Linux Notebooks](http://www.phoronix.com/scan.php?page=article&item=intel_i915_power&num=1)

i915.i915_enable_rc6=1 - RC6 was enabled by default for a while, but then it ended up being too buggy for some hardware configuration so it had to be disabled. For affected systems on the current code-base, enabling RC6 can cause GPU hangs. The Intel RC6 feature allows the GPU to enter a lower power state when the GPU is idling.

Following the suggestion you noted from Laptop Forums and Notebook Computer Discussion - View Single Post - Linux on the X220 with the older 3.1.0-1.2 kernel I tried out the boot parameter:


 i915.i915_enable_rc6=1 

and noted that ‘cat /sys/module/i915/parameters/i915_enable_rc6’ then yielded a value of 1.

However I note after updating to the 3.1.9-1.4-desktop kernelm and using the boot code, on one occasion the /sys/module/i915 directory no longer existed if I used that boot parameter, and the PC ended up booting to the lower quality FBDEV graphic driver, instead of the i915 driver, which is totally unsatisfactory. On a few other occasions it worked. Hence it appears occasional random instability could be introduced by this boot code. (I don’t know)

I also noted a Ubuntu thread where using that i915.i915_enable_rc6=1 boot code brought graphic glitches on a Thinkpad X220: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/818830 . The same thread also references a patched kernel as of 9-Feb-12 Index of /~ogasawara/eugeni/rc6 where Ubuntu users can (if they use use the patched kernel) use the i915.i915_enable_rc6=1 boot code.

However the openSUSE kernel may NOT be similarly patched (I don’t even know if it needs such a patch) and hence that i915.i915_enble_rc6=1 boot code may or may not not be sufficiently stable with the latest openSUSE 3.1.9-1.4-desktop kernel on the Lenovo X220. I just do not know.

thinkpad fan control

I also note in /etc/modprobe.d/50-thinkpad_acpi.conf, it states:

A detailed description of the parameters for the ThinkPad ACPI driver can be found

in /usr/src/linux/Documentation/laptops/thinkpad-acpi.txt which is part of the package

‘kernel-source’.

and if one looks in /usr/src/linux/Documentation/laptops/thinkpad-acpi.txt one can see:

NOTE NOTE NOTE: fan control operations are disabled by default for
safety reasons. To enable them, the module parameter “fan_control=1”
must be given to thinkpad-acpi.

So I then added the options line you suggested of :


options thinkpad_acpi fan_control=1

to enable fan control.

I note from ‘lsmod | grep think’ that the thinkpad_acpi module is already loaded. However after rebooting I see no evidence in the /var/log/messages nor dmesg that the ‘options thinkpad_acpi fan_control=1’ entry did anything. I do see warning that :


Feb 20 15:31:01 lenovo-x220 kernel:    24.336905] thinkpad_acpi: setting the hotkey mask to 0x00ffffff is likely not the best way to go about it

where the default line provided by the openSUSE install in /etc/modprobe.d/50-thinkpad-acpi.txt is:


options thinkpad_acpi experimental=1 hotkey=0xffffff

… which makes me think more tuning may be needed if one wished to optimise this.

Thus far the laptop has survived a reboot, although I can’t honestly say if these suggestions are an improvement as I don’t have sufficient access to this laptop to draw any long term comparisons.