Difference between revisions of "Installing Gentoo on a ThinkPad X60 Tablet"

From ThinkWiki
Jump to: navigation, search
(Gentoo General)
(Gentoo General: suspend2-sources no longer exist. They are now tuxonice-sources.)
 
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
= Gentoo General =
 
= 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 {{path|/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:
 
Some general apps are needed, these are installed:
 
  emerge thinkpad
 
  emerge thinkpad
 
  echo "thinkpad" >> /etc/modules.autoload.d/kernel-2.6
 
  echo "thinkpad" >> /etc/modules.autoload.d/kernel-2.6
 +
 +
TODO:
 +
echo "app-laptop/hdapsd" >> /etc/portage/package.keywords
 +
emerge hdapsd app-laptop/tp_smapi
 +
rc-update add hdapsd default
 +
/etc/init.d/hdapsd start
  
 
= Sound =
 
= Sound =
 +
NOTE: If you get an hda_intel probe error on boot, you have to enable modem support in bios (don't ask why!).
 +
 
In the kernel configuration:
 
In the kernel configuration:
 
  Device Drivers  --->
 
  Device Drivers  --->
Line 45: Line 44:
  
 
Get the rotate script from ref. A, and make some adjustments:
 
Get the rotate script from ref. A, and make some adjustments:
  cd /usr/bin
+
  cd /usr/local/bin
 
  wget http://luke.no-ip.org/x60tablet/examples/rotate
 
  wget http://luke.no-ip.org/x60tablet/examples/rotate
 
  chmod +x rotate
 
  chmod +x rotate
Line 55: Line 54:
  
 
Put yourself into the wheel group, and setup sudo to make you run xsetwacom without password.
 
Put yourself into the wheel group, and setup sudo to make you run xsetwacom without password.
 +
 +
{{HINT|For the compiz-fusion to work you will need to start it like this:
 +
<nowiki>LIBGL_ALWAYS_INDIRECT=true compiz-fusion --replace --indirect-rendering ccp</nowiki>}}
  
 
TODO: xhost +
 
TODO: xhost +
Line 67: Line 69:
 
     <*> User level driver support
 
     <*> User level driver support
 
   USB support  --->
 
   USB support  --->
   <*> Wacom Intuos/Graphire tablet support
+
   < > Wacom Intuos/Graphire tablet support
 +
 
 +
The Wacom Intus/Graphire USB Tablet should not be activated, the X60 Tablet is not an USB device.
  
 
Emerge setserial;
 
Emerge setserial;
Line 73: Line 77:
 
and add the following (magic) line to {{path|/etc/conf.d/local.start}}:
 
and add the following (magic) line to {{path|/etc/conf.d/local.start}}:
 
  setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig
 
  setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig
 +
 +
If you get 'Cannot set serial info: Invalid argument' your kernel may have slightly broken serial support (suspend2-sources-2.6.22-r2, gentoo-sources-2.6.22-r5), this is fixed in gentoo-sources-2.6.22-r9.
 +
 +
{{WARN|Xorg 7.3 works with current linuxwacom (0.7.8-3, 0.7.9-1), but in a strange way. Keep Xorg 7.2 unless you are going to use your pen only as mouse and only in the normal rotation.}}
 +
'''Re to ATTENTION!''' I reply to myself. In the linuxwacom 0.7.8 branch they added the support for the multitouch feature. However this "feature" makes the usage of pen almost impossible (see [http://sourceforge.net/forum/forum.php?thread_id=1777969&forum_id=236872 this forum]). I prepared a patch which removes this feature and wrote an ebuild which can apply this patch: [https://bugs.gentoo.org/show_bug.cgi?id=147537 Bugzilla Bug 147537]. However still I have small problems in Xorg 7.3: [http://sourceforge.net/tracker/index.php?func=detail&aid=1823908&group_id=69596&atid=525124 bug 1823908]
  
 
Now add the following lines to your xorgcfg generated {{path|/etc/X11/xorg.conf}}:
 
Now add the following lines to your xorgcfg generated {{path|/etc/X11/xorg.conf}}:
Line 102: Line 111:
 
  InputDevice    "Eraser" "SendCoreEvents"
 
  InputDevice    "Eraser" "SendCoreEvents"
  
TODO: xournal
+
=== Xournal ===
 +
The ebuild in [http://bugs.gentoo.org/show_bug.cgi?id=143177 Bug 143177] works fine for verion 0.4.1
  
 
== Touch Screen ==
 
== Touch Screen ==
According to ref. A, this doesn't work.
+
 
 +
It works for me from the box. I just unexpectedly discovered that it works. However in the "left" and "right" rotations of the screen the pointer appears approximately 3cm from the touch point. I do not know how to solve this.
 +
 
 +
However it causes a lot of problem so I prepared a sollution (see the reply to attention above: [http://www.thinkwiki.org/wiki/installing_Gentoo_on_a_ThinkPad_X60_Tablet#Pen]).
  
 
== Trackpoint ==
 
== Trackpoint ==
 
Works.
 
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 {{path|/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 ==
 
== Fingerprint Reader ==
Line 144: Line 137:
 
All left is to read your fingerprint for your user. Run tf-tool --add-user <login>, then reboot and see if it works.
 
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.
 
If using gdm, it should work smoothly.
 +
 +
==Thinkpad buttons==
 +
You can enable them in the kernel either built-in or as a module:
 +
 +
Location:                                                            │
 +
  -> Device Drivers                                                  │
 +
    -> Character devices
 +
      <M> /dev/nvram support
 +
 +
In case you chose the module you will need to autoload it since it is not loaded by the udev:
 +
  echo nvram >> /etc/modules.autoload.d/kernel-2.6
 +
 +
By default the /dev/nvram device is configured for root only access. In order to change it permanentely add the corresponding rule to udev. For example I did:
 +
  echo "KERNEL==\"nvram\", GROUP=\"users\"" >> /etc/udev/rules.d/50-local.rules
 +
 +
After that you can either configure them using app-laptop/tpb or KDE user can relay on the KMilo application configurable in the
 +
"Control Center -> System Administration -> IBM Thinkpad Laptop".
  
 
= Network =
 
= Network =
Line 167: Line 177:
 
  Networking  --->
 
  Networking  --->
 
   <*> Generic IEEE 802.11 Networking Stack
 
   <*> Generic IEEE 802.11 Networking Stack
   <*> IEEE 802.11i CCMP support
+
   <M> IEEE 802.11i CCMP support
   <*> IEEE 802.11i TKIP encryption
+
   <M> IEEE 802.11i TKIP encryption
  
 
Now, emerge ipw3945, wireless-tools > 22 and wpa_supplicant, and add ipw3945d to the default runlevel by issuing:
 
Now, emerge ipw3945, wireless-tools > 22 and wpa_supplicant, and add ipw3945d to the default runlevel by issuing:
Line 203: Line 213:
 
and configure your display name in the device section in {{path|/etc/bluetooth/hcid.conf}}:
 
and configure your display name in the device section in {{path|/etc/bluetooth/hcid.conf}}:
 
  name "Your Displayname"
 
  name "Your Displayname"
 +
 +
Now we are ready to start
 +
rc-update add bluetooth default
 +
/etc/init.d/bluetooth start
  
 
= External Connections =
 
= External Connections =
Line 225: Line 239:
  
 
B) [http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html] Keycode Table
 
B) [http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html] Keycode Table
 +
 +
 +
[[Category:Gentoo]]

Latest revision as of 15:08, 10 May 2008

Gentoo General

Some general apps are needed, these are installed:

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

TODO:

echo "app-laptop/hdapsd" >> /etc/portage/package.keywords
emerge hdapsd app-laptop/tp_smapi
rc-update add hdapsd default
/etc/init.d/hdapsd start

Sound

NOTE: If you get an hda_intel probe error on boot, you have to enable modem support in bios (don't ask why!).

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/local/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.

Hint:
For the compiz-fusion to work you will need to start it like this:
LIBGL_ALWAYS_INDIRECT=true compiz-fusion --replace --indirect-rendering ccp

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

The Wacom Intus/Graphire USB Tablet should not be activated, the X60 Tablet is not an USB device.

Emerge setserial;

emerge setserial

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

setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig

If you get 'Cannot set serial info: Invalid argument' your kernel may have slightly broken serial support (suspend2-sources-2.6.22-r2, gentoo-sources-2.6.22-r5), this is fixed in gentoo-sources-2.6.22-r9.

ATTENTION!
Xorg 7.3 works with current linuxwacom (0.7.8-3, 0.7.9-1), but in a strange way. Keep Xorg 7.2 unless you are going to use your pen only as mouse and only in the normal rotation.

Re to ATTENTION! I reply to myself. In the linuxwacom 0.7.8 branch they added the support for the multitouch feature. However this "feature" makes the usage of pen almost impossible (see this forum). I prepared a patch which removes this feature and wrote an ebuild which can apply this patch: Bugzilla Bug 147537. However still I have small problems in Xorg 7.3: bug 1823908

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"

Xournal

The ebuild in Bug 143177 works fine for verion 0.4.1

Touch Screen

It works for me from the box. I just unexpectedly discovered that it works. However in the "left" and "right" rotations of the screen the pointer appears approximately 3cm from the touch point. I do not know how to solve this.

However it causes a lot of problem so I prepared a sollution (see the reply to attention above: [1]).

Trackpoint

Works.

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.

Thinkpad buttons

You can enable them in the kernel either built-in or as a module:

Location:                                                             │
  -> Device Drivers                                                   │
    -> Character devices
     <M> /dev/nvram support

In case you chose the module you will need to autoload it since it is not loaded by the udev:

 echo nvram >> /etc/modules.autoload.d/kernel-2.6

By default the /dev/nvram device is configured for root only access. In order to change it permanentely add the corresponding rule to udev. For example I did:

 echo "KERNEL==\"nvram\", GROUP=\"users\"" >> /etc/udev/rules.d/50-local.rules

After that you can either configure them using app-laptop/tpb or KDE user can relay on the KMilo application configurable in the

"Control Center -> System Administration -> IBM Thinkpad Laptop".

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
  <M> IEEE 802.11i CCMP support
  <M> 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"

Now we are ready to start

rc-update add bluetooth default
/etc/init.d/bluetooth start

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) [2] Keycode Table