The IBM Thinkpad X31 is a wonderful little laptop which contains everything you need for your everyday work, and even some gaming, if you tweak things a little. The X31 is rock solid, light (3.7 lbs), and nowadays very cheap. The only drawback is the lack of internal optical drive.You can see the specs of the X31 on [http://www.thinkwiki.org/wiki/Category:X31 ThinkWiki], a wonderful resource with additional informations.

+

The IBM Thinkpad X31 is a wonderful little laptop which contains everything you need for your everyday work, and even some gaming, if you tweak things a little. The X31 is rock solid, light (3.7 lbs), and nowadays very cheap. The only drawback is the lack of internal optical drive. You can see the specs of the X31 on [http://www.thinkwiki.org/wiki/Category:X31 ThinkWiki], a wonderful resource with additional information.

==Installation==

==Installation==

A basic Arch Linux installation will do just fine for about everything, so I won't talk about sound or other basic stuff. No custom kernel needed. However, you will need the following particular packages:

A basic Arch Linux installation will do just fine for about everything, so I won't talk about sound or other basic stuff. No custom kernel needed. However, you will need the following particular packages:

To hibernate using [[pm-utils]] (tested with kernel 2.6.37), you have to adjust some screws of the default setup. Doing this, hibernation works flawlessly. You have to setup [[pm-utils]] first. If it's working out of the box, don't read further.

+

To hibernate using [[pm-utils]] (tested with kernel 2.6.37), you have to adjust some screws of the default setup. Doing this, hibernation works flawlessly. You have to setup [[pm-utils]] first. If it's working out of the box, do not read further.

Don't forget to install ''radeontool'' from the AUR, as it's needed to turn off the lcd backlight.

Don't forget to install ''radeontool'' from the AUR, as it's needed to turn off the lcd backlight.

Line 22:

Line 22:

Append the following to your '''kernel''' line in grub's config:

Append the following to your '''kernel''' line in grub's config:

−

{{File|name=/boot/grub/menu.lst|content=<nowiki>

+

{{hc|/boot/grub/menu.lst|2=<nowiki>

nomodeset acpi_sleep=nonvs

nomodeset acpi_sleep=nonvs

</nowiki>}}

</nowiki>}}

−

*nomodeset will turn off kernel modesetting, which tries to automatically handle the resolution during boot. Take a look at [[http://wiki.sugarlabs.org/go/Nomodeset]].

+

*nomodeset will turn off kernel modesetting, which tries to automatically handle the resolution during boot. Take a look at [http://wiki.sugarlabs.org/go/Nomodeset].

−

*acpi_sleep=nonvs is a workaround, see [[Pm-utils#Troubleshooting]] for detailed information.

+

*acpi_sleep=nonvs is a workaround, see [[Pm-utils#Reboot_instead_of_resume_from_suspend]] for detailed information.

==Xorg and direct rendering==

==Xorg and direct rendering==

Line 34:

Line 34:

$ lspci | grep Mobility

$ lspci | grep Mobility

−

Here is a minimal {{Filename|xorg.conf}}, optimized for performance:

+

Here is a minimal {{ic|xorg.conf}}, optimized for performance:

−

{{File|name=/etc/X11/xorg.conf|content=

+

{{hc|/etc/X11/xorg.conf|

Section "ServerFlags"

Section "ServerFlags"

Option "AutoAddDevices" "False"

Option "AutoAddDevices" "False"

Line 60:

Line 60:

}}

}}

−

{{Note|This configuration disables compositing to improve performance. If you need this feature, set {{Codeline|Composite}} to {{Codeline|Enable}}. Also, if you want to use [[Xorg Input Hotplugging]], set {{Codeline|AutoAddDevices}} to {{Codeline|true}}.}}

+

{{Note|This configuration disables compositing to improve performance. If you need this feature, set {{Ic|Composite}} to {{Ic|Enable}}. Also, if you want to use [[Xorg Input Hotplugging]], set {{Ic|AutoAddDevices}} to {{Ic|true}}.}}

===Rovclock===

===Rovclock===

Line 78:

Line 78:

If you want to use an external screen for a presentation or as an extended desktop, you can use [[xrandr]].

If you want to use an external screen for a presentation or as an extended desktop, you can use [[xrandr]].

−

For an extended desktop, you should first add one line in your {{Filename|/etc/x11/xorg.conf}} configuration file in the {{Codeline|SubSection "Display"}} area:

+

For an extended desktop, you should first add one line in your {{ic|/etc/x11/xorg.conf}} configuration file in the {{Ic|SubSection "Display"}} area:

Before:

Before:

Line 100:

Line 100:

xrandr --output VGA-0 --right-of LVDS

xrandr --output VGA-0 --right-of LVDS

−

To find the exact name of the monitors and the maximum resolution that you set up in the configuration file, you can type just {{Codeline|xrandr}} without arguments.

+

To find the exact name of the monitors and the maximum resolution that you set up in the configuration file, you can type just {{Ic|xrandr}} without arguments.

You can add this command to your {{Filename|/etc/rc.local}} to make the undervolting permanent.

+

You can add this command to your {{ic|/etc/rc.local}} to make the undervolting permanent.

===Modprobe===

===Modprobe===

Create the following file:

Create the following file:

−

{{File|name=/etc/modprobe.d/powersave.conf|content=<nowiki>

+

{{hc|/etc/modprobe.d/powersave.conf|2=<nowiki>

options usbcore autosuspend=1

options usbcore autosuspend=1

options ipw2100 associate=0

options ipw2100 associate=0

−

options snd_ac97_codec power_save=1

options thinkpad-acpi experimental=1 fan_control=1

options thinkpad-acpi experimental=1 fan_control=1

</nowiki>}}

</nowiki>}}

−

The three first lines put some of your devices in power-saving mode, respectively the USB ports, the wireless card and the sound card. Note that you need the last line in order to control your fan speed (see above).

+

The three first lines put some of your devices in power-saving mode, respectively the USB ports, and the wireless card. Note that you need the last line in order to control your fan speed (see above).

+

+

See [[power saving]] for more details.

===Powertop===

===Powertop===

Line 146:

Line 147:

# pacman -S powertop

# pacman -S powertop

−

And run it while on battery power.

+

And run it while on battery power. See [[Powertop]] for more information.

===Hard drive dilemma===

===Hard drive dilemma===

Line 156:

Line 157:

# hdparm -B 254 /dev/sda

# hdparm -B 254 /dev/sda

−

Put it in {{Filename|/etc/rc.local}} to modify it at boot time.

+

Put it in {{ic|/etc/rc.local}} to modify it at boot time.

==ACPI and Hardware-related==

==ACPI and Hardware-related==

Line 162:

Line 163:

===Fan-control===

===Fan-control===

−

You can use a script from [http://www.thinkwiki.org/wiki/ThinkWiki ThinkWiki] to considerably lower your CPU temperature. Simply download it from [http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol&action=raw&ctype=application/octet-stream here], rename it to {{Filename|tp-fancontrol}}, and run:

+

You can use a script from [http://www.thinkwiki.org/wiki/ThinkWiki ThinkWiki] to considerably lower your CPU temperature. Simply download it from [http://www.thinkwiki.org/index.php?title=Code/tp-fancontrol&action=raw&ctype=application/octet-stream here], rename it to {{ic|tp-fancontrol}}, and run:

# chmod 0755 tp-fancontrol

# chmod 0755 tp-fancontrol

# mv tp-fancontrol /usr/bin

# mv tp-fancontrol /usr/bin

−

To run the script at each boot, add this line to your {{Filename|/etc/rc.local}}:

+

To run the script at each boot, add this line to your {{ic|/etc/rc.local}}:

tp-fancontrol -d

tp-fancontrol -d

−

Also, I suggest changing the first maximum temperature threshold (the CPU one) to 55. Just edit {{Filename|/usr/bin/tp-fancontrol}}, the file is self-explanatory.

+

Also, I suggest changing the first maximum temperature threshold (the CPU one) to 55. Just edit {{ic|/usr/bin/tp-fancontrol}}, the file is self-explanatory.

===thinkpad_acpi and tp_smapi kernel modules===

===thinkpad_acpi and tp_smapi kernel modules===

Line 183:

Line 184:

If you have the Cisco neta504 wifi card, it's a bit tricky to use the wpa encryption with it.

If you have the Cisco neta504 wifi card, it's a bit tricky to use the wpa encryption with it.

−

Firstofall, remove and blacklist the airo and the airo_cs modules in your {{Filename|/etc/rc.conf}}

to {{Filename|/etc/acpi/events/soundkey}}, create the following file and make it executable:

+

to {{ic|/etc/acpi/events/soundkey}}, create the following file and make it executable:

−

{{File|name=/etc/acpi/soundkey.sh|content=<nowiki>

+

{{hc|/etc/acpi/soundkey.sh|<nowiki>

#!/bin/bash

#!/bin/bash

Line 236:

Line 239:

echo enable,0xffffffff >/proc/acpi/ibm/hotkey

echo enable,0xffffffff >/proc/acpi/ibm/hotkey

−

to {{Filename|/etc/rc.local}} or somewhere similar for the events to be recognized.

+

to {{ic|/etc/rc.local}} or somewhere similar for the events to be recognized.

Revision as of 01:08, 24 October 2012

The IBM Thinkpad X31 is a wonderful little laptop which contains everything you need for your everyday work, and even some gaming, if you tweak things a little. The X31 is rock solid, light (3.7 lbs), and nowadays very cheap. The only drawback is the lack of internal optical drive. You can see the specs of the X31 on ThinkWiki, a wonderful resource with additional information.

Installation

A basic Arch Linux installation will do just fine for about everything, so I won't talk about sound or other basic stuff. No custom kernel needed. However, you will need the following particular packages:

Hibernation

To hibernate using pm-utils (tested with kernel 2.6.37), you have to adjust some screws of the default setup. Doing this, hibernation works flawlessly. You have to setup pm-utils first. If it's working out of the box, do not read further.

Don't forget to install radeontool from the AUR, as it's needed to turn off the lcd backlight.

If your X31 freezes during hibernation or just reboots instead of resume, when you power on again, this might help you:

Append the following to your kernel line in grub's config:

/boot/grub/menu.lst

nomodeset acpi_sleep=nonvs

nomodeset will turn off kernel modesetting, which tries to automatically handle the resolution during boot. Take a look at [1].

Note: This configuration disables compositing to improve performance. If you need this feature, set Composite to Enable. Also, if you want to use Xorg Input Hotplugging, set AutoAddDevices to true.

Rovclock

You can also overclock your graphic card. As far as I know, there is no real drawback, but you can play it safe and only use it while running a game or compiz or any application using your graphic card:

rovclock -c 220 -m 210

Use this command to get back to default settings:

rovclock -c 144 -m 144

If you want to enable it permanently, add the first command in xprofile.

If, on the contrary, you barely use your graphic card, you can lower both power usage and temperature slightly by underclocking your graphic card at boot by adding this command to xprofile:

rovclock -c 90 -m 100

Dual Screen

If you want to use an external screen for a presentation or as an extended desktop, you can use xrandr.
For an extended desktop, you should first add one line in your /etc/x11/xorg.conf configuration file in the SubSection "Display" area:

The numbers are the total rectangular resolution that you need to use. In this case, I'm using the internal 1024x768 screen and an external 1280x1024 screen on the right. The total resolution is 1024+1280=2304 pixels large and 1024>768=1024 pixels height.

Note that in 24 bits with this option, the performance is affected for 3D drawing, so you may need to comment it and use only one screen when you need the graphical power.

Then restart your X server. You can issue this command in a shell:

xrandr --output VGA-0 --right-of LVDS

To find the exact name of the monitors and the maximum resolution that you set up in the configuration file, you can type just xrandr without arguments.

Powersaving

Laptop-mode

This will put your screen brightness to the minimum level when on battery and restore it to maximum when on ac power:

It will create scripts, executed by the laptop-mode daemon when switching the power source, that change the brightness of your screen using the thinkpad_acpi module.

Undervolting

The X31 CPUs can be undervolted, which means they will offer you the same performance, but with more battery life and a cooler laptop. From personal experience, my CPU temperature,during 100% activity, dropped by 15-20°C just by using this patch. This is extremely easy using the linux-phc patch, but only if you know the proper values to give the CPU. Informations on how to find them is available here or here. I know it can be hard to find your own values, so here is a table were you can indicate what are the good values for each of the X31 CPUs:

Pentium-m 1600MHz : 34 26 18 12 8 5

Warning: Your computer may freeze once a month because of those values. If you find more stable ones, please indicate them.

download the neta504 driver for windows and unpack it (Be sure that you have unpacked the whole driver !) Then run :

# ndiswrapper -i /path/to/your/dir/netA504.inf

Save the ndiswrapper conf file :

# ndiswrapper -m
# ndiswrapper -ma
# ndiswrapper -mi

Now you can add to your kernel the module :

# modprobe ndiswrapper

and voilà ! I've tried this with wicd and it works flawlessly !

Audio keys

To have an on-screen Display for volume change or thinklight activation you can use Tpb: ThinkPad_OSD. The audio volume up/down keys will change audio volume independently from ALSA/OSS mixer. This works quite well, so try it out.

To enable the audio keys interfacing with ALSA, add:

event=ibm/hotkey HKEY 00000080 *
action=/etc/acpi/soundkey.sh %e

to /etc/acpi/events/soundkey, create the following file and make it executable: