You are not logged in.

#1 2012-10-27 14:10:06

jakob
Member
From: Berlin
Registered: 2005-10-27
Posts: 430

Udev rule (press_to_select=1) doesn't work at startup, only later

I want to activate press_to_select on my thinkpad trackpoint in order to use a press on the trackpoint as a left button mouse click.

Thinkwiki has a few suggestions on how to implement this, so I created a file /etc/udev/rules.d/10-trackpoint.rules containing the following:

SUBSYSTEM=="serio", DRIVERS=="psmouse", WAIT_FOR="/sys/devices/platform/i8042/serio1/sensitivity", ATTR{sensitivity}="150", ATTR{press_to_select}="1"

However, after reboot, press_to_select is still set to 0. Only if I execute # udevadm test /sys/devices/platform/i8042/serio1, press_to_select and sensitivity are set to the according values.

When checking journalctl, the problem seems obvious:

Oct 27 15:01:20 x220 systemd-udevd[133]: 1;31minvalid ATTRS operation0m
Oct 27 15:01:20 x220 systemd-udevd[133]: 1;31minvalid rule '/etc/udev/rules.d/10-trackpoint.rules:1'0m
[…]
Oct 27 15:01:25 x220 kernel: psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
Oct 27 15:01:25 x220 kernel: input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input7

To me it looks as if the udev rules' WAIT_FOR statement doesn't seem to work out. Does anyone know a solution to this? I also tried to rename the rule to 98-trackpoint.rules, but to no avail

Best, Jakob

edit:// just checked systemctl status systemd-udevd.service and jound the followng errors:

Oct 27 15:01:20 x220 systemd-udevd[133]: invalid ATTRS operation
Oct 27 15:01:20 x220 systemd-udevd[133]: invalid rule '/etc/udev/rules.d/10-trackpoint.rules:1'

Will set udev log level to debug and see what it says

edit2: I updated the rule to reflect a change (%s/ATTRS/ATTR) that doesn't give the error from systemctl status systemd-udevd.service anymore. This rule also doesn't give any errors by # udevadm test /sys/devices/platform/i8042/serio1 anymore, and still works when executing it manually… so the question remains: why doesn't udev wai with the execution of the rule?

edit3: Ok, also found debian bug report from 2009 and tried to put "WAIT_FOR=press_to_select" instead of the full path into the rule. Still to no avail. Maybe its really a kernel bug then…?

edit4: Haha, contacted the bug reporter from edit 3 and he gave me his working rule, but it doesn't do the job here… so maybe a systemd thing then. Anyway, here's my current rule:

KERNEL=="serio1", SUBSYSTEM=="serio", DRIVER=="psmouse", WAIT_FOR="press_to_select", ATTR{press_to_select}="1", ATTR{ztime}="15", ATTR{sensitivity}="180"

Last edited by jakob (2012-10-27 17:03:14)

Offline

#2 2012-11-21 12:31:55

suicidefish
Member
Registered: 2012-11-21
Posts: 2

Re: Udev rule (press_to_select=1) doesn't work at startup, only later

Hi,

did you find a solution for this? I have the same problem. I always need to execute udevadm test to setup my Trackpoint settings.

Thanks!

Offline

#3 2012-11-21 13:54:05

jakob
Member
From: Berlin
Registered: 2005-10-27
Posts: 430

Re: Udev rule (press_to_select=1) doesn't work at startup, only later

Hey suicidefish: No, didn't solve the riddle. I ended up creating a hackish press_to_select.service that executes udevadm test. Note: I have the touchpad disabled by default, so that the trackpoint is serio1

[Unit]
Description=Activate udev rule 10-thinkpad.rules

[Service]
Type=oneshot
ExecStart=/usr/bin/udevadm test /sys/devices/platform/i8042/serio1

[Install]
WantedBy=multi-user.target

Offline

#4 2012-11-24 12:00:02

suicidefish
Member
Registered: 2012-11-21
Posts: 2

Re: Udev rule (press_to_select=1) doesn't work at startup, only later

Worked like a charm. Thank you very much!

Offline

Board footer

Powered by FluxBB