Lenovo ThinkPad X61T

From ArchWiki

Jump to: navigation, search


Image:Tango-document-new.png This article is a stub.
It may be confusing, not contain enough information, or be a placeholder for an article to come. People are invited to expand it to full article status and remove this box.

Contents

[edit] Installation

As the x61t is a Core 2 Duo, i'm going to install Arch x86_64 on it.

[edit] Preparation of machine for linux installation

  • make backup of 1st primary partition if possible. this is the recovery tools from lenovo/ibm - do not remove it... with grub you can later set it to be accessible!
  • resize NTFS parition with MS Windows Vista or remove it completely from drive ... make space at the end of harddrive for archlinux (in my case 80gb harddrive 24gb linux / and /home)

[edit] No optical drive installation

As i do not have an optical drive and the x61t has no optical drive itself, the installation was done from an external usb-storage device (harddrive or usb-key).

[edit] Preferred method, IMG files

Since archlinux release 2008.06 archlinux have provided usb images. If you want to install archlinux from an older ISO image please refer to Deprecated/Old method, ISO files

Download Arch's latest installation img from your local mirror. Insert an empty or expendable USB stick and determine its path. Then dd the .img to the USB stick like this:

dd if=archlinux-2008.06-[core_or_ftp]-i686.img of=/dev/sdx

where if= is the path to the img file and of= is your USB device. Make sure to use /dev/sdx and not /dev/sdx1.


Note: This will irrevocably delete all files on your USB stick, so make sure you don't have any important files on the stick before doing this.

Continue with Boot USB harddrive on thinkpad x61t

[edit] Deprecated/Old method, ISO files

[edit] Preparation of Installation medium

  • Requirements
    • packages: util-linux (provides cfdisk), syslinux, dosfstools (provides mkdosfs)
    • running archlinux on a machine to prepare installation medium
    • access to internet
  • use cfdisk to create a primary FAT16 Partition (type=0c) on the usb stick and make it bootable
  • use
mkdosfs /dev/sdXY

to create a file system on the partition and then mount it

mount -t msdos /dev/sdXY /media/installharddrive
  • download ArchLinux installation ISO base from internet and mount it locally:
mount -t iso9660 -o loop /path/to/ArchLinux.iso /media/iso
  • copy content from ISO to the installation harddrive:
