Difference between revisions of "Installing Gentoo on a ThinkPad X60 Tablet"
(→External Sources) |
(→Gentoo General: suspend2-sources no longer exist. They are now tuxonice-sources.) |
||
(41 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | = 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: | In the kernel configuration: | ||
Device Drivers ---> | Device Drivers ---> | ||
Line 16: | Line 20: | ||
PCI devices ---> | PCI devices ---> | ||
<*> Intel HD Audio | <*> Intel HD Audio | ||
− | Now emerge | + | Now emerge alsa-utils and add alsasound to the default runlevel: |
− | emerge -av | + | emerge -av alsa-utils |
rc-update add alsasound default | rc-update add alsasound default | ||
/etc/init.d/alsasound start | /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 = | = 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 {{path|/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: | ||
+ | <nowiki>LIBGL_ALWAYS_INDIRECT=true compiz-fusion --replace --indirect-rendering ccp</nowiki>}} | ||
+ | |||
+ | TODO: xhost + | ||
= Input = | = Input = | ||
Line 32: | Line 69: | ||
<*> User level driver support | <*> User level driver support | ||
USB 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 {{path|/etc/conf.d/local.start}}: | ||
setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig | setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig | ||
− | Now add the following lines to your xorgcfg generated xorg.conf: | + | 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}}: | ||
Section "InputDevice" | Section "InputDevice" | ||
Identifier "Cursor" | Identifier "Cursor" | ||
Line 44: | Line 90: | ||
Option "Type" "cursor" | Option "Type" "cursor" | ||
Option "ForceDevice" "ISDV4" | Option "ForceDevice" "ISDV4" | ||
− | |||
EndSection | EndSection | ||
− | |||
Section "InputDevice" | Section "InputDevice" | ||
Identifier "Stylus" | Identifier "Stylus" | ||
Line 54: | Line 98: | ||
Option "ForceDevice" "ISDV4" | Option "ForceDevice" "ISDV4" | ||
EndSection | EndSection | ||
− | |||
Section "InputDevice" | Section "InputDevice" | ||
Identifier "Eraser" | Identifier "Eraser" | ||
Line 67: | Line 110: | ||
InputDevice "Stylus" "SendCoreEvents" | InputDevice "Stylus" "SendCoreEvents" | ||
InputDevice "Eraser" "SendCoreEvents" | InputDevice "Eraser" "SendCoreEvents" | ||
+ | |||
+ | === 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 == | ||
− | + | ||
+ | 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. | ||
− | == | + | == 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 {{path|/etc/pam.d/system-auth}}: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | This actually is surprisingly easy to make work:) Just emerge thinkfinger >= 0.3 and add the following line in {{path|/etc/pam.d/system-auth}}: | ||
auth sufficient pam_thinkfinger.so | auth sufficient pam_thinkfinger.so | ||
Line 100: | Line 133: | ||
auth required pam_env.so | auth required pam_env.so | ||
auth sufficient pam_thinkfinger.so | auth sufficient pam_thinkfinger.so | ||
− | auth sufficient pam_unix.so likeauth nullok | + | 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. | 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 = | = Network = | ||
Line 111: | Line 162: | ||
Ethernet (1000 Mbit) ---> | Ethernet (1000 Mbit) ---> | ||
<*> Intel(R) PRO/1000 Gigabit Ethernet support | <*> Intel(R) PRO/1000 Gigabit Ethernet support | ||
+ | |||
+ | Configure the ethernet card in {{path|/etc/conf.d/net}}: | ||
+ | config_eth0="dhcp" | ||
+ | eth0_dhcpcd="-t 4" | ||
== Wireless == | == 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!) | 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 {{path|/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 {{path|/etc/kismet.conf}}: | ||
+ | suiduser=<login> | ||
+ | source=ipw3945,eth1,ipw3945 | ||
+ | |||
+ | == VPN == | ||
+ | To come... | ||
== Bluetooth == | == 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 {{path|/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 = | = External Connections = | ||
+ | |||
= ACPI = | = ACPI = | ||
+ | Just emerge the acpi daemon: | ||
+ | emerge acpid | ||
+ | rc-update add acpid default | ||
+ | /etc/init.d/acpid start | ||
+ | |||
= Extra Features = | = Extra Features = | ||
= History = | = History = | ||
5. July - Initial release. | 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 = | = External Sources = | ||
A) [http://luke.no-ip.org/x60tablet/ Linux on the X60 Tablet] | A) [http://luke.no-ip.org/x60tablet/ Linux on the X60 Tablet] | ||
+ | |||
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
Contents
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.
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.
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
B) [2] Keycode Table