LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Synaptics not working on Dell XPS M1530, Slackware 12.2 custom kernel (https://www.linuxquestions.org/questions/linux-hardware-18/synaptics-not-working-on-dell-xps-m1530-slackware-12-2-custom-kernel-706845/)

RedScare 02-23-2009 09:35 AM

Synaptics not working on Dell XPS M1530, Slackware 12.2 custom kernel
 
[SOLVED] Check #12 by me
I custom-built my kernel (v. 2.6.28.7) on a Slackware 12.2 system (NOTE: I unfortunately cannot check the stock kernels as I have broken them), including psmouse as a module and including synaptics and evdev, and installed the synaptics drivers from source. I am on a Dell XPS m1530. My touchpad works fine in kde; it clicks and moves. I cannot get scrolling by moving my finger along the side of the touchpad to work. My understanding is that for this I need to have the synaptics driver working and enabled (NOTE: I had synaptics working under Ubuntu). I am loading the synaptics module in xorg.
Relevant part of xorg:
Code:

  Identifier    "Mouse1"
    Driver        "synaptics"
    Option        "Device" "/dev/psaux"
    Option        "Protocol" "auto-dev"
    Option          "VertEdgeScroll"  "true"
EndSection

It seems my touchpad is not being identified as a synaptics one:
Code:

edscare@redscare-laptop:~$ cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=120013
B: KEY=8000 0 0 0 0 0 500f 2102002 380307c f810d001 feffffdf ffefffff ffffffff ffffffff
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input2
U: Uniq=
H: Handlers=mouse1 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

Kernel config information (I used config-2.6.28.7 for my kernel compilation):
Code:

redscare@redscare-laptop:~$ grep SYNAPTIC /boot/config-2.6.28.7
CONFIG_MOUSE_PS2_SYNAPTICS=y
redscare@redscare-laptop:~$ grep MOUSE /boot/config-2.6.28.7
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=800
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_USB_IDMOUSE is not set

Relevant portions of Xorg.0.log:
Code:

redscare@redscare-laptop:/var/log$ cat Xorg.0.log (I only show relevant stuff)
...
(II) LoadModule: "synaptics"
(II) Loading /usr/lib/xorg/modules/input//synaptics_drv.so
(II) Module synaptics: vendor="X.Org Foundation"
        compiled for 1.4.2, module version = 1.0.99
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 2.0
...
(II) LoadModule: "mouse"
(II) Loading /usr/lib/xorg/modules/input//mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
        compiled for 1.4.0.90, module version = 1.3.0
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 2.0
...
(II) Synaptics touchpad driver version 1.0.99
Mouse1 no synaptics event device found
(**) Option "Device" "/dev/psaux"
(**) Option "VertEdgeScroll" "true"
Query no Synaptics: 6003C8
(--) Mouse1: no supported touchpad found
...Mouse1 no synaptics event device found
Query no Synaptics: 6003C8
(--) Mouse1: no supported touchpad found
Query no Synaptics: 6003C8
Query no Synaptics: 6003C8
Query no Synaptics: 6003C8---------------------> for each mouse movement, this line added

Thank you for your help.

Didier Spaier 02-23-2009 04:15 PM

Let's try make that simpler.

First reinstall stock kernels, that's easy.

If you have slackpkg installed (that should be the case if you made a full install), type following commands:

slackpkg update
slackpkg reinstall kernel

Then accept all proposed updates (will take some time but won't hurt)

Before that, if it's the first time you use slackpkg, 'uncomment' one (and only one) URL in /etc/slackpkg/mirrors.

--

Or if you have the DVD at hand you could do this:

cd /mnt/dvd
upgradepkg --install-new --reinstall slackare/d/kernel*tgz slackware/a/kernel*tgz slackware/k/kernel*tgz

--

Then try your touchpad.

PS1 Yes, it can hurt if you install a new kernel module and one is already installed for the same driver.
PS2 Please don't make two threads for the same issue.

Rule of thumb: if ain't broken, don't fix it ;)

EDIT -- command 'upgradepkg' was mispelled 'ugrade'

RedScare 02-23-2009 04:22 PM

Thank you. If I do reinstall the kernel by that method, will I lose my custom compiled kernel along with the source (v. 2.6.28.7)? Also, including the synaptics driver in the kernel is equivalent to installing it from source? Are they the same driver?

Didier Spaier 02-23-2009 05:14 PM

1) You won't loose anything, unless you gave your kernel or kernel-source the same name as the stock kernels, which is highly improbable (kernel version number is always included in kernel and kernel source names in Slackware packages).

