Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-amd64
Navigation:
Lists: gentoo-amd64: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-amd64@g.o
From: Duncan <1i5t5.duncan@...>
Subject: Re: Lost synaptics touchpad scrolling after kernel upgrade
Date: Tue, 21 Jun 2011 03:49:39 +0000 (UTC)
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



References:
Lost synaptics touchpad scrolling after kernel upgrade
-- Mansour Al Akeel
Navigation:
Lists: gentoo-amd64: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Lost synaptics touchpad scrolling after kernel upgrade
Next by thread:
Ynt: Unsubscribe
Previous by date:
Re: Re: no sound in firefox java
Next by date:
Unsubscribe


Updated Jun 28, 2012

Summary: Archive of the gentoo-amd64 mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.