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
1 Mansour Al Akeel posted on Fri, 17 Jun 2011 22:11:10 -0400 as excerpted:
2
3 > Hello all,
4 >
5 > I upgraded from 2.6.37-gentoo-r4 to 2.6.38-gentoo-r6. I didn't change
6 > anything in the config file, and used the old kernel config to compile
7 > the new kernel. However, when I booted into the new kernel, I found the
8 > scrolling in the touch pad is not working !
9
10 I was hoping someone with a bit more direct laptop-with-touchpad
11 experience would reply, but no one has. Oh well, I have a netbook that
12 runs a touchpad and run live-git upstream kernels, so between the two,
13 hopefully I can help. But I run ~arch and while I don't typically update
14 it as often as my main machine, it has been running 2.6.38 for some time,
15 now and I'm forgetting the details. (Hey, 2.6.39 is out and the new 3.0
16 kernel already has multiple -rcs out, 2.6.38 was months ago, for me!) I
17 don't recall having any of this sort of problems, but I may not use the
18 scrolling you're using. My touch-pad is small and I don't use the edge-
19 scrolling, instead choosing two-finger scrolling.
20
21 In fact, that works much better now than it did, as AFAIK, the device now
22 supports real two-finger detection while before, it only emulated it,
23 often causing problems on the one side when my fingers were too moist and
24 it triggered scrolling when I wanted just normal mouse movement, while on
25 the other, if my fingers were too dry, I couldn't get it to scroll when I
26 wanted it to! Now, it works *MUCH* better, because it actually detects
27 the two separate touch-points and that's FAR more reliable than the
28 emulation it was using before.
29
30 FWIW, I don't run full xorg.confs on either my netbook or workstation.
31 Instead, I rely on the built-in defaults for as much as I can, and only
32 have files in /etc/X11/xorg.conf.d/ that reflect any changes from what
33 xorg would normally run. My netbook has two files in that dir, the 20-
34 synaptics.conf that the synaptics driver drops there, but I've commented
35 all its settings out, and a file of my own, with only the following
36 section -- everything else is xorg-standard built-in defaults. (FWIW,
37 it's running xorg-server-1.10.1, xf86-input-synaptics-1.4.0):
38
39 Section "InputClass"
40 Identifier "syntouch"
41 MatchIsTouchpad "on"
42 MatchDevicePath "/dev/input/event*"
43 Driver "synaptics"
44 Option "SHMConfig"
45
46 Option "VertTwoFingerScroll"
47 Option "HorizTwoFingerScroll"
48
49 Option "TapButton1" "1"
50 Option "TapButton2" "2"
51
52 Option "EmulateTwoFingerMinW" "10"
53 Option "EmulateTwoFingerMinZ" "47"
54 Option "EmulateMidButtonTime" "500"
55
56 Option "FingerHigh" "35"
57 Option "FingerLow" "28"
58 Option "FingerPress" "255"
59 Option "MaxTapMove" "442"
60 Option "TrackstickSpeed" "5"
61
62 Option "EdgeMotionMinZ" "35"
63 Option "EdgeMotionMaxZ" "68"
64 Option "EdgeMotionMinSpeed" "1"
65 Option "EdgeMotionMaxSpeed" "201"
66 Option "EdgeMotionUseAlways"
67 EndSection
68
69 The synaptics device is /dev/input/event8, according to the xorg log. It
70 also detects mouse0, but doesn't detect the syntouch there so unloads the
71 driver for it.
72
73 > If I boot into the older kernel it works fine. I recompiled the
74 > following Xorg drivers under the new kernel :
75 >
76 > xf86-input-evdev-2.6.0 xf86-input-mouse-1.7.0 xf86-input-synaptics-1.3.0
77 > xf86-video-fbdev-0.4.2 xf86-video-intel-2.14.0 xf86-video-vesa-2.3.0
78
79 FWIW, you can probably unmerge video-vesa and video-fbdev, assuming your
80 system's running the intel driver. Similarly, input-mouse is seriously
81 legacy and probably unneeded. input-evdev should work fine for external
82 plugin mice if necessary, as well as keyboard, and input-synaptics should
83 take over the touchpad.
84
85 > I tried to check the correct mouse device using:
86 > cat /dev/input/*
87 >
88 > For all the devices, but none produced the expected output of unreadable
89 > characters.
90
91 Note that here, both /dev/input/event8 and /dev/input/mice produce
92 garbage when the mouse moves, but *ONLY* if I cat them from a real VT (as
93 root), *NOT* if I try to do it from a konsole window inside X, where the
94 cat produces absolutely nothing.
95
96 > For some reason, TouchPad is not found, as per /var/log/Xorg.0.log
97 >
98 > [ 37.976] (II) No input driver/identifier specified (ignoring)
99 > [ 37.976] (II) config/udev: Adding input device HDA Intel Headphone
100 > (/dev/input/event7)
101 > [ 37.976] (II) No input driver/identifier specified (ignoring)
102 > [ 37.984] (II) config/udev: Adding input device AT Translated Set 2
103 > keyboard (/dev/input/event3)
104 > [ 37.984] (**) AT Translated Set 2 keyboard: Applying InputClass
105 > "evdev keyboard catchall"
106 > [ 37.984] (**) AT Translated Set 2 keyboard: always reports core
107 > events [ 37.984] (**) AT Translated Set 2 keyboard: Device:
108 > "/dev/input/event3"
109 > [ 37.990] (--) AT Translated Set 2 keyboard: Found keys [ 37.990]
110 > (II) AT Translated Set 2 keyboard: Configuring as keyboard [ 37.990]
111 > (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard"
112 > (type: KEYBOARD)
113 > [ 37.990] (**) Option "xkb_rules" "evdev"
114 > [ 37.990] (**) Option "xkb_model" "evdev"
115 > [ 37.990] (**) Option "xkb_layout" "us"
116 > [ 37.990] (II) config/udev: Adding input device SynPS/2 Synaptics
117 > TouchPad (/dev/input/event4)
118 > [ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev
119 > touchpad catchall"
120 > [ 37.990] (**) SynPS/2 Synaptics TouchPad: Applying InputClass
121 > "touchpad catchall"
122 > [ 37.990] (II) Synaptics touchpad driver version 1.3.0 [ 37.990]
123 > (**) Option "Device" "/dev/input/event4"
124 > [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range.
125 > defaulting to 1615 - 5685
126 > [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range.
127 > defaulting to 1729 - 4171
128 > [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid pressure range.
129 > defaulting to 0 - 256
130 > [ 37.994] (--) SynPS/2 Synaptics TouchPad: invalid finger width
131 > range. defaulting to 0 - 16
132 > [ 37.994] (--) SynPS/2 Synaptics TouchPad: no supported touchpad
133 > found
134 > [ 37.994] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize
135 > Synaptics hardware.
136 > [ 37.999] (EE) PreInit failed for input device "SynPS/2 Synaptics
137 > TouchPad"
138 > [ 37.999] (II) UnloadModule: "synaptics"
139 > [ 37.999] (II) config/udev: Adding input device SynPS/2 Synaptics
140 > TouchPad (/dev/input/mouse0)
141 > [ 37.999] (**) SynPS/2 Synaptics TouchPad: Applying InputClass
142 > "touchpad catchall"
143 > [ 37.999] (II) Synaptics touchpad driver version 1.3.0 [ 38.236]
144 > (EE) SynPS/2 Synaptics TouchPad no synaptics event device found [
145 > 38.236] (**) Option "Device" "/dev/input/mouse0"
146 > [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid x-axis range.
147 > defaulting to 1615 - 5685
148 > [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid y-axis range.
149 > defaulting to 1729 - 4171
150 > [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid pressure range.
151 > defaulting to 0 -
152 > 256 [ 38.240] (--) SynPS/2 Synaptics TouchPad: invalid finger width
153 > range. defaulting to 0 - 16
154 > [ 38.261] (EE) Query no Synaptics: 6003C8
155 > [ 38.261] (--) SynPS/2 Synaptics TouchPad: no supported
156 > touchpad found
157 > [ 38.261] (EE) SynPS/2 Synaptics TouchPad Unable to query/initialize
158 > Synaptics hardware.
159 > [ 38.268] (EE) PreInit failed for input device "SynPS/2 Synaptics
160 > TouchPad"
161 > [ 38.268] (II) UnloadModule: "synaptics"
162
163 It's trying to load it, but can't...
164
165 > my Xorg:
166 >
167 > Section "ServerLayout"
168 > Identifier "X.org Configured"
169 > Screen "Screen0" 0 0 InputDevice "Mouse0"
170 > "CorePointer"
171 > InputDevice "usb_mouse" "CorePointer"
172 > InputDevice "Keyboard0" "CoreKeyboard"
173 > EndSection
174
175 As I mentioned above, that whole serverlayout section is pretty much all
176 default now (from xorg-server 1.8) and you should be able to delete it.
177 Once you get this issue fixed, you can try commenting the above and
178 restarting X, just to be sure. If it works fine with it all commented as
179 it should, you can delete.
180
181 > Section "Files"
182 > ModulePath "/usr/lib64/xorg/modules"
183 > FontPath "/usr/share/fonts/misc/"
184 > FontPath "/usr/share/fonts/TTF/"
185 > FontPath "/usr/share/fonts/OTF"
186 > FontPath "/usr/share/fonts/Type1/"
187 > FontPath "/usr/share/fonts/100dpi/"
188 > FontPath "/usr/share/fonts/75dpi/"
189 > FontPath "/usr/share/fonts/mono/"
190 > EndSection
191
192 Same with this files section. I looks default to me, so should be
193 deletable.
194
195 > Section "Module"
196 > Load "dri2"
197 > Load "extmod"
198 > Load "dbe"
199 > Load "record"
200 > Load "dri"
201 > Load "glx"
202 > Load "synaptics"
203 > EndSection
204
205 This really is too. Synaptics isn't an absolute default, but it is with
206 the proper InputClass section.
207
208 > Section "InputDevice"
209 > Identifier "Keyboard0"
210 > Driver "kbd"
211 > EndSection
212 >
213 > Section "InputDevice"
214 > Identifier "Mouse0"
215 > Driver "synaptics"
216 > Option "Protocol" "auto-dev"
217 > Option "Device" "/dev/input/mice"
218 > Option "ZAxisMapping" "4 5 6 7"
219 > Option "TapButton1" "1"
220 > Option "TapButton2" "2"
221 > Option "TapButton3" "3"
222 > Option "SendCoreEvents"
223 > Option "SHMConfig" "on"
224 > EndSection
225 >
226 > Section "InputDevice"
227 > Identifier "usb_mouse"
228 > Driver "mouse"
229 > Option "Device" "/dev/input/mice"
230 > Option "ZAxisMapping" "4 5"
231 > Option "Buttons" "5"
232 > EndSection
233
234 These three inputdevice sections are entirely ignored by xorg server now,
235 unless you set some special flags in the ServerFlags section. It's all
236 hotplugged and has been for quite some time, first with hal, now with
237 udev. (That's what the "no input driver/identifier specified" in the xorg
238 log is all about, despite these, as they are ignored without those
239 serverflags settings, which you aren't using. It's ALL hotplugged now!)
240
241 The inputclass sections can be used to configure hotplugged devices. See
242 the xorg.conf manpage and my example above. It's worth noting that the
243 synaptics driver drops a default inputclass for its driver in /etc/X11/
244 xorg.conf.d, which is why you see it trying to detect, altho it's
245 failing, for reasons apparently unrelated to xorg (probably kernel)
246
247 > Section "Monitor"
248 > Identifier "Monitor0"
249 > VendorName "Monitor Vendor"
250 > ModelName "Monitor Model"
251 > EndSection
252
253 Defaults, delete. Only if you had custom modelines, or if you had custom
254 monitor positioning for when you plugged in a second monitor, or the
255 like, is a monitor section really useful, any more. Otherwise, the
256 defaults are normally pretty good.
257
258 > Section "Device"
259 > Identifier "Card0"
260 > Driver "intel"
261 > VendorName "Intel Corporation"
262 > BoardName "Arrandale Integrated Graphics Controller"
263 > BusID "PCI:0:2:0"
264 > EndSection
265
266 More defaults. If you had some card-specific settings here,
267
268 > Section "Screen"
269 > Identifier "Screen0"
270 > Device "Card0"
271 > Monitor "Monitor0"
272 > SubSection "Display"
273 > Viewport 0 0 Depth 1
274 > EndSubSection SubSection "Display"
275 > Viewport 0 0 Depth 4
276 > EndSubSection SubSection "Display"
277 > Viewport 0 0 Depth 8
278 > EndSubSection SubSection "Display"
279 > Viewport 0 0 Depth 15
280 > EndSubSection SubSection "Display"
281 > Viewport 0 0 Depth 16
282 > EndSubSection SubSection "Display"
283 > Viewport 0 0 Depth 24
284 > EndSubSection
285 > EndSection
286
287 More defaults that can be deleted.
288
289 IOW, your entire xorg.conf as it is, can be scrapped. If you want some
290 custom settings for one or more sections, drop files for those sections
291 in the /etc/X11/xorg.conf.d directory. As mentioned, you'll probably
292 already see one for the synaptics driver. You can modify it if you wish,
293 or do what I did and simply comment everything out in it (if you delete
294 it, the next time you update, it'll be replaced, but if you leave it in
295 place but with everything commented, config-protection should kick in and
296 let you delete the new one, or check to see if anything changed and then
297 delete it), creating your own alternative file in the same dir, with your
298 custom settings, that won't be affected by a config update.
299
300 If you have custom monitor positioning or other sections/settings, you
301 can drop files for them in the same place. But most folks won't need
302 much.
303
304 >
305 > lsmod | sort :
306
307 [I deleted these as pan screwed the wrapping up and I didn't want to
308 bother fixing it manually.]
309
310 The kernel synaptics driver doesn't show up here. However, I believe it
311 can't be compiled as a module anyway, only built-in, so it not showing up
312 in a list of modules is no surprise.
313
314 But still, based on the fact that you lost the touchpad functionality
315 over a kernel upgrade *AND* on the fact that the xorg log shows the xorg
316 synaptics driver trying to load but finding no hardware to attach to, so
317 the touchpad fell back to the normal evdev driver, I'm guessing you
318 somehow lost the kernel config for it over the upgrade.
319
320 Actually, I think I know how it happened, too. The kernel folks renamed
321 one of the dependencies for the synaptics driver, so it no longer shows
322 up as an option unless you enable the new name of that dependency. I'm
323 not sure this was over the 2.6.38 cycle, but it was recently...
324
325 In your kernel config, under general setup, make sure either Embedded
326 system or Expert is set. The old name was Embedded. The new one is
327 Expert. (The label still appears to say embedded here, but the option it
328 configures is EXPERT.)
329
330 Once you've verified that is set, look under device drivers, input device
331 support. Verify that event interface is set (that's the new evdev
332 keyboard and fallback mouse driver), as it probably will be. If you use
333 a console mouse (gpm), you'll still want mouse interface set as well,
334 because AFAIK, gpm doesn't handle evdev, only legacy mouse devices. If
335 you don't use gpm/text-console-mouse, you can probably disable mouse
336 interface without issue.
337
338 Then make sure mice is enabled, and enter that submenu. Make sure ps/2
339 mouse is enabled, then verify synaptics ps/2 mouse protocol extension
340 underneath it. This last one, the synaptics protocol extension, is the
341 one affected by that new expert setting, formerly embedded, that may
342 possibly have triggered this whole thing.
343
344 Of course, rebuild the kernel if you need to. Hopefully that's what it
345 was, and a rebuild and reboot onto the new kernel with those options set,
346 will get you working touchpad extensions again. =:^)
347
348 --
349 Duncan - List replies preferred. No HTML msgs.
350 "Every nonfree program has a lord, a master --
351 and if you use the program, he is your master." Richard Stallman