2) Building and installing the kernel drivers from source will be equivalent to using the ones included in the kernel _if_and_only_if_ you use the _very_same_version_, and use the same compilation options.

To make sure of that you can make a diff of the respective source files (synaptics.c and synaptics.h) and a diff of the respective Makefiles -- but then, what can you do with that information ?

So, let me repeat myself: go with the stock kernel and the included module, and check if that works first -- unless you really prefer to replace something which works with something which doesn't.

As we say in French: why make things simple when they could be complicated ;)

Cheers,

RedScare 02-23-2009 06:11 PM

I will soon try to replace the stock kernels, but I have another question. Installing the Synaptics drivers from source places files into /usr/lib/xorg/modules. Kernel compilation doesn't affect this directory to the best of my knowledge. So wouldn't it be necessary to install the Synaptics from source?
Thanks again.

RedScare 02-23-2009 08:47 PM

Well I tried the old kernel, and that didn't help or really change anything. My new /proc/bus/input/devices (I don't really think the changes are relevant; I purposely did not include the webcam in my custom kernel):
Code:

redscare@redscare-laptop:~$ cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=120013
B: KEY=8000 0 0 0 0 0 500f 2102002 380307c f810d001 feffffdf ffefffff ffffffff ffffffff
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
U: Uniq=
H: Handlers=event2
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button (CM)"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button (CM)"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=3
B: KEY=4000 0 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:2e/device:2f/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=3
B: KEY=3f000b 0 0 0 0 0 0 0

I: Bus=0003 Vendor=05a9 Product=2640 Version=0100
N: Name="Laptop Integrated Webcam"
P: Phys=usb-0000:00:1a.7-1
S: Sysfs=/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/input/input6
U: Uniq=
H: Handlers=event6
B: EV=3
B: KEY=1 0 0 0 0 0 0 0 0

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input7
U: Uniq=
H: Handlers=mouse1 event7
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

redscare@redscare-laptop:~$ less /var/log/Xorg.0.log
redscare@redscare-laptop:~$ cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=120013
B: KEY=8000 0 0 0 0 0 500f 2102002 380307c f810d001 feffffdf ffefffff ffffffff ffffffff
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
U: Uniq=
H: Handlers=event2
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button (CM)"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button (CM)"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=3
B: KEY=4000 0 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=/video/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:2e/device:2f/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=3
B: KEY=3f000b 0 0 0 0 0 0 0

I: Bus=0003 Vendor=05a9 Product=2640 Version=0100
N: Name="Laptop Integrated Webcam"
P: Phys=usb-0000:00:1a.7-1
S: Sysfs=/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/input/input6
U: Uniq=
H: Handlers=event6
B: EV=3
B: KEY=1 0 0 0 0 0 0 0 0

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input7
U: Uniq=
H: Handlers=mouse1 event7
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3


Drakeo 02-23-2009 08:57 PM

I started using the synaptic touch pad mouse with slackware 10. I did not need any special driver. But there was some that you could do. I found I made the pad work with every thing by editing the xorg. I am not sure what is going on here.
But after reading what Linus had to say about the cursor and the kernel told me they were already built into the kernel.
so I did this also.
Quote:

Option "ZAxisMapping" "4 5 6 7" #touch pad
now the little pad scrolled every direction. and the pad still did it taps like it was supposed to because it works thermal and taps per milliseconds. good luck

Didier Spaier 02-24-2009 01:51 AM

RedScare, keep in mind that you really need two drivers for your touchpad:
- the kernel driver;
- the X (or Xorg, in our case) driver.

I think that Drakeo is right: your problem has nothing to do with the kernel driver, but is a matter of configuring the Xorg driver at run time (no need to re compile it).

the 'man synaptics' command will tell you (a lot!) more.

In this manual '34' should read " (double quote) character. That's the way Xorg manual is written.

Side note: I read long manual pages in konqueror, it's easier: type #synaptics or man:synaptics in the address bar.

To know how-to use your touchpad in console mode, read /usr/doc/gpm-1.20.1/README.synaptics.

RedScare 02-24-2009 01:57 PM

That is what I did, I am sorry for not being clear--I installed the synaptics Xorg driver manually (xf86). It is unlikely that the synaptics driver itself is malfunctioning as indicated by Xorg.0.log errors and my output from /proc/bus/input/devices, but with detection of the mousepad as a synaptics-capable one.
Thank you, and please help me.

