* [gentoo-amd64] Re: Lost synaptics touchpad scrolling after kernel upgrade
2011-06-18 2:11 [gentoo-amd64] Lost synaptics touchpad scrolling after kernel upgrade Mansour Al Akeel
@ 2011-06-21 3:49 ` Duncan
0 siblings, 0 replies; 2+ messages in thread
From: Duncan @ 2011-06-21 3:49 UTC (permalink / raw
To: gentoo-amd64
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
^ permalink raw reply [flat|nested] 2+ messages in thread