Installing Gentoo on a ThinkPad X60 Tablet

From ThinkWiki
Revision as of 15:16, 4 September 2007 by Raller (Talk | contribs) (Gentoo General)
Jump to: navigation, search

Gentoo General

When installing gentoo make shure to use the suspend2-sources instead of the gentoo-sources, and that the USE flags are set correctly. In /etc/make.conf:

VIDEO_CARDS="i810 vesa"
INPUT_DEVICES="keyboard mouse wacom"
# X60
USE="$USE acpi fbsplash hdaps"

Now you can emerge the suspend2-sources, which will enable the nice splash when booting the machine.

emerge suspend2-sources

Some general apps are needed, these are installed:

emerge thinkpad
echo "thinkpad" >> /etc/modules.autoload.d/kernel-2.6

Sound

In the kernel configuration:

Device Drivers  --->
 Sound  --->
  Advanced Linux Sound Architecture  --->
   PCI devices  --->
    <*> Intel HD Audio

Now emerge alsa-utils and add alsasound to the default runlevel:

emerge -av alsa-utils
rc-update add alsasound default
/etc/init.d/alsasound start

Unmute the sound using alsamixer by pressing the m key on the Master and PCM sliders (MM=Muted / 00=Not muted)

Display

In the kernel configuration:

Device Drivers  --->
 Character devices  --->
  <*> Direct Rendering Manager
   <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver)  --->

Now run xorgcfg which should start smoothly. Do your personal changes (none), and save the files to their default location. Edit /etc/X11/xorg.conf and add the following lines:

Section "dri"
   Mode 0666
EndSection

Now for the rotation to work, we need to emerge some stuff, and make some editing. First, emerge some apps (note: wee need linuxwacom >= 0.7.8)

echo "x11-drivers/linuxwacom" >> /etc/portage/package.keywords
emerge linuxwacom sudo xhost xrandr

Get the rotate script from ref. A, and make some adjustments:

cd /usr/bin
wget http://luke.no-ip.org/x60tablet/examples/rotate
chmod +x rotate
sed "s/cursor/Cursor/" -i rotate
sed "s/stylus/Stylus/" -i rotate
sed "s/eraser/Eraser/" -i rotate
sed 's/"%s set %s Rotate %s"/"sudo su -c \\"DISPLAY=:0.0 %s set %s Rotate %s\\""/' -i rotate
sed "s/'normal': 'NONE', 'left': 'CCW', 'right': 'CW', 'inverted': 'HALF'/'normal': '0', 'left': '2', 'right': '1', 'inverted': '3'/" -i rotate

Put yourself into the wheel group, and setup sudo to make you run xsetwacom without password.

TODO: xhost +

Input

Pen

In the kernel configuration:

Device Drivers  --->
 Input device support  --->
  <*> Event interface
  [*] Miscellaneous devices  --->
   <*> User level driver support
 USB support  --->
  <*> Wacom Intuos/Graphire tablet support

Emerge setserial;

emerge setserial

and add the following (magic) line to /etc/conf.d/local.start:

setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig

Now add the following lines to your xorgcfg generated /etc/X11/xorg.conf:

Section "InputDevice"
   Identifier  "Cursor"
   Driver      "wacom"
   Option      "Device" "/dev/ttyS0"
   Option      "Type" "cursor"
   Option      "ForceDevice" "ISDV4"
EndSection
Section "InputDevice"
   Identifier  "Stylus"
   Driver      "wacom"
   Option      "Device" "/dev/ttyS0"
   Option      "Type" "stylus"
   Option      "ForceDevice" "ISDV4"
EndSection
Section "InputDevice"
   Identifier  "Eraser"
   Driver      "wacom"
   Option      "Device" "/dev/ttyS0"
   Option      "Type" "eraser"
   Option      "ForceDevice" "ISDV4"
EndSection

And the following three lines in the end of the ServerLayout section:

InputDevice    "Cursor" "SendCoreEvents"
InputDevice    "Stylus" "SendCoreEvents"
InputDevice    "Eraser" "SendCoreEvents"

TODO: xournal

Touch Screen

According to ref. A, this doesn't work.

Trackpoint

Works.

Special keys

Keys On The Monitor

I have currently managed to map the following buttons: Esc, up, down, left, right, center (enter). They are mapped using setkeycodes. The commands can be inserted into /etc/conf.d/local.start like the following:

# Esc button
setkeycodes 6b 1
# Up (used as Page Up)
setkeycodes 71 104
# Down (used as Page Down)
setkeycodes 6f 109
# Left (used as Up)
setkeycodes 6e 105
# Right (used as Down)
setkeycodes 6d 106
# Center (used as Enter)
setkeycodes 69 28

Alternative keycodes can be found for other mappings at ref. B

Fingerprint Reader

This actually is surprisingly easy to make work:) Just emerge thinkfinger >= 0.3;

echo "sys-auth/thinkfinger" >> /etc/portage/package.keywords
emerge thinkfinger

and add the following line in /etc/pam.d/system-auth:

auth       sufficient   pam_thinkfinger.so

The first section in the file should now look like the following:

auth       required     pam_env.so
auth       sufficient   pam_thinkfinger.so
auth       sufficient   pam_unix.so try_first_pass likeauth nullok

All left is to read your fingerprint for your user. Run tf-tool --add-user <login>, then reboot and see if it works. If using gdm, it should work smoothly.

Network

Ethernet

In the kernel configuration:

Device Drivers  --->
 Network device support  --->
  Ethernet (1000 Mbit)  --->
   <*> Intel(R) PRO/1000 Gigabit Ethernet support

Configure the ethernet card in /etc/conf.d/net:

config_eth0="dhcp"
eth0_dhcpcd="-t 4"

Wireless

Note: Make sure that the hardware disable-switch isn't disabled - it is placed at the front/bottom of the laptop (don't make the same mistake as i did!)

In the kernel configuration:

Device Drivers  --->
 Network device support  --->
  Wireless LAN (non-hamradio)  --->
   [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
Networking  --->
 <*> Generic IEEE 802.11 Networking Stack
  <*> IEEE 802.11i CCMP support
  <*> IEEE 802.11i TKIP encryption

Now, emerge ipw3945, wireless-tools > 22 and wpa_supplicant, and add ipw3945d to the default runlevel by issuing:

echo "net-wireless/wireless-tools" >> /etc/portage/package.keywords
emerge ipw3945 wireless-tools wpa_supplicant
rc-update add ipw3945d default
/etc/init.d/ipw3945d start

Configure the wireless card in /etc/conf.d/net:

config_eth1="dhcp"
eth1_dhcpcd="-t 4"
eth1_modules="wpa_supplicant"
wpa_supplicant_eth1="-Dwext"

If you are a kismet user it should be configured as follows in /etc/kismet.conf:

suiduser=<login>
source=ipw3945,eth1,ipw3945

VPN

To come...

Bluetooth

In the kernel configuration:

Networking  --->
 <*> Bluetooth subsystem support  --->
  <*> L2CAP protocol support
  <*> RFCOMM protocol support
   [*] RFCOMM TTY support
      Bluetooth device drivers  --->
       <*> HCI USB driver

Now emerge bluez-utils;

emerge bluez-utils

and configure your display name in the device section in /etc/bluetooth/hcid.conf:

name "Your Displayname"

External Connections

ACPI

Just emerge the acpi daemon:

emerge acpid
rc-update add acpid default
/etc/init.d/acpid start

Extra Features

History

5. July - Initial release.

24. July - Added Gentoo General, Sound, Some kernel configuration for the 2.6.21 kernel and new keycodes.

2. September - All sections are has been polished, and should work properly. Only the last ones are missing.

External Sources

A) Linux on the X60 Tablet

B) [1] Keycode Table