cp -ra /media/iso/* /media/installharddrive

and copy isolinux files to root of partition:

cp /media/installharddrive/isolinux/* /media/installharddrive/

then rename isolinux.cfg to syslinux.cfg

mv /media/installharddrive/isolinux.cfg /media/installharddrive/syslinux.cfg 
  • unmount installation harddisk
  • install syslinux to partition
syslinux -s /dev/sdXY

[edit] Boot USB harddrive on thinkpad x61t

Press F12 on the keyboard when you see the Thinkpad logo post screen. Then select the USB key from menu.

[edit] proceed with installation as you wish

see for details Official_Arch_Linux_Install_Guide

[edit] notes on installing the bootloader

As bootloader i have choosen grub. to be able to boot the MS windows paritition as well as the recovery partition of lenovo, i have specified the following sections for grub (/boot/grub/menu.lst):

# Arch Linux
title  Arch Linux
root   (hd0,2)
kernel /boot/vmlinuz26 root=/dev/sda3 ro vga=792 quiet
initrd /boot/kernel26.img
# Arch Linux emergency
title  Arch Linux Fallback
root   (hd0,2)
kernel /boot/vmlinuz26 root=/dev/sda3 ro
initrd /boot/kernel26-fallback.img
# booting "Rescue and Recovery" partition from Lenovo
title Thinkpad Maintenance
unhide (hd0,0)
rootnoverify (hd0,0)
chainloader +1
# Vista
title Thinkpad Windows Vista
hide (hd0,0)
rootnoverify (hd0,1)
chainloader +1

assuming that /dev/sda1 is rescue and recovery from lenovo /dev/sda2 is MS windows /dev/sda3 is archlinux

[edit] Specific Hardware Setup

[edit] Sound

works out of the box - following modules were loaded automatically

[damir@Apollon Arch]$ lsmod | grep snd
snd_seq_oss            32896  0
snd_seq_midi_event      7808  1 snd_seq_oss
snd_seq                55680  4 snd_seq_oss,snd_seq_midi_event
snd_seq_device          7956  2 snd_seq_oss,snd_seq
snd_hda_intel         347940  4
snd_pcm_oss            44576  0
snd_pcm                82568  3 snd_hda_intel,snd_pcm_oss
snd_timer              22536  3 snd_seq,snd_pcm
snd_page_alloc          8720  2 snd_hda_intel,snd_pcm
snd_mixer_oss          16896  1 snd_pcm_oss
snd                    57064  14          
snd_seq_oss,snd_seq,snd_seq_device,snd_hda_intel,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss
soundcore               7968  1 snd

[edit] Ethernet

works out of the box - autoloaded module: e1000

e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

[edit] Firewire

works out of the box

[edit] USB

works out of the box

[edit] Power Management

[edit] suspend machine

pm-suspend

works (keyboard, mouse, stylus, sound, network) with one detail: when in X, the display lamp is not turned on. workaround: ctrl-alt-f1 to switch to vesa frame buffer turns the lamp on and when switching back to ctrl-alt-f7 the X has then the lamp turned on as well. no idea why this happens.

[edit] Wireless network device

get packages

pacman -S iwlwifi iwlwifi-4965-ucode

arch loads the module

iwl4965

and wireless works fine

[edit] Xorg

  • works with xf86-video-intel
  • does NOT work with xf86-video-i810
  • generate xorg.conf with
X -configure

the xorg.conf i'm using can be found here Thinkpad x61t SXGA+ xorg.conf

[edit] Stylus

Is a wacom on serial. install

linuxwacom

then add to xorg.conf

       InputDevice     "stylus" "SendCoreEvents"
       InputDevice     "eraser" "SendCoreEvents"
       InputDevice     "cursor" "SendCoreEvents"
       InputDevice     "touch"  "SendCoreEvents"

to ServerLayout

and

Section "InputDevice"
       Driver "wacom"
       Identifier "stylus"
       Option "Device" "/dev/ttyS0" # SERIAL ONLY
       Option "Type" "stylus"
       Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection
Section "InputDevice"
       Driver "wacom"
       Identifier "eraser"
       Option "Device" "/dev/ttyS0" # SERIAL ONLY
       Option "Type" "eraser"
       Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection
Section "InputDevice"
       Driver "wacom"
       Identifier "cursor"
       Option "Device" "/dev/ttyS0" # SERIAL ONLY
       Option "Type" "cursor"
       Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection
Section "InputDevice"
       Identifier "touch"
       Driver "wacom"
       Option "Device" "/dev/ttyS0" # SERIAL ONLY
       Option "Type" "touch"
       Option "ForceDevice" "ISDV4" # Tablet PC ONLY
       Option "BottomX" "915" # Must set to enable the hole
       Option "BottomY" "950" # screen as a touch screen.
       Option "TopX" "48"     # Without them there is a margin
       Option "TopY" "79"     # of two cm around the edge without input
EndSection

and it works. However please note that the multitouch support is not perfect...

Xorg log tells a little bit more info:

(==) Wacom General ISDV4 tablet speed=9600 maxX=24576 maxY=18432 maxZ=255 resX=2540 resY=2540  tilt=disabled
(==) Wacom device "cursor" top X=0 top Y=0 bottom X=24576 bottom Y=18432
(==) Wacom device "eraser" top X=0 top Y=0 bottom X=24576 bottom Y=18432
(==) Wacom device "stylus" top X=0 top Y=0 bottom X=24576 bottom Y=18432

so this device has 255 sensitivity steps and has a resolution of 2540 x 2540 it tells you also that the screen size is 245.76 mm times 184.32 mm big. if in xorg.conf the DisplaySize is not set by X -configure, you can add the following line in the Monitor section:

DisplaySize       245   185 

this helps some apps to determine the resolution of your monitor ("dpi value") and set the sizes of objects or fonts right (e.g. in the 1:1 mode where something printed should equal something seen on the display)


AUTOMATIC ROTATION (added by bbs) -- for automatic rotation consider the script found here -- thanks to Luke -- this script works well.

please note you must update your handler.sh for the acpi events to properly call this script -- contact unk.nown [at] unix [dot] net -- if you have any questions

[edit] Trackpoint

[edit] Press to Select

Press to Select allows you to tap the control stick which will simulate a left click. You can enable this feature by typing the following in to a terminal (you may need to be root):

echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select 

If you want to enable Press to Select at boot then add the previuos line to /etc/rc.local.

Disable it in a similar manner:

echo -n 0 > /sys/devices/platform/i8042/serio1/press_to_select

[edit] Scrolling

To get the scroll on middle button + trackpoint to work (in all four directions), add these lines to your mouse section:

       Option          "EmulateWheel" "on"
       Option          "Emulate3Buttons" "on"
       Option          "EmulateWheelButton" "2"
       Option          "YAxisMapping" "4 5"
       Option          "XAxisMapping" "6 7"

[edit] Sensitivity & Speed

Adjusting the speed and sensitivity of the TrackPoint requires echoing a value between 0 and 255 into the appropriate file. For example, for a speed of 120 and a sensitivity of 250, type the following into a terminal:

echo -n 120 > /sys/devices/platform/i8042/serio0/serio2/speed 
echo -n 250 > /sys/devices/platform/i8042/serio0/serio2/sensitivity

[edit] SD card reader

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci: SDHCI controller found at 0000:05:00.2 [1180:0822] (rev 21)

not yet tested

[edit] Fingerprint Reader

USB ID 0483:2016

Works fine with the ThinkFinger binary drivers version 0.3. i will include the thinkfinger pkg in [extra].

[edit] CPU Freqency Scaling

Install the package cpufrequtils, add cpufreq to DAEMONS, add acpi_cpufreq to MODULES in /etc/rc.conf and put these lines in your /etc/rc.local:

echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

This will enable ondemand frequency scaling on both cores.

[edit] to be continued

i'm working on this document - that's why it is marked still as stub!

Personal tools