Table of Contents

Notes for ThinkPad x200 w/ linux

My notes for running linux on the ThinkPad x200. Mine is model NR35NGE, 3x USB 2.0, ExpressCard/54 Slot, weight 1.54kg.

notes for Lenovo x200 UltraBase 44C0554: it contains a DisplayPort. DisplayPort→HDMI adapters can be used, but the DisplayPort on the UltraBase is not capable of outputting audio over HDMI. As a workaround, there are adapters available which offer a USB port soundcard to the system, additionally take the DisplayPort output from the UltraBase, and output a HDMI signal with audio.

hardware
first steps
  primary 256M partition for /boot
  primary 256M partition for other linuxs /boot (still unused currently)
  primary 10GB partition for OpenSolaris or FreeBSD, those still require partitions, right?
  extended 
     2gb encrypted swap
     12gb encrypted / for debian

X basic configuration

As of 21.03.2009 X from debian unstable uses the VESA driver by default, thats slow and screen-blanking doesnt work.

# make sure X is not running
X -configure
mv /root/xorg.conf.new /etc/X11/xorg.conf
vi /etc/X11/xorg.conf # make sure Driver "intel" is set in graphic-card section

using the trackball/nipple to scroll websites, current way

xinput list | \
egrep 'TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|PS/2 Generic Mouse' | \
sed 's/.*id=\([0-9]\{1,\}\).*/\1/' | \
while read id ; do
  xinput set-prop $id "Evdev Wheel Emulation" 1
  xinput set-prop $id "Evdev Wheel Emulation Button" 2
  xinput set-prop $id "Evdev Wheel Emulation Timeout" 200
  xinput set-prop $id "Evdev Wheel Emulation Axes" 6 7 4 5 # horiz. and vert. scrolling
  #xinput set-prop $id "Evdev Wheel Emulation Axes" 0 0 4 5 # just vert. scolling
done

using the trackball/nipple to scroll websites, old way 1

ACTION!="add|change", GOTO="xorg_trackpoint_end"
KERNEL!="event*", GOTO="xorg_trackpoint_end"
ENV{ID_PATH}!="platform-i8042-serio-1", GOTO="xorg_trackpoint_end"
ENV{x11_options.EmulateWheel}="1"
ENV{x11_options.EmulateWheelButton}="2"
ENV{x11_options.XAxisMapping}="6 7"
ENV{x11_options.Emulate3Buttons}="0"
LABEL="xorg_trackpoint_end"

using the trackball/nipple to scroll in websites, old way 2

<match key="info.product" string="TPPS/2 IBM TrackPoint">
 <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
 <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
 <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
 <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

using the 2 keys next to cursor-keys

Use this if you dont want to use the 2 keys next ot the cursor keys, i.e. to jump to other virtual screens.

Note: This is no longer needed for xorg-installasions as of 2009. Those mostly offer the keys automatically, so you have just to configure your windowmanager appropriately.

xev         # select the window that gets created and hit the keys after each other to get their keycodes. here 234 and 233
xmodmap -pk # shows current mappings
xmodmap -e 'keycode 233 = THORN'
xmodmap -e 'keycode 234 = Oslash'
            # those commands now maps keysyms to our keys, use keysyms you do not usually
WPrefs      # this is the utilits windowmaker uses to assign actions. Go to 'change keyboard shortcuts', select your action
            # (for me its switch to next/previous workspace), then 'capture' and hit the key. save, and the keys have their
            # new assignment.
            # execute the 2 assignment-xmodmap-calls in ~/.xinitrc or ~/.xsession, or read on .xmodmaprc in 'man xmodmap'

automatic detection/modesetting for external monitor

I use a external 24“ monitor attached to the ultrabase dockingstation. X detects the DisplayPort-output as HDMI-2, from there i use a cable to the DVI-interface of the monitor. This script is run upon userlogin from xdm.

cat >>~/.xsession <<EOT
# disable internal monitor on rhel if external monitor available
if [[ -n $(xrandr | grep '^HDMI2 connected' ) ]]; then
                echo "HDMI2 connected was detected.">/tmp/xsessionlog
                xrandr --output LVDS1 --off
                xrandr --output HDMI1 --auto
                xrandr --output HDMI2 --mode 1920x1080
fi
EOT

using a TV as output besides the internal screen

# this places the TV output below the virtual screens running windowmanager
xrandr --output HDMI1 --mode 1920x1080 --below LVDS1

# pavucontrol can switch the audiooutput into the TV instead of internal speaker
sudo yum -y install pavucontrol

Tuning LED brightness

yum -y install xbacklight
xbacklight -inc 10%
xbacklight -dec 10%

3G UMTS card

# get udev.tar.gz from pharscape.org
apt-get install libusb-dev ppp
cd hso_udev
CC=/usr/bin/gcc-4.4 make
make install
apt-get install wvdial
cat >/etc/wvdial.conf <<EOT
[Dialer Defaults]
Modem = /dev/ttyHS3
Phone = *99***1#
Username = t-mobile
Password = t-mobile
Dial Command = ATDT
New PPPD
Init2 = AT+CPIN=1234
Init3 = AT+COPS=0
Init4 = AT+CGDCONT=1,"ip","internet.t-mobile.de"
Init5 = AT$QCPDPP=1,1,"t-mobile","t-mobile"
Init6 = AT_OWANCALL=1,1,0
Modem Type = Analog Modem
EOT
# replace 1234 with your pin, change providersettings. then start 'wvdial' to dial in

wlan

using wlan: basics
using wlan: ad-hoc mode
ifconfig wlan0 down
ifconfig wlan0 1.0.0.1 netmask 0xffffff00
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 key 1234567890
iwconfig wlan0 channel 1
iwconfig wlan0 essid tester
ifconfig wlan0 up
devicesection in kismet.conf
source=iwl4965,wlan0,iwlagnsource
enablesources=iwlagnsource

kernelbootline

fan-control

By default the fan here tunes up when cpus get hot, but do not tune back later. One can control this manually (risking heat-damages) or employ scripts to tune the fan up/down. None of the BIOS/firmware updates fixed the issue for me, 3.22-1.07 was latest.

# activate manual fan-control
echo 'options thinkpad_acpi hotkey=enable,0xffffbf experimental=1 fan_control=1' \
   >>/etc/modprobe.d/thinkpad_acpi.modprobe.conf
# then after reloading the module with those options, lets tune the fan up for example:
echo 'level 5' >/proc/acpi/ibm/fan

bios-update w/o windows

Lenovo is providing an option for bios-update with windows-binaries, since i am not running windows this wont work here. They also provide a cdrom-iso which i cannot boot with a usb-cdrom since i dont own one.

Notes for ThinkPad x200 w/ FreeBSD