Talk:Hardware/Framework/Laptop 16: Difference between revisions

From NixOS Wiki
Latest comment: 1 August by AmyP in topic improving the udev rule section
 
AmyP (talk | contribs)
 
Line 6: Line 6:


feel free to point out the error if you can find it. [[User:Betalars|Betalars]] ([[User talk:Betalars|talk]]) 20:23, 29 June 2024 (UTC)
feel free to point out the error if you can find it. [[User:Betalars|Betalars]] ([[User talk:Betalars|talk]]) 20:23, 29 June 2024 (UTC)
:Saw this on the FW Discourse as well, and finally got around to taking a look. TL;DR: <code>ACTION=="add", SUBSYSTEM=="hid", DRIVER=="hid-multitouch", ENV{HID_PHYS}=="i2c-*", ATTR{../power/wakeup}="disabled"</code>.
:I don't really trust that rule, though. I'm not confident that those are the best selectors to get to the right device, and I haven't really tested it beyond <code>udevadm trigger -c add .</code> seeming to work. I'd suggest you polish it further before updating this page. :)
:The issue with your approach is that the touchpad uses I2C instead of e.g. USB. I2C is considerably less sophisticated than USB, so it doesn't allow individual devices to wake the system. As such, the individual devices don't have a <code>power/wakeup</code> attribute to set, and the attribute is on the bus itself. Conveniently, in this case, the bus is just the parent directory in sysfs. [[User:AmyP|AmyP]] ([[User talk:AmyP|talk]]) 21:23, 1 August 2024 (UTC)

Latest revision as of 21:23, 1 August 2024

improving the udev rule section

I would have liked to add a udev rule for the trackpad too, but did not manage to find a working rule. This is my WIP:

ACTION=="add", SUBSYSTEM=="i2c", DRIVERS=="i2c_hid_acpi", ATTRS{idVendor}=="093a", ATTRS{idProduct}=="0274", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"

feel free to point out the error if you can find it. Betalars (talk) 20:23, 29 June 2024 (UTC)Reply

Saw this on the FW Discourse as well, and finally got around to taking a look. TL;DR: ACTION=="add", SUBSYSTEM=="hid", DRIVER=="hid-multitouch", ENV{HID_PHYS}=="i2c-*", ATTR{../power/wakeup}="disabled".
I don't really trust that rule, though. I'm not confident that those are the best selectors to get to the right device, and I haven't really tested it beyond udevadm trigger -c add . seeming to work. I'd suggest you polish it further before updating this page. :)
The issue with your approach is that the touchpad uses I2C instead of e.g. USB. I2C is considerably less sophisticated than USB, so it doesn't allow individual devices to wake the system. As such, the individual devices don't have a power/wakeup attribute to set, and the attribute is on the bus itself. Conveniently, in this case, the bus is just the parent directory in sysfs. AmyP (talk) 21:23, 1 August 2024 (UTC)Reply