XO-1/Touchpad/Issues: Difference between revisions
(add #olpc-devel large jump capture sequence, feel free to move) |
m (moved Three known touchpad issues to XO-1/Touchpad/Issues: so many models these days, but this page applies only to one.) |
||
(23 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
<noinclude>[[Category:Touchpad]]</noinclude> |
|||
{{G1G1 Support FAQ}} |
{{G1G1 Support FAQ}} |
||
__NOTOC__ |
__NOTOC__ |
||
Note: This information is relevant for early production XO-1 units with ALPS touchpads, identified as "CL1" during early boot. |
|||
⚫ | Occasionally, a laptop's touchpad will behave abnormally. This behavior includes the pointer jumping to a corner of the screen, or moving wildly. On current software ([[Release notes|release 8.2 or better]], [[USB upgrade|consider upgrading!]]), the touchpad will be automatically recalibrated when this happens. You should hold your fingers away from the touchpad when this happens. |
||
⚫ | Occasionally, a laptop's touchpad will behave abnormally. This behavior includes the pointer jumping to a corner of the screen, or moving wildly. On current software ([[Release notes|release 8.2 or better]], [[USB upgrade|consider upgrading!]]), the touchpad will be automatically recalibrated when this happens. You should hold your fingers away from the touchpad when this happens. [[Touchpad_driver_changes|Later Touchpad driver changes]] further reduce this problem. |
||
A recalibration of the touchpad can be manually invoked using the [[Recalibrating Touchpad|"four-finger salute"]] (Escape + Frame + Right Arrow + Fn, with Fn pressed last). Work-arounds in extreme cases include using a common USB mouse with the laptop. |
A recalibration of the touchpad can be manually invoked using the [[Recalibrating Touchpad|"four-finger salute"]] (Escape + Frame + Right Arrow + Fn, with Fn pressed last). Work-arounds in extreme cases include using a common USB mouse with the laptop. |
||
=If using older software/hardware= |
|||
While not all issues have been resolved in 2009, especially when using older software/hardware from 2007 and earlier in 2008, three touchpad issues stood out: |
|||
== The pointer jumps to the bottom-right corner of the screen == |
|||
This can happen right after you touch the touchpad. Rebooting often helps (see <trac>2804</trac>). |
|||
The [[Recalibrating Touchpad|four-finger salute]] (Escape + Frame + Right Arrow + Fn, with Fn pressed last) usually fixes this. |
|||
==The pointer moves around by itself== |
|||
Instead of reliably following your finger, the pointer can move around on its own, sometimes when a hand is close to it. The [[Recalibrating Touchpad|four-finger salute]] (Escape + Frame + Right Arrow + Fn, with Fn pressed last) usually fixes this. Automatic recalibration on reboot may also fix the problem. |
|||
== Mouse moves mostly vertically == |
|||
If the touchpad works fine vertically but doesn't function horizontally (<trac>5575</trac>), it is likely due to damaged touchpad wiring. This was corrected and is very rarely seen in recently produced laptops. |
|||
=Reducing the impact= |
|||
In addition to forcing a recalibration yourself, using the [[Recalibrating Touchpad|four-finger salute]], the kernel will sometimes notice a recalibration is necessary, and commence the process automatically. In releases 8.2 and later it's possible to adjust some parameters which affect how, and how quickly, the kernel will tell the touchpad to recalibrate. This script will sets the most pertinent of the mouse driver parameters to values that make the calibration take less time -- meaning your fingers don't have to be off the pad as long before you can start using it again. Unfortunately, this needs to be run as root (sudo), so you can't just put it into a .xsession or .bashrc file. |
|||
<pre> |
|||
#!/bin/sh |
|||
# the available touchpad parameters (the ones pertinent to recalibration) |
|||
# are as follows: |
|||
# |
|||
# recalib_delta: packets containing a delta this large will |
|||
# cause a recalibration. (int) |
|||
# jumpy_delay: delay (ms) before recal after jumpiness detected (int) |
|||
# spew_delay: delay (ms) before recal after packet spew detected (int) |
|||
# recal_guard_time: interval (ms) during which recal will be |
|||
# restarted if packet received (int) |
|||
# post_interrupt_delay: delay (ms) before recal after recal |
|||
# interrupt detected (int) |
|||
# autorecal: enable recalibration in the driver? (int) |
|||
# |
|||
p=/sys/module/psmouse/parameters |
|||
if [ $(whoami) != root ] |
|||
then |
|||
echo must be root >&2 |
|||
exit 1 |
|||
fi |
|||
( echo Before: ; grep ^ $p/* ) >/tmp/cur_psmouse_params |
|||
if [ "$1" = show ] |
|||
then |
|||
cat /tmp/cur_psmouse_params |
|||
exit |
|||
fi |
|||
echo Setting mouse parameters: |
|||
# all values in milliseconds |
|||
echo 200 >$p/jumpy_delay |
|||
echo 200 >$p/spew_delay |
|||
echo 400 >$p/recal_guard_time |
|||
echo 100 >$p/post_interrupt_delay |
|||
( echo After: ; grep ^ $p/* ) | diff /tmp/cur_psmouse_params - |
|||
exit |
|||
</pre> |
|||
= Large Jump Logging Technique = |
|||
The following highly technical sequence is for developers with build 802 on XO-1 C2 units, which lets them capture touchpad events in more detail ... it can be deployed to children with the instruction "when the touchpad goes nuts, please press the key to the left of the frame key, this will record data that we will use to analyse the problem, and you'll hear a short beep when it is done.". |
|||
<pre> |
|||
# make a script that records the kernel messages to a file |
|||
cat << EOF > /usr/local/bin/grab-touchpad-log |
|||
#!/bin/sh |
|||
dmesg | gzip - > /home/olpc/dmesg.\`date +%s\`.gz |
|||
speaker-test --test=sine --frequency=800 & |
|||
PID=\$! |
|||
sleep 0.1 |
|||
kill \$PID |
|||
EOF |
|||
chmod +x /usr/local/bin/grab-touchpad-log |
|||
# configure kernel to record touchpad events on next boot and now |
|||
echo 'echo 1 > /sys/module/psmouse/parameters/tpdebug' >> /etc/rc.local |
|||
echo 1 > /sys/module/psmouse/parameters/tpdebug |
|||
# set up the matchbox window manager to run the script when the key |
|||
# to the left of the frame key is hit |
|||
echo "XF86Messenger=!/usr/local/bin/grab-touchpad-log" \ |
|||
>> /usr/share/sugar/data/kbdconfig |
|||
</pre> |
Latest revision as of 04:50, 3 February 2012
Image:Support-banner-square.png|173px|community support pages rect 0 0 135 204 [1] rect 135 0 345 204 Support FAQ rect 0 205 135 408 [2]
- Comment : there's some whitespace here:
rect 135 205 345 408 Other support
- maybe desc none is better. testing.
desc none
</imagemap>
Note: This information is relevant for early production XO-1 units with ALPS touchpads, identified as "CL1" during early boot.
Occasionally, a laptop's touchpad will behave abnormally. This behavior includes the pointer jumping to a corner of the screen, or moving wildly. On current software (release 8.2 or better, consider upgrading!), the touchpad will be automatically recalibrated when this happens. You should hold your fingers away from the touchpad when this happens. Later Touchpad driver changes further reduce this problem.
A recalibration of the touchpad can be manually invoked using the "four-finger salute" (Escape + Frame + Right Arrow + Fn, with Fn pressed last). Work-arounds in extreme cases include using a common USB mouse with the laptop.