I installed linux kernel from packages at http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-rc3-vivid/ on a Ubuntu 14.10 machine. This machine was working perfectly with the packages at http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19.1-vivid/ The distribution packages show a failure of the trackpad, that appears as a plain mouse and thus does not have support for the trackpad features. With 4.0-rc3 the console mouse works perfectly, but on startx I get the following error: (EE) (EE) Backtrace: (EE) 0: /usr/bin/X (xorg_backtrace+0x56) [0x7fa849579f76] (EE) 1: /usr/bin/X (0x7fa8493c3000+0x1bb179) [0x7fa84957e179] (EE) 2: /lib/x86_64-linux-gnu/libc.so.6 (0x7fa8470f8000+0x36eb0) [0x7fa84712eeb0 ] (EE) 3: /usr/lib/xorg/modules/input/synaptics_drv.so (0x7fa83a137000+0xd8e6) [0x 7fa83a1448e6] (EE) 4: /usr/lib/xorg/modules/input/synaptics_drv.so (0x7fa83a137000+0x7f96) [0x7fa83a13ef96] (EE) 5: /usr/bin/X (0x7fa8493c3000+0xa4c78) [0x7fa849467c78] (EE) 6: /usr/bin/X (0x7fa8493c3000+0xbb8e9) [0x7fa84947e8e9] (EE) 7: /usr/bin/X (0x7fa8493c3000+0xbbe63) [0x7fa84947ee63] (EE) 8: /usr/bin/X (config_init+0x9) [0x7fa84947d8f9] (EE) 9: /usr/bin/X (InitInput+0xbb) [0x7fa84945b42b] (EE) 10: /usr/bin/X (0x7fa8493c3000+0x5b6c9) [0x7fa84941e6c9] (EE) 11: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf5) [0x7fa847119ec5] (EE) 12: /usr/bin/X (0x7fa8493c3000+0x45a8e) [0x7fa849408a8e] (EE) (EE) Floating point exception at address 0x7fa83a1448e6 (EE) Fatal server error: (EE) Caught signal 8 (Floating point exception). Server aborting (EE)
Here are the changes that went into 4.0-rc3: ef47fa5 Input: ALPS - move v7 packet info to Documentation and v6 packet info 626b9da Input: ALPS - fix confusing comment in protocol data 04aae28 Input: ALPS - do not mix trackstick and external PS/2 mouse data a09221e Input: ALPS - fix trackstick detection on some Dell Latitudes 3296f71 Input: ALPS - consolidate setting protocol parameters 8326bb5 Input: ALPS - split protocol data from model info fb2dd7a Input: ALPS - make Rushmore a separate protocol d7c13d3 Input: ALPS - renumber protocol numbers Can you try revering them, especially 04aae28?
evtest or evemu-describe output would be useful to have too, that should hint at why synaptics crashes (division by zero? rough guess would be some resolution setting is messed up then).
Created attachment 170941 [details] results of evemu-describe for first found device
Created attachment 170951 [details] results of evemu-describe for second found device
Re: trying to revert changes, it is not so easy for me to generate a kernel, I'm usually using the Ubuntu mainline packages and this machine has a tiny SSD storage almost full... OTOH, it was easy to run evemu-describe on the devices. The main difference I see is that the driver was creating just one device with 3.19.1, like: /dev/input/event6: AlpsPS/2 ALPS DualPoint TouchPad while now it creates two: /dev/input/event11: AlpsPS/2 ALPS DualPoint Stick /dev/input/event12: AlpsPS/2 ALPS DualPoint TouchPad I have attached the result of running evemu-describe for both Please tell me if there is a simple way (like using dkms) to build the module for testing
Older kernels create device with name "DualPoint Stick". New kernel use name "AlpsPS/2 ALPS DualPoint Stick". So please double check for names. If you have laptop with both Trackstick and Touchpad, you should have two input devices (one Stick and one TouchPad).
The one from 3.19.1 (deb at http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19.1-vivid/ ) has the message I posted, double checked now. Not sure of the patches it includes. This is the working one. The one with the two devices, coming from 4.0.0-rc3, does not work, as reported.
Sorry, I missed the second part of the comment. The laptop has only Touchpad, and only Touchpad is reported under 3.19.1 But under 4.0.0-rc3 it reports both non-existant Stick and Touchpad.
Thanks for info! Can you share also your laptop model and output from command sudo lsinput ?
@Dmitry Torokhov: Maybe we are seeing problem with "redundant" input device which I mentioned in our patch review? http://www.spinics.net/lists/linux-input/msg36335.html @Santiago Gala: Can you also provide full dmesg output from both working and non working kernel?
# Event code 1 (ABS_Y) # Value 1302 # Min 0 # Max 0 # Fuzz 0 # Flat 0 # Resolution 0 that can't be right, and is where the synaptics crash comes from. it does divisions by (max - min) which is 0 here. The X axis looks suspicious as well: resolution of 4 with a max of 448? could be right, but sounds like specs fresh from the 90s. either way, check those patches for anything that changes the absinfo struct for the touchpad and you've got the culprit.
(In reply to Santiago Gala from comment #7) > The one from 3.19.1 (deb at > http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19.1-vivid/ ) has the > message I posted, double checked now. Not sure of the patches it includes. > This is the working one. The one with the two devices, coming from > 4.0.0-rc3, does not work, as reported. Sorry, I'm a bit dislexic; misunderstood what I needed to double check and thus double checked the wrong thing. There are also two devices in the 3.19.1 kernel: /dev/input/event5: DualPoint Stick /dev/input/event6: AlpsPS/2 ALPS DualPoint TouchPad The machines does not have a trackstick, but I think there was a previous model that did have one. I attach alps05.txt and alps06.txt to show the differences between 3.19.1 and 4.0.0-rc3. Re: the ABS_Y event, you can see: sgala@zen:~$ diff -u alps06.txt alps12.txt --- alps06.txt 2015-03-18 07:21:08.827315595 +0100 +++ alps12.txt 2015-03-17 22:40:15.363548619 +0100 @@ -15,21 +15,21 @@ # Event code 335 (BTN_TOOL_QUADTAP) # Event type 3 (EV_ABS) # Event code 0 (ABS_X) -# Value 1076 +# Value 198 # Min 0 -# Max 4095 +# Max 448 # Fuzz 0 # Flat 0 -# Resolution 42 +# Resolution 4 # Event code 1 (ABS_Y) -# Value 869 +# Value 1302 # Min 0 -# Max 2047 +# Max 0 # Fuzz 0 # Flat 0 -# Resolution 38 +# Resolution 0 # Event code 47 (ABS_MT_SLOT) -# Value 1 +# Value 0 # Min 0 # Max 1 # Fuzz 0 @@ -38,17 +38,17 @@ # Event code 53 (ABS_MT_POSITION_X) # Value 0 # Min 0 -# Max 4095 +# Max 448 # Fuzz 0 # Flat 0 -# Resolution 42 +# Resolution 4 # Event code 54 (ABS_MT_POSITION_Y) # Value 0 # Min 0 -# Max 2047 +# Max 0 # Fuzz 0 # Flat 0 -# Resolution 38 +# Resolution 0 # Event code 57 (ABS_MT_TRACKING_ID) # Value 0 # Min 0 @@ -83,9 +83,9 @@ B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 -A: 00 0 4095 0 0 42 -A: 01 0 2047 0 0 38 +A: 00 0 448 0 0 4 +A: 01 0 0 0 0 0 A: 2f 0 1 0 0 0 -A: 35 0 4095 0 0 42 -A: 36 0 2047 0 0 38 +A: 35 0 448 0 0 4 +A: 36 0 0 0 0 0 A: 39 0 65535 0 0 0
Created attachment 170991 [details] stick (non hardware) device with 3.19.1
Created attachment 171001 [details] working Touchpad device (kernel 3.19.1)
The laptop is a Toshiba Sattellite Z30-A-1DG ( http://www.toshiba.es/laptops/satellite/satellite-z30-a/satellite-z30-a-1dg/ ) I'm attaching the lsinput and both dmesg
Created attachment 171011 [details] dmesg for working kernel
Created attachment 171021 [details] dmesg for non-working kernel
Created attachment 171031 [details] lsinput-3.19.1.txt (working)
Created attachment 171041 [details] lsinput-4.0.0-rc3.txt (non working)
Now I found that in Dmitry's patch "Input: ALPS - consolidate setting protocol parameters" were removed lines for ALPS_PROTO_V7: - priv->x_max = 0xfff; - priv->y_max = 0x7ff; And from output I see that touchpad use protocol v7. So I think removed x_max/y_max lines should be reverted back, or not? Dmitry, please answer. And about trackstick detection for protocol v7. I already sent patch to linux-input which is preinstalled on Ubuntu Dell Latitude machines. http://www.spinics.net/lists/linux-input/msg36554.html Detection for v7 is *same* as for rushmore protocol (with same reg base).
Dmitry, and in that patch is probably another problem. You moved if (alps_dolphin_get_device_area(psmouse, priv)) call from ALPS_PROTO_V5 to ALPS_PROTO_V7. And it looks like this cause filling those min/max zero values, because it is called for different protocol now...
Hmm, it looks like I indeed messed up where I put the call to alps_dolphin_get_device_area(). I'll fix that up. BTW, Peter, I'd rather userspace did not do divide by 0 - I can feed all kinds of garbage through uinput.
yep, understood. A synaptics patch to stop the crash is on the xorg-devel list.
Fix has been merged into upcoming 4.0-rc7: c164c147c9a0a371c4710186972a02b6ee2eb984
FYI: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-rc7-vivid/ works perfectly. The reporting of the TouchPad is ok Although there are still two devices (I didn't got clearly the status of this): $ sudo lsinput | grep Point name : "AlpsPS/2 ALPS DualPoint Stick" name : "AlpsPS/2 ALPS DualPoint TouchPad" The non-existant Stick and the TouchPad Regards and thanks
It is as supposed to be for now. We need to find someone with V7 device _and_ a trackstick before I can apply Pali's patch for the trackstick detection in V7 devices.
xf86-input-synaptics commit 30866b97be6939b895327b930154ef758eed7ff8 fixed the floating point exception.