Didier Spaier 02-24-2009 02:54 PM

-- Sorry, duplicate post --

Didier Spaier 02-24-2009 02:54 PM

I do not think that a "bad" synaptics Xorg driver is in concern. Anyhow a synaptics Xorg driver is of course included in Slackware.

But may be some udev rules cause the issue, or the psmouse kernel-module claim the device before the synaptics kernel driver (though it could be surprising as synptics is built-in and psmouse is a module). I say that because on my laptop the touchpad (which works like a mouse) uses the psmouse module.

First check with 'lsmod' which module is loaded for your touchpad. Guess it is psmouse.

If it is the case I would try this:
1) blacklist the psmouse module: add a line with 'blacklist psmouse' (without the quotes, of course) at the end of /etc/modprobe.d/blacklist
2) reboot and see what happens

Or you can reconfigure your kernel with CONFIG_MOUSE_PS2_SYNAPTICS=m (e.g., as a module, not built-in), still blacklist psmouse, try to 'modprobe synaptics' and see what you get.

And/or you could try not to include any MOUSE_PS2_xx driver, but MOUSE_PS2_SYNAPTICS.

Not sure I shed some light, I'm running out of ideas :scratch:

PS did you read the docs I pointed to ?

RedScare 02-24-2009 03:11 PM

I read the docs you referred me to, yes. I've finally solved this myself though, by adding the boot parameter i8042.reset to my boot parameters (i8042.nomux=1). Now my /proc/bus/input/devices is (shows that my alps touchpad is being detected):
Code:

bash-3.1# cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=120013
B: KEY=8000 0 0 0 0 0 500f 2102002 380307c f810d001 feffffdf ffefffff ffffffff ffffffff
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="PS/2 Mouse"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input2
U: Uniq=
H: Handlers=mouse1 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3bash-3.1# cat /proc/bus/input/devices
I: Bus=0017 Vendor=0001 Product=0001 Version=0100
N: Name="Macintosh mouse button emulation"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input1
U: Uniq=
H: Handlers=kbd event1
B: EV=120013
B: KEY=8000 0 0 0 0 0 500f 2102002 380307c f810d001 feffffdf ffefffff ffffffff ffffffff
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="PS/2 Mouse"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input2
U: Uniq=
H: Handlers=mouse1 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7321
N: Name="AlpsPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input3
U: Uniq=
H: Handlers=mouse2 event3
B: EV=f
B: KEY=420 0 70000 0 0 0 0 0 0 0 0
B: REL=3
B: ABS=1000003

I really should have figured it out right away, stupid me. Thanks very much for your help. If anyone else has this problem I'd be happy to help further. Here's my fine-tuned for the XPS M1530 xorg.conf (my initial one works but not exceptionally well):
Code:

Section InputDevice
    Identifier    "Mouse1"
    Driver        "synaptics"
    Option        "SendCoreEvents" "true"
    Option "Device" "/dev/psaux"
    Option "Protocol" "auto-dev"
    Option "LeftEdge" "120"
    Option "RightEdge" "830"
    Option "TopEdge" "120"
    Option "BottomEdge" "650"
    Option "FingerLow" "14"
    Option "FingerHigh" "15"
    Option "MaxTapTime" "180"
    Option "MaxTapMove" "110"
    Option "ClickTime" "0"
    Option "EmulateMidButtonTime" "75"
    Option "VertScrollDelta" "10"
    Option "HorizScrollDelta" "0"
    Option "MinSpeed" "0.45"
    Option "MaxSpeed" "0.75"
    Option "AccelFactor" "0.020"
    Option "EdgeMotionMinSpeed" "200"
    Option "EdgeMotionMaxSpeed" "200"
    Option "UpDownScrolling" "1"
    Option "CircularScrolling" "0"
    Option "SHMConfig" "true"
EndSection

Thanks again to everyone for your time.
Didier, the psmouse module can be loaded with a synaptics mouse.

Didier Spaier 02-24-2009 03:17 PM

Quote:

Originally Posted by RedScare (Post 3456032)
Didier, the psmouse module can be loaded with a synaptics mouse.

Good to know, thanks for the information. ;)

I'm happy you end up with a fine tuned touch pad. :cool:

RedScare 02-24-2009 04:51 PM

Thank you very much for all your help.


All times are GMT -5. The time now is 08:09 AM.