Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: Lost synaptics touchpad scrolling after kernel upgrade
Date: Tue, 21 Jun 2011 04:02:55
Message-Id: pan.2011.06.21.03.49.38@cox.net
In Reply to: [gentoo-amd64] Lost synaptics touchpad scrolling after kernel upgrade by Mansour Al Akeel
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