Mailing List Archive

Lost synaptics touchpad scrolling after kernel upgrade
Hello all,

I upgraded from 2.6.37-gentoo-r4 to 2.6.38-gentoo-r6. I didn't change
anything in the config file, and used the old kernel config to compile
the new kernel. However, when I booted into the new kernel, I found the
scrolling in the touch pad is not working !
If I boot into the older kernel it works fine. I recompiled the
following Xorg drivers under the new kernel :

xf86-input-evdev-2.6.0
xf86-input-mouse-1.7.0
xf86-input-synaptics-1.3.0
xf86-video-fbdev-0.4.2
xf86-video-intel-2.14.0
xf86-video-vesa-2.3.0

I tried to check the correct mouse device using:
cat /dev/input/*

For all the devices, but none produced the expected output of
unreadable characters.

For some reason, TouchPad is not found, as per /var/log/Xorg.0.log

[ 37.976] (II) No input driver/identifier specified (ignoring)
[ 37.976] (II) config/udev: Adding input device HDA Intel Headphone (/dev/input/event7)
[ 37.976] (II) No input driver/identifier specified (ignoring)
[ 37.984] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event3)
[ 37.984] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[ 37.984] (**) AT Translated Set 2 keyboard: always reports core events
[ 37.984] (**) AT Translated Set 2 keyboard: Device: "/dev/input/event3"
[ 37.990] (--) AT Translated Set 2 keyboard: Found keys
[ 37.990] (II) AT Translated Set 2 keyboard: Configuring as keyboard
[ 37.990] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
[ 37.990] (**) Option "xkb_rules" "evdev"
[ 37.990] (**) Option "xkb_model" "evdev"
[ 37.990] (**) Option "xkb_layout" "us"
[ 37.990] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event4)
[ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
[ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
[ 37.990] (II) Synaptics touchpad driver version 1.3.0
[ 37.990] (**) Option "Device" "/dev/input/event4"
[ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range. defaulting to 1615 - 5685
[ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range. defaulting to 1729 - 4171
[ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid pressure range. defaulting to 0 - 256
[ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid finger width range. defaulting to 0 - 16
[ 37.994] (--) SynPS/2 Synaptics TouchPad: no supported touchpad found
[ 37.994] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize Synaptics hardware.
[ 37.999] (EE) PreInit failed for input device "SynPS/2 Synaptics TouchPad"
[ 37.999] (II) UnloadModule: "synaptics"
[ 37.999] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
[ 37.999] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
[ 37.999] (II) Synaptics touchpad driver version 1.3.0
[ 38.236] (EE) SynPS/2 Synaptics TouchPad no synaptics event device found
[ 38.236] (**) Option "Device" "/dev/input/mouse0"
[ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range. defaulting to 1615 - 5685
[ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range. defaulting to 1729 - 4171
[ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid pressure range. defaulting to 0 - 256
[ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid finger width range. defaulting to 0 - 16
[ 38.261] (EE) Query no Synaptics: 6003C8
[ 38.261] (--) SynPS/2 Synaptics TouchPad: no supported touchpad found
[ 38.261] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize Synaptics hardware.
[ 38.268] (EE) PreInit failed for input device "SynPS/2 Synaptics TouchPad"
[ 38.268] (II) UnloadModule: "synaptics"

my Xorg:

Section "ServerLayout"
Identifier "X.org Configured"
Screen "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "usb_mouse" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib64/xorg/modules"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/75dpi/"
FontPath "/usr/share/fonts/mono/"
EndSection

Section "Module"
Load "dri2"
Load "extmod"
Load "dbe"
Load "record"
Load "dri"
Load "glx"
Load "synaptics"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "synaptics"
Option "Protocol" "auto-dev"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "SendCoreEvents"
Option "SHMConfig" "on"
EndSection

Section "InputDevice"
Identifier "usb_mouse"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection

Section "Device"
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Arrandale Integrated Graphics Controller"
BusID "PCI:0:2:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection


lsmod | sort :
Module Size Used by
ac 3163 0
agpgart 25761 3 drm,intel_agp,intel_gtt
arc4 1298 2
ath 14363 3 ath9k,ath9k_common,ath9k_hw
ath9k 93150 0
ath9k_common 1781 1 ath9k
ath9k_hw 304369 2 ath9k,ath9k_common
backlight 3868 1 video
battery 10387 0
broadcom 6998 0
cfg80211 142723 3 ath9k,mac80211,ath
dm_mod 62570 0
drm 163391 3 i915,drm_kms_helper
drm_kms_helper 26499 1 i915
ecb 1897 2
ehci_hcd 37751 0
i2c_algo_bit 6488 1 i915
i2c_i801 7556 0
i915 295715 2
intel_agp 10553 1 i915
intel_gtt 13886 3 i915,intel_agp
libphy 15633 2 tg3,broadcom
mac80211 174434 1 ath9k
nls_base 6529 1 usbcore
sg 26942 0
snd 56667 12 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
snd_hda_codec 75586 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hda_codec_hdmi 24547 1
snd_hda_codec_realtek 320817 1
snd_hda_intel 23410 0
snd_hwdep 5996 1 snd_hda_codec
snd_mixer_oss 14843 1 snd_pcm_oss
snd_page_alloc 6625 2 snd_hda_intel,snd_pcm
snd_pcm 68666 4 snd_pcm_oss,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_pcm_oss 42157 0
snd_seq 50911 4 snd_seq_oss,snd_seq_midi_event
snd_seq_device 5157 2 snd_seq_oss,snd_seq
snd_seq_midi_event 5132 1 snd_seq_oss
snd_seq_oss 30332 0
snd_timer 18837 2 snd_seq,snd_pcm
soundcore 5359 1 snd
sparse_keymap 2720 0
tg3 123454 0
usbcore 121077 1 ehci_hcd
video 11475 1 i915
wmi 7970 0



Thank you in advance.
Re: Lost synaptics touchpad scrolling after kernel upgrade [ In reply to ]
Mansour Al Akeel posted on Fri, 17 Jun 2011 22:11:10 -0400 as excerpted:

> Hello all,
>
> I upgraded from 2.6.37-gentoo-r4 to 2.6.38-gentoo-r6. I didn't change
> anything in the config file, and used the old kernel config to compile
> the new kernel. However, when I booted into the new kernel, I found the
> scrolling in the touch pad is not working !

I was hoping someone with a bit more direct laptop-with-touchpad
experience would reply, but no one has. Oh well, I have a netbook that
runs a touchpad and run live-git upstream kernels, so between the two,
hopefully I can help. But I run ~arch and while I don't typically update
it as often as my main machine, it has been running 2.6.38 for some time,
now and I'm forgetting the details. (Hey, 2.6.39 is out and the new 3.0
kernel already has multiple -rcs out, 2.6.38 was months ago, for me!) I
don't recall having any of this sort of problems, but I may not use the
scrolling you're using. My touch-pad is small and I don't use the edge-
scrolling, instead choosing two-finger scrolling.

In fact, that works much better now than it did, as AFAIK, the device now
supports real two-finger detection while before, it only emulated it,
often causing problems on the one side when my fingers were too moist and
it triggered scrolling when I wanted just normal mouse movement, while on
the other, if my fingers were too dry, I couldn't get it to scroll when I
wanted it to! Now, it works *MUCH* better, because it actually detects
the two separate touch-points and that's FAR more reliable than the
emulation it was using before.

FWIW, I don't run full xorg.confs on either my netbook or workstation.
Instead, I rely on the built-in defaults for as much as I can, and only
have files in /etc/X11/xorg.conf.d/ that reflect any changes from what
xorg would normally run. My netbook has two files in that dir, the 20-
synaptics.conf that the synaptics driver drops there, but I've commented
all its settings out, and a file of my own, with only the following
section -- everything else is xorg-standard built-in defaults. (FWIW,
it's running xorg-server-1.10.1, xf86-input-synaptics-1.4.0):

Section "InputClass"
Identifier "syntouch"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
Option "SHMConfig"

Option "VertTwoFingerScroll"
Option "HorizTwoFingerScroll"

Option "TapButton1" "1"
Option "TapButton2" "2"

Option "EmulateTwoFingerMinW" "10"
Option "EmulateTwoFingerMinZ" "47"
Option "EmulateMidButtonTime" "500"

Option "FingerHigh" "35"
Option "FingerLow" "28"
Option "FingerPress" "255"
Option "MaxTapMove" "442"
Option "TrackstickSpeed" "5"

Option "EdgeMotionMinZ" "35"
Option "EdgeMotionMaxZ" "68"
Option "EdgeMotionMinSpeed" "1"
Option "EdgeMotionMaxSpeed" "201"
Option "EdgeMotionUseAlways"
EndSection

The synaptics device is /dev/input/event8, according to the xorg log. It
also detects mouse0, but doesn't detect the syntouch there so unloads the
driver for it.

> If I boot into the older kernel it works fine. I recompiled the
> following Xorg drivers under the new kernel :
>
> xf86-input-evdev-2.6.0 xf86-input-mouse-1.7.0 xf86-input-synaptics-1.3.0
> xf86-video-fbdev-0.4.2 xf86-video-intel-2.14.0 xf86-video-vesa-2.3.0

FWIW, you can probably unmerge video-vesa and video-fbdev, assuming your
system's running the intel driver. Similarly, input-mouse is seriously
legacy and probably unneeded. input-evdev should work fine for external
plugin mice if necessary, as well as keyboard, and input-synaptics should
take over the touchpad.

> I tried to check the correct mouse device using:
> cat /dev/input/*
>
> For all the devices, but none produced the expected output of unreadable
> characters.

Note that here, both /dev/input/event8 and /dev/input/mice produce
garbage when the mouse moves, but *ONLY* if I cat them from a real VT (as
root), *NOT* if I try to do it from a konsole window inside X, where the
cat produces absolutely nothing.

> For some reason, TouchPad is not found, as per /var/log/Xorg.0.log
>
> [ 37.976] (II) No input driver/identifier specified (ignoring)
> [ 37.976] (II) config/udev: Adding input device HDA Intel Headphone
> (/dev/input/event7)
> [ 37.976] (II) No input driver/identifier specified (ignoring)
> [ 37.984] (II) config/udev: Adding input device AT Translated Set 2
> keyboard (/dev/input/event3)
> [ 37.984] (**) AT Translated Set 2 keyboard: Applying InputClass
> "evdev keyboard catchall"
> [ 37.984] (**) AT Translated Set 2 keyboard: always reports core
> events [ 37.984] (**) AT Translated Set 2 keyboard: Device:
> "/dev/input/event3"
> [ 37.990] (--) AT Translated Set 2 keyboard: Found keys [ 37.990]
> (II) AT Translated Set 2 keyboard: Configuring as keyboard [ 37.990]
> (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard"
> (type: KEYBOARD)
> [ 37.990] (**) Option "xkb_rules" "evdev"
> [ 37.990] (**) Option "xkb_model" "evdev"
> [ 37.990] (**) Option "xkb_layout" "us"
> [ 37.990] (II) config/udev: Adding input device SynPS/2 Synaptics
> TouchPad (/dev/input/event4)
> [ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev
> touchpad catchall"
> [ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass
> "touchpad catchall"
> [ 37.990] (II) Synaptics touchpad driver version 1.3.0 [ 37.990]
> (**) Option "Device" "/dev/input/event4"
> [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range.
> defaulting to 1615 - 5685
> [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range.
> defaulting to 1729 - 4171
> [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid pressure range.
> defaulting to 0 - 256
> [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid finger width
> range. defaulting to 0 - 16
> [ 37.994] (--) SynPS/2 Synaptics TouchPad: no supported touchpad
> found
> [ 37.994] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize
> Synaptics hardware.
> [ 37.999] (EE) PreInit failed for input device "SynPS/2 Synaptics
> TouchPad"
> [ 37.999] (II) UnloadModule: "synaptics"
> [ 37.999] (II) config/udev: Adding input device SynPS/2 Synaptics
> TouchPad (/dev/input/mouse0)
> [ 37.999] (**) SynPS/2 Synaptics TouchPad: Applying InputClass
> "touchpad catchall"
> [ 37.999] (II) Synaptics touchpad driver version 1.3.0 [ 38.236]
> (EE) SynPS/2 Synaptics TouchPad no synaptics event device found [
> 38.236] (**) Option "Device" "/dev/input/mouse0"
> [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range.
> defaulting to 1615 - 5685
> [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range.
> defaulting to 1729 - 4171
> [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid pressure range.
> defaulting to 0 -
> 256 [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid finger width
> range. defaulting to 0 - 16
> [ 38.261] (EE) Query no Synaptics: 6003C8
> [ 38.261] (--) SynPS/2 Synaptics TouchPad: no supported
> touchpad found
> [ 38.261] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize
> Synaptics hardware.
> [ 38.268] (EE) PreInit failed for input device "SynPS/2 Synaptics
> TouchPad"
> [ 38.268] (II) UnloadModule: "synaptics"

It's trying to load it, but can't...

> my Xorg:
>
> Section "ServerLayout"
> Identifier "X.org Configured"
> Screen "Screen0" 0 0 InputDevice "Mouse0"
> "CorePointer"
> InputDevice "usb_mouse" "CorePointer"
> InputDevice "Keyboard0" "CoreKeyboard"
> EndSection

As I mentioned above, that whole serverlayout section is pretty much all
default now (from xorg-server 1.8) and you should be able to delete it.
Once you get this issue fixed, you can try commenting the above and
restarting X, just to be sure. If it works fine with it all commented as
it should, you can delete.

> Section "Files"
> ModulePath "/usr/lib64/xorg/modules"
> FontPath "/usr/share/fonts/misc/"
> FontPath "/usr/share/fonts/TTF/"
> FontPath "/usr/share/fonts/OTF"
> FontPath "/usr/share/fonts/Type1/"
> FontPath "/usr/share/fonts/100dpi/"
> FontPath "/usr/share/fonts/75dpi/"
> FontPath "/usr/share/fonts/mono/"
> EndSection

Same with this files section. I looks default to me, so should be
deletable.

> Section "Module"
> Load "dri2"
> Load "extmod"
> Load "dbe"
> Load "record"
> Load "dri"
> Load "glx"
> Load "synaptics"
> EndSection

This really is too. Synaptics isn't an absolute default, but it is with
the proper InputClass section.

> Section "InputDevice"
> Identifier "Keyboard0"
> Driver "kbd"
> EndSection
>
> Section "InputDevice"
> Identifier "Mouse0"
> Driver "synaptics"
> Option "Protocol" "auto-dev"
> Option "Device" "/dev/input/mice"
> Option "ZAxisMapping" "4 5 6 7"
> Option "TapButton1" "1"
> Option "TapButton2" "2"
> Option "TapButton3" "3"
> Option "SendCoreEvents"
> Option "SHMConfig" "on"
> EndSection
>
> Section "InputDevice"
> Identifier "usb_mouse"
> Driver "mouse"
> Option "Device" "/dev/input/mice"
> Option "ZAxisMapping" "4 5"
> Option "Buttons" "5"
> EndSection

These three inputdevice sections are entirely ignored by xorg server now,
unless you set some special flags in the ServerFlags section. It's all
hotplugged and has been for quite some time, first with hal, now with
udev. (That's what the "no input driver/identifier specified" in the xorg
log is all about, despite these, as they are ignored without those
serverflags settings, which you aren't using. It's ALL hotplugged now!)

The inputclass sections can be used to configure hotplugged devices. See
the xorg.conf manpage and my example above. It's worth noting that the
synaptics driver drops a default inputclass for its driver in /etc/X11/
xorg.conf.d, which is why you see it trying to detect, altho it's
failing, for reasons apparently unrelated to xorg (probably kernel)

> Section "Monitor"
> Identifier "Monitor0"
> VendorName "Monitor Vendor"
> ModelName "Monitor Model"
> EndSection

Defaults, delete. Only if you had custom modelines, or if you had custom
monitor positioning for when you plugged in a second monitor, or the
like, is a monitor section really useful, any more. Otherwise, the
defaults are normally pretty good.

> Section "Device"
> Identifier "Card0"
> Driver "intel"
> VendorName "Intel Corporation"
> BoardName "Arrandale Integrated Graphics Controller"
> BusID "PCI:0:2:0"
> EndSection

More defaults. If you had some card-specific settings here,

> Section "Screen"
> Identifier "Screen0"
> Device "Card0"
> Monitor "Monitor0"
> SubSection "Display"
> Viewport 0 0 Depth 1
> EndSubSection SubSection "Display"
> Viewport 0 0 Depth 4
> EndSubSection SubSection "Display"
> Viewport 0 0 Depth 8
> EndSubSection SubSection "Display"
> Viewport 0 0 Depth 15
> EndSubSection SubSection "Display"
> Viewport 0 0 Depth 16
> EndSubSection SubSection "Display"
> Viewport 0 0 Depth 24
> EndSubSection
> EndSection

More defaults that can be deleted.

IOW, your entire xorg.conf as it is, can be scrapped. If you want some
custom settings for one or more sections, drop files for those sections
in the /etc/X11/xorg.conf.d directory. As mentioned, you'll probably
already see one for the synaptics driver. You can modify it if you wish,
or do what I did and simply comment everything out in it (if you delete
it, the next time you update, it'll be replaced, but if you leave it in
place but with everything commented, config-protection should kick in and
let you delete the new one, or check to see if anything changed and then
delete it), creating your own alternative file in the same dir, with your
custom settings, that won't be affected by a config update.

If you have custom monitor positioning or other sections/settings, you
can drop files for them in the same place. But most folks won't need
much.

>
> lsmod | sort :

[.I deleted these as pan screwed the wrapping up and I didn't want to
bother fixing it manually.]

The kernel synaptics driver doesn't show up here. However, I believe it
can't be compiled as a module anyway, only built-in, so it not showing up
in a list of modules is no surprise.

But still, based on the fact that you lost the touchpad functionality
over a kernel upgrade *AND* on the fact that the xorg log shows the xorg
synaptics driver trying to load but finding no hardware to attach to, so
the touchpad fell back to the normal evdev driver, I'm guessing you
somehow lost the kernel config for it over the upgrade.

Actually, I think I know how it happened, too. The kernel folks renamed
one of the dependencies for the synaptics driver, so it no longer shows
up as an option unless you enable the new name of that dependency. I'm
not sure this was over the 2.6.38 cycle, but it was recently...

In your kernel config, under general setup, make sure either Embedded
system or Expert is set. The old name was Embedded. The new one is
Expert. (The label still appears to say embedded here, but the option it
configures is EXPERT.)

Once you've verified that is set, look under device drivers, input device
support. Verify that event interface is set (that's the new evdev
keyboard and fallback mouse driver), as it probably will be. If you use
a console mouse (gpm), you'll still want mouse interface set as well,
because AFAIK, gpm doesn't handle evdev, only legacy mouse devices. If
you don't use gpm/text-console-mouse, you can probably disable mouse
interface without issue.

Then make sure mice is enabled, and enter that submenu. Make sure ps/2
mouse is enabled, then verify synaptics ps/2 mouse protocol extension
underneath it. This last one, the synaptics protocol extension, is the
one affected by that new expert setting, formerly embedded, that may
possibly have triggered this whole thing.

Of course, rebuild the kernel if you need to. Hopefully that's what it
was, and a rebuild and reboot onto the new kernel with those options set,
will get you working touchpad extensions again. =:^)

--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman