You are not logged in.

#1 2025-11-22 00:22:30

Jazztache
Member
Registered: 2022-10-07
Posts: 63

[SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Hello!

I am attempting to get WebUSB working on Arch Linux. I have a custom Input Labs Alpakka controller. The web application to configure it works on Linux Mint, but not Arch Linux. https://ctrl.inputlabs.io

Of course, since this is an Arch-specific problem, I went onto the Arch Wiki, searched for WebUSB, and found an empty results page...

I am not super active on here, so I am unsure as to what the official channels are to request a page to be made. I would do it myself, but since I came to the wiki to fill in my lack knowledge on WebUSB, I won't be much help :')

Could it be possible if:
1. I could get some advice and help setting up WebUSB fully on Arch Linux
2. That advice make its way into a new Arch Wiki article.

Thankyou!

Last edited by Jazztache (2025-12-08 00:06:49)

Offline

#2 2025-11-22 08:52:44

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

What do you mean by "it works […] not [on] Arch Linux"?
This is officially only supported by chromium-based browsers (not webkit or mozilla) and even there you'll have to explicitly enable the feature (because of how idiotic the entire idea is, I assume…)
https://developer.mozilla.org/de/docs/W … WebUSB_API

If you've done that, what kind of error do you get (from the browser!) when trying to use it?
Might be an access restriction, ie. you'll need to use eg. a  https://wiki.archlinux.org/title/Udev#I … udev_rules to grant yourself (maybe via a webusb group) necessary access to the hardware.

To be very clear: even when helping you with this, that does not mean that I don't think that THIS IS NOT A GOOD IDEA AT ALL.

Offline

#3 2025-11-22 21:30:12

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Here is what I know/have done:
1. I have installed Chromium. Not using Firefox. I tried it on Firefox and then tried Brave, then Chromium. Chromium works.
2. When I plug the controller into my Linux Mint laptop on Chromium, the interface shows my controllers profiles
3. When I plug the controller into my Arch Linux desktop on Chromium, I get the following error:
'SecurityError: Failed to execute 'open' on 'USBDevice': Access denied.'
(This means the access is likely the issue)
4. I have the udev rules installed as stated by the developers in https://ctrl.inputlabs.io/help/linux
5. I have set the controller to XInput as per the instructions.

As for what groups my user is in:

~ # groups
jazztache libvirt wheel plugdev

here is the udev rule:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0170", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"

I'm assuming that 'webusb' is the Arch equivalent of 'plugdev', which I heard the InputLabs developers mention. If this is the correct way of doing it, I can tell the developers to update the help page.

Additionally:

To be very clear: even when helping you with this, that does not mean that I don't think that THIS IS NOT A GOOD IDEA AT ALL.

Security issues, I presume?

Offline

#4 2025-11-22 22:13:12

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

3. When I plug the controller into my Arch Linux desktop on Chromium, I get the following error:
'SecurityError: Failed to execute 'open' on 'USBDevice': Access denied.'
(This means the access is likely the issue)

getfacl /dev/webusb

Last edited by seth (2025-11-22 22:13:25)

Offline

#5 2025-11-23 00:02:43

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

~ # getfacl /dev/webusb
getfacl: /dev/webusb: No such file or directory

Yeah forgot to mention this. The /dev/webusb file doesn't even get created.

Offline

#6 2025-11-23 08:02:03

progandy
Member
Registered: 2012-05-17
Posts: 5,304

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

This is what I did for webhid (not webusb), maybe simply remove the group, uaccess should handle the necessary permissions for you to gain access. Then, after adding the rules you might have have to reload the udev cache (udevadm control --reload) before replugging the device.

 $ cat /etc/udev/rules.d/71-qmk-via.conf 
# Keychron K5 3434:0251
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0251", MODE="0660", TAG+="uaccess"

If you just want to use the settings app once, you could manually create the symlink and allow access to the device until replug/reboot using setfacl or chmod instead of adding the udev rules.

Last edited by progandy (2025-11-23 08:08:34)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |

Offline

#7 2025-11-23 08:21:21

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Yeah forgot to mention this. The /dev/webusb file doesn't even get created.

Means the udev rule didn't hit at all?
Check lsusb whether the vid:pid are actually correct, did you reboot or reload udev after adding the rule?

Offline

#8 2025-11-23 10:14:46

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Just checked. Still doesn't work.

Here is the udev rule:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="028e", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"

For reference, the InputLabs Alpakka for some reason appears as 'Bus 001 Device 003: ID 045e:028e Microsoft Corp. Xbox360 Controller', likely due to being put into the XInput Linux mode. Not sure why it shows up like this. I have it set to a desktop profile that doesn't use any controller binds so, not sure what the deal is with that.

The original second line used "0170" for the vendor attrs, so I changed it to match the USB ID. Same result, unfortunately.

Offline

#9 2025-11-23 13:43:43

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

028e is isProduct, not idVendor, 045E is microsofts vendor id.
https://devicehunt.com/view/type/usb/ve … evice/028E is the xbox controller, so this isn't weird but maybe not exactly true (still relevant)

See https://wiki.archlinux.org/title/Udev#Example on how to query your device for a useful rule for that device.

Offline

#10 2025-11-24 09:29:59

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

I noticed that the USB ID changes based on the mode. When put into the Windows XInput mode it shows up as 0x0170 for idVendor, and 0xaa80 for idProduct using `lsusb -v`.

Still no dice.

Additionally:

udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video2)

Is there any non trial-and-error method to get the `--name` value based on the info in lsusb or some other command?

Offline

#11 2025-11-24 13:35:59

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

udevadm monitor

and plug the device.

Offline

#12 2025-11-25 05:25:53

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Thanks! Unfortunately, still no functional WebUSB. I'm sure that from the output it's AA80 since that's the ID afterwards.

Welcome back! It is currently Tue Nov 25 04:21:31 PM AEDT 2025
[Ctrl + S, e] is used to (e)dit (S)crollback in Zellij. Use this to save to a file.
~ # udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[836.808853] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
KERNEL[836.847437] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[836.863690] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D (hid)
KERNEL[836.863827] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39 (input)
KERNEL[836.914169] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::numlock (leds)
KERNEL[836.922129] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::numlock (leds)
KERNEL[836.922218] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::capslock (leds)
KERNEL[836.926106] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::capslock (leds)
KERNEL[836.926192] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::scrolllock (leds)
KERNEL[836.942132] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::scrolllock (leds)
KERNEL[836.942238] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::compose (leds)
KERNEL[836.942332] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::kana (leds)
KERNEL[836.958124] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::kana (leds)
KERNEL[836.958238] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/event23 (input)
KERNEL[836.958349] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40 (input)
KERNEL[836.958443] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40/event24 (input)
KERNEL[836.958530] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40/mouse2 (input)
KERNEL[836.958611] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/hidraw/hidraw6 (hidraw)
KERNEL[836.958682] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D (hid)
KERNEL[836.958746] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[836.964385] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.1 (usb)
KERNEL[836.964578] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.2 (usb)
KERNEL[836.964656] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
UDEV  [837.013113] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
UDEV  [837.019421] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [837.019881] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.2 (usb)
UDEV  [837.019980] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.1 (usb)
UDEV  [837.022361] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D (hid)
UDEV  [837.027421] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39 (input)
UDEV  [837.027543] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40 (input)
UDEV  [837.030204] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/hidraw/hidraw6 (hidraw)
UDEV  [837.031539] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::numlock (leds)
UDEV  [837.032014] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::capslock (leds)
UDEV  [837.032168] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::scrolllock (leds)
UDEV  [837.032469] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::compose (leds)
UDEV  [837.033322] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::kana (leds)
UDEV  [837.034917] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40/mouse2 (input)
UDEV  [837.035660] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::numlock (leds)
UDEV  [837.036442] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::scrolllock (leds)
UDEV  [837.036519] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::capslock (leds)
UDEV  [837.037503] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/input39::kana (leds)
UDEV  [837.066563] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input39/event23 (input)
UDEV  [837.066666] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D/input/input40/event24 (input)
UDEV  [837.069482] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.000D (hid)
UDEV  [837.075512] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [837.125032] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
^C⏎~ # cat /etc/udev/rules.d/99-alpakka.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0170", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="028e", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
~ # sudo sed -i -e 's/028e/aa80/g' /etc/udev/rules.d/99-alpakka.rules
[sudo] password for jazztache:
~ # cat /etc/udev/rules.d/99-alpakka.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0170", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="aa80", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
~ #

Does it have to match exactly with the caps or not?

Offline

#13 2025-11-25 09:23:57

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

neither aa80 nor 0170 are known vendor IDs.

You wrote:

Is there any non trial-and-error method to get the `--name` value

seth wrote:

udevadm monitor

Offline

#14 2025-11-25 23:51:30

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

My last reply *is* the output of udevadm monitor. It's the third command in the code block. I supplied the extra commands afterwards to 'show working' and what I did to alleviate the problem.
The AA80 and 0170 aren't known vendor IDs, because they are the vendor IDs of the Inputlabs Alpakka, a device which is not documented on the Arch Wiki.

The Arch Wiki does not have a dedicated article explaining WebUSB, and it doesn't have one documenting the InputLabs Alpakka. I searched for both 'WebUSB' and 'InputLabs Alpakka' on the Arch Wiki's search bar and got no results for both. The Alpakka, I understand, but WebUSB should probably have an article.

Unfortunately, I had no luck with the udev rules at the end of the previous command, and the official udev rules both do not work.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0170", MODE="0660", GROUP="plugdev", SYMLINK+="webusb", TAG+="uaccess"

Edit:

progandy wrote:

This is what I did for webhid (not webusb), maybe simply remove the group, uaccess should handle the necessary permissions for you to gain access. Then, after adding the rules you might have have to reload the udev cache (udevadm control --reload)

I also tried removing the group, but no dice. My `/etc/udev/rules.d/99-alpakka.rules` now looks like this:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", MODE="0660", SYMLINK+="webusb", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0170", MODE="0660", SYMLINK+="webusb", TAG+="uaccess"

After changing it, I couldn't reload udevadm...

~ # udevadm control --reload
Failed to connect to udev via varlink: Permission denied

What other steps can I take to troubleshoot this?

Last edited by Jazztache (2025-11-26 00:07:11)

Offline

#15 2025-11-26 07:15:41

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

The AA80 and 0170 aren't known vendor IDs, because they are the vendor IDs of the Inputlabs Alpakka, a device which is not documented on the Arch Wiki.

Not known as vendor IDs to eg. https://devicehunt.com/ or /usr/share/hwdata/pci.ids
Next to querying the tokens udev expects, what's the actual output of "lsusb"? The IDs seemed to have been 045e:028e (for the xbox controller)

My last reply *is* the output of udevadm monitor.

The point is that this was for how to figure which device node to attribute walk, eg.

udevadm info --attribute-walk /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0

The Arch Wiki does not have a dedicated article explaining WebUSB, and it doesn't have one documenting the InputLabs Alpakka.

Neither being relevant here, you're seeking to add a udev rule (which is neither complicated and also detailed in the wiki) and are looking for the correct vendor and product ID of your device.

Offline

#16 2025-11-26 09:21:30

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

I've run `udevadm monitor` to get the device ID, then ran it through `udevadm info --attribute-walk`. The problem is that the controller reports as multiple devices. The Alpakka is a mouse, keyboard and regular controller as one device.

Running the two commands in succession with the ID for 'mouse1' gives this.

~ # udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[14402.624969] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
KERNEL[14402.664585] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[14402.678835] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019 (hid)
KERNEL[14402.678958] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63 (input)
KERNEL[14402.729155] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::numlock (leds)
KERNEL[14402.740103] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::numlock (leds)
KERNEL[14402.740175] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::capslock (leds)
KERNEL[14402.752093] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::capslock (leds)
KERNEL[14402.752176] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::scrolllock (leds)
KERNEL[14402.768111] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::scrolllock (leds)
KERNEL[14402.768209] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::compose (leds)
KERNEL[14402.768303] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::kana (leds)
KERNEL[14402.778125] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::kana (leds)
KERNEL[14402.778221] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/event6 (input)
KERNEL[14402.778336] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64 (input)
KERNEL[14402.778409] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64/event7 (input)
KERNEL[14402.778501] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64/mouse1 (input)
KERNEL[14402.778594] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/hidraw/hidraw4 (hidraw)
KERNEL[14402.778667] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019 (hid)
KERNEL[14402.778731] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
KERNEL[14402.786537] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.1 (usb)
KERNEL[14402.786734] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.2 (usb)
KERNEL[14402.786795] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
UDEV  [14402.839387] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
UDEV  [14402.845669] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [14402.846035] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.1 (usb)
UDEV  [14402.846596] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.2 (usb)
UDEV  [14402.848572] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019 (hid)
UDEV  [14402.853483] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63 (input)
UDEV  [14402.853642] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64 (input)
UDEV  [14402.856209] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/hidraw/hidraw4 (hidraw)
UDEV  [14402.857630] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::numlock (leds)
UDEV  [14402.857925] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::capslock (leds)
UDEV  [14402.858597] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::compose (leds)
UDEV  [14402.858690] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::kana (leds)
UDEV  [14402.859202] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::scrolllock (leds)
UDEV  [14402.861487] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64/mouse1 (input)
UDEV  [14402.862080] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::numlock (leds)
UDEV  [14402.862229] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::capslock (leds)
UDEV  [14402.862759] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::kana (leds)
UDEV  [14402.863407] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/input63::scrolllock (leds)
UDEV  [14402.883889] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input64/event7 (input)
UDEV  [14402.884046] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/input/input63/event6 (input)
UDEV  [14402.886954] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019 (hid)
UDEV  [14402.893077] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [14402.943462] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1 (usb)
^C⏎~ # udevadm info --attribute-walk /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1
Unknown device "/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1": No such device
~ #

Also to note that there is both XInput on Windows and XInput on Linux. My controller reports this on XInput Windows using lsusb:

Bus 001 Device 023: ID 0170:aa80 Input Labs Alpakka

In Linux mode it is this:

Bus 001 Device 024: ID 045e:028e Microsoft Corp. Xbox360 Controller

See 'protocol mode' on https://inputlabs.io/alpakka/manual/tune

For the record, I don't expect an obscure controller to be documented on the Arch Wiki. WebUSB, maybe for a bit of guidance and pointing to udev rules, and for the first steps in troubleshooting.

Offline

#17 2025-11-26 12:41:52

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

seth wrote:

udevadm info --attribute-walk /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0

But also test

udevadm info --attribute-walk /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019

which likely will get you more into the hidraw  territory and w/ progandy's solution in mind I'd check

udevadm info --attribute-walk /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:0170:AA80.0019/hidraw/hidraw4

Offline

#18 2025-11-26 17:13:55

progandy
Member
Registered: 2012-05-17
Posts: 5,304

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

In the info command you need to use -p or prefix the path from the monitor command with /sys

udevadm info --attribute-walk -p /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0
or
udevadm info --attribute-walk /sys/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0

To force reload the udev rules with udevadm you need root privileges. If you were in a root shell, I don't know why that would fail.

The following should be enough according to some webusb issues. https://github.com/WICG/webusb/issues/7 … -449074421

Use an udev rule file starting with number 71-, to order it between the default uacess rules (70-uaccess) and the rule file that actually runs the uaccess commands (73-seat-late) This is also mentioned in the wiki here:
https://wiki.archlinux.org/title/Udev#A … se_devices


/etc/udev/rules.d/71-webusb-alpakka.rules

ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_XINPUT_LINUX_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_XINPUT_LINUX_HERE", MODE="0660", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_GENERIC_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_GENERIC_HERE", MODE="0660", TAG+="uaccess"
# and maybe
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_XINPUT_WINDOWS_HERE" ATTR{idProduct}=="VENDOR_ID_FOR_XINPUT_WINDOWS_HERE", MODE="0660", TAG+="uaccess"

Last edited by progandy (2025-12-02 06:02:50)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |

Offline

#19 2025-11-27 04:23:19

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

~ # udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1561.437506] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3 (usb)
KERNEL[1561.478241] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0 (usb)
KERNEL[1561.492407] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F (hid)
KERNEL[1561.492519] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43 (input)
KERNEL[1561.543577] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::numlock (leds)
KERNEL[1561.547254] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::numlock (leds)
KERNEL[1561.547350] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::capslock (leds)
KERNEL[1561.554103] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::capslock (leds)
KERNEL[1561.554194] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::scrolllock (leds)
KERNEL[1561.562101] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::scrolllock (leds)
KERNEL[1561.562185] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::compose (leds)
KERNEL[1561.562265] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::kana (leds)
KERNEL[1561.575134] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::kana (leds)
KERNEL[1561.575231] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/event23 (input)
KERNEL[1561.575336] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44 (input)
KERNEL[1561.575424] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44/event24 (input)
KERNEL[1561.575507] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44/mouse2 (input)
KERNEL[1561.575589] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/hidraw/hidraw6 (hidraw)
KERNEL[1561.575667] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F (hid)
KERNEL[1561.575746] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0 (usb)
KERNEL[1561.584233] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.1 (usb)
KERNEL[1561.584343] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.2 (usb)
KERNEL[1561.584422] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3 (usb)
UDEV  [1561.637177] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3 (usb)
UDEV  [1561.643467] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0 (usb)
UDEV  [1561.643730] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.1 (usb)
UDEV  [1561.643948] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.2 (usb)
UDEV  [1561.646291] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F (hid)
UDEV  [1561.651506] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43 (input)
UDEV  [1561.651662] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44 (input)
UDEV  [1561.654045] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/hidraw/hidraw6 (hidraw)
UDEV  [1561.655593] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::numlock (leds)
UDEV  [1561.656337] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::scrolllock (leds)
UDEV  [1561.656561] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::compose (leds)
UDEV  [1561.656651] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::capslock (leds)
UDEV  [1561.657252] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::kana (leds)
UDEV  [1561.659717] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::numlock (leds)
UDEV  [1561.660145] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44/mouse2 (input)
UDEV  [1561.660509] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::scrolllock (leds)
UDEV  [1561.660814] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::capslock (leds)
UDEV  [1561.661321] change   /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/input43::kana (leds)
UDEV  [1561.683655] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input43/event23 (input)
UDEV  [1561.683752] add      /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F/input/input44/event24 (input)
UDEV  [1561.686699] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0/0003:0170:AA80.000F (hid)
UDEV  [1561.692633] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3/1-3:1.0 (usb)
UDEV  [1561.745115] bind     /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3 (usb)
^C⏎                                                                                                                                                                         ~ # udevadm info --attribute-walk -p /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3


Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-3':
    KERNEL=="1-3"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTR{authorized}=="1"
    ATTR{avoid_reset_quirk}=="0"
    ATTR{bConfigurationValue}=="1"
    ATTR{bDeviceClass}=="00"
    ATTR{bDeviceProtocol}=="00"
    ATTR{bDeviceSubClass}=="00"
    ATTR{bMaxPacketSize0}=="64"
    ATTR{bMaxPower}=="500mA"
    ATTR{bNumConfigurations}=="1"
    ATTR{bNumInterfaces}==" 3"
    ATTR{bcdDevice}=="0114"
    ATTR{bmAttributes}=="80"
    ATTR{busnum}=="1"
    ATTR{configuration}==""
    ATTR{devnum}=="12"
    ATTR{devpath}=="3"
    ATTR{idProduct}=="aa80"
    ATTR{idVendor}=="0170"
    ATTR{ltm_capable}=="no"
    ATTR{manufacturer}=="Input Labs"
    ATTR{maxchild}=="0"
    ATTR{physical_location/dock}=="no"
    ATTR{physical_location/horizontal_position}=="left"
    ATTR{physical_location/lid}=="no"
    ATTR{physical_location/panel}=="top"
    ATTR{physical_location/vertical_position}=="upper"
    ATTR{power/active_duration}=="60986"
    ATTR{power/autosuspend}=="2"
    ATTR{power/autosuspend_delay_ms}=="2000"
    ATTR{power/connected_duration}=="60987"
    ATTR{power/control}=="on"
    ATTR{power/level}=="on"
    ATTR{power/persist}=="1"
    ATTR{power/runtime_active_time}=="60486"
    ATTR{power/runtime_status}=="active"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{product}=="Alpakka"
    ATTR{quirks}=="0x0"
    ATTR{removable}=="removable"
    ATTR{remove}=="(not readable)"
    ATTR{rx_lanes}=="1"
    ATTR{serial}=="v1"
    ATTR{speed}=="12"
    ATTR{tx_lanes}=="1"
    ATTR{urbnum}=="13992"
    ATTR{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0617"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.17.8-arch1-1 xhci-hcd"
    ATTRS{maxchild}=="12"
    ATTRS{power/active_duration}=="1621335"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="1621335"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="1621279"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:0c:00.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="235"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0':
    KERNELS=="0000:0c:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{aer/correctable_ratelimit_burst}=="10"
    ATTRS{aer/correctable_ratelimit_interval_ms}=="5000"
    ATTRS{aer/nonfatal_ratelimit_burst}=="10"
    ATTRS{aer/nonfatal_ratelimit_interval_ms}=="5000"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{current_link_speed}=="2.5 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{dbc}=="disabled"
    ATTRS{dbc_bInterfaceProtocol}=="01"
    ATTRS{dbc_bcdDevice}=="0010"
    ATTRS{dbc_idProduct}=="0010"
    ATTRS{dbc_idVendor}=="1d6b"
    ATTRS{dbc_poll_interval_ms}=="64"
    ATTRS{device}=="0x43fc"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="24"
    ATTRS{link/l0s_aspm}=="0"
    ATTRS{local_cpulist}=="0-15"
    ATTRS{local_cpus}=="ffff"
    ATTRS{max_link_speed}=="2.5 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/43}=="msix"
    ATTRS{msi_irqs/44}=="msix"
    ATTRS{msi_irqs/45}=="msix"
    ATTRS{msi_irqs/46}=="msix"
    ATTRS{msi_irqs/47}=="msix"
    ATTRS{msi_irqs/48}=="msix"
    ATTRS{msi_irqs/49}=="msix"
    ATTRS{msi_irqs/50}=="msix"
    ATTRS{numa_node}=="-1"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_time}=="1621540"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{reset}=="(not readable)"
    ATTRS{reset_method}=="bus"
    ATTRS{resource0}=="(not readable)"
    ATTRS{revision}=="0x01"
    ATTRS{subsystem_device}=="0x1142"
    ATTRS{subsystem_vendor}=="0x1b21"
    ATTRS{vendor}=="0x1022"

  looking at parent device '/devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0':
    KERNELS=="0000:06:0c.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="pcieport"
    ATTRS{aer/correctable_ratelimit_burst}=="10"
    ATTRS{aer/correctable_ratelimit_interval_ms}=="5000"
    ATTRS{aer/nonfatal_ratelimit_burst}=="10"
    ATTRS{aer/nonfatal_ratelimit_interval_ms}=="5000"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{current_link_speed}=="2.5 GT/s PCIe"
    ATTRS{current_link_width}=="1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x43f5"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="2"
    ATTRS{irq}=="24"
    ATTRS{local_cpulist}=="0-15"
    ATTRS{local_cpus}=="ffff"
    ATTRS{max_link_speed}=="2.5 GT/s PCIe"
    ATTRS{max_link_width}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power/autosuspend_delay_ms}=="100"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="1621544"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{reset_subordinate}=="(not readable)"
    ATTRS{revision}=="0x01"
    ATTRS{secondary_bus_number}=="12"
    ATTRS{subordinate_bus_number}=="12"
    ATTRS{subsystem_device}=="0x3328"
    ATTRS{subsystem_vendor}=="0x1b21"
    ATTRS{vendor}=="0x1022"

  looking at parent device '/devices/pci0000:00/0000:00:02.1/0000:05:00.0':
    KERNELS=="0000:05:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="pcieport"
    ATTRS{aer/correctable_ratelimit_burst}=="10"
    ATTRS{aer/correctable_ratelimit_interval_ms}=="5000"
    ATTRS{aer/nonfatal_ratelimit_burst}=="10"
    ATTRS{aer/nonfatal_ratelimit_interval_ms}=="5000"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{current_link_speed}=="16.0 GT/s PCIe"
    ATTRS{current_link_width}=="4"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x43f4"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="2"
    ATTRS{irq}=="24"
    ATTRS{link/l1_1_pcipm}=="0"
    ATTRS{link/l1_aspm}=="0"
    ATTRS{local_cpulist}=="0-15"
    ATTRS{local_cpus}=="ffff"
    ATTRS{max_link_speed}=="16.0 GT/s PCIe"
    ATTRS{max_link_width}=="4"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power/autosuspend_delay_ms}=="100"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="1621549"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{reset}=="(not readable)"
    ATTRS{reset_method}=="pm bus"
    ATTRS{reset_subordinate}=="(not readable)"
    ATTRS{revision}=="0x01"
    ATTRS{secondary_bus_number}=="6"
    ATTRS{subordinate_bus_number}=="13"
    ATTRS{subsystem_device}=="0x3328"
    ATTRS{subsystem_vendor}=="0x1b21"
    ATTRS{vendor}=="0x1022"

  looking at parent device '/devices/pci0000:00/0000:00:02.1':
    KERNELS=="0000:00:02.1"
    SUBSYSTEMS=="pci"
    DRIVERS=="pcieport"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{current_link_speed}=="16.0 GT/s PCIe"
    ATTRS{current_link_width}=="4"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x14db"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="2"
    ATTRS{irq}=="29"
    ATTRS{local_cpulist}=="0-15"
    ATTRS{local_cpus}=="ffff"
    ATTRS{max_link_speed}=="32.0 GT/s PCIe"
    ATTRS{max_link_width}=="4"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/29}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/autosuspend_delay_ms}=="100"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="1621555"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{reset}=="(not readable)"
    ATTRS{reset_method}=="pm"
    ATTRS{reset_subordinate}=="(not readable)"
    ATTRS{revision}=="0x00"
    ATTRS{secondary_bus_number}=="5"
    ATTRS{subordinate_bus_number}=="13"
    ATTRS{subsystem_device}=="0x8877"
    ATTRS{subsystem_vendor}=="0x1043"
    ATTRS{vendor}=="0x1022"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{waiting_for_supplier}=="0"
~ # sudo nvim /etc/udev/rules.d/71-webusb-alpakka.conf                                                                                                                      [sudo] password for jazztache:
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_XINPUT_LINUX_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_XINPUT_LINUX_HERE", MODE="0660", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_GENERIC_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_GENERIC_HERE", MODE="0660", TAG+="uaccess"
# and maybe
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_XINPUT_WINDOWS_HERE" ATTR{idProduct}=="VENDOR_ID_FOR_XINPUT_WINDOWS_HERE", MODE="0660", TAG+="uaccess"
~ # lsusb | grep Alpakka
Bus 001 Device 012: ID 0170:aa80 Input Labs Alpakka
~ # sudo nvim /etc/udev/rules.d/71-webusb-alpakka.conf
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_XINPUT_LINUX_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_XINPUT_LINUX_HERE", MODE="0660", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_GENERIC_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_GENERIC_HERE", MODE="0660", TAG+="uaccess"
# and maybe
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="AA80", MODE="0660", TAG+="uaccess"
~ # lsusb | grep Alpakka
~ # lsusb | grep Xbox
Bus 001 Device 013: ID 045e:028e Microsoft Corp. Xbox360 Controller
~ # sudo nvim /etc/udev/rules.d/71-webusb-alpakka.conf
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045E" ATTR{idProduct}=="028E", MODE="0660", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="VENDOR_ID_FOR_GENERIC_HERE" ATTR{idProduct}=="PRODUCT_ID_FOR_GENERIC_HERE", MODE="0660", TAG+="uaccess"
# and maybe
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="AA80", MODE="0660", TAG+="uaccess"
~ # lsusb | grep Alpakka
Bus 001 Device 014: ID 0170:ac80 Input Labs Alpakka
~ # echo 'This is in generic mode now, the product ID at the end is different on the second digit.'
This is in generic mode now, the product ID at the end is different on the second digit.
~ # sudo nvim /etc/udev/rules.d/71-webusb-alpakka.conf
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045E" ATTR{idProduct}=="028E", MODE="0660", TAG+="uaccess" # Windows XInput Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="AC80", MODE="0660", TAG+="uaccess" # Generic Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="AA80", MODE="0660", TAG+="uaccess" # Linux XInput Mode
~ # sudo udevadm control --reload-rules && sudo udevadm trigger
~ # echo 'The GH post says to keep the hex numbers in lowercase, so...'
The GH post says to keep the hex numbers in lowercase, so...
~ # sudo nvim /etc/udev/rules.d/71-webusb-alpakka.conf
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045e" ATTR{idProduct}=="028e", MODE="0660", TAG+="uaccess" # Windows XInput Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="ac80", MODE="0660", TAG+="uaccess" # Generic Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="aa80", MODE="0660", TAG+="uaccess" # Linux XInput Mode
~ # sudo mv /etc/udev/rules.d/99-alpakka.rules ~/99-alpakka-rules-old.rules -v
copied '/etc/udev/rules.d/99-alpakka.rules' -> '/home/jazztache/99-alpakka-rules-old.rules'
removed '/etc/udev/rules.d/99-alpakka.rules'
~ # lsusb | grep Alpakka
Bus 001 Device 015: ID 0170:ac80 Input Labs Alpakka
~ # lsusb | grep Alpakka
~ # echo '...and re-insert'
...and re-insert
~ # lsusb | grep Alpakka
Bus 001 Device 016: ID 0170:ac80 Input Labs Alpakka
~ #

Still no dice. Gonna reboot my PC and then look into how to de-register the controller from Chromium.

Offline

#20 2025-11-27 08:22:56

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

This works better when you're using seperate code tags for the individual contents…

~ # lsusb | grep Alpakka
Bus 001 Device 014: ID 0170:ac80 Input Labs Alpakka

Append

, RUN+="/usr/bin/touch /tmp/udev_ac80.hit"

to the rules (one per PID so you also know which one if any)

Offline

#21 2025-11-27 09:42:30

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Alright, I'll do this tomorrow and then get back to it. I'm assuming this will add a temporary file by using `touch`, but for what purpose?

Also, by per PID, do you mean as in per mode? Like XInput Windows, XInput Linux, Generic?

Also apologies for the huge codeblock, just wanted to get everything in one hit. Zellij has a copy scrollback function, which is how I have been copying my output.

Offline

#22 2025-11-27 13:26:36

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

but for what purpose?

The idea is to add a marker that will tell you whether and which rule was ever applied.

Edit:  and per PID = product ID

ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045e" ATTR{idProduct}=="028e", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_028e.hit" # Windows XInput Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="ac80", MODE="0660", TAG+="uaccess" , RUN+="/usr/bin/touch /tmp/udev_ac80.hit"# Generic Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="aa80", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_aa80.hit" # Linux XInput Mode

Last edited by seth (2025-11-27 13:28:14)

Offline

#23 2025-11-28 03:13:25

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

~ # sudo find /tmp/ -type f -name "*.hit"
~ # cat /etc/udev/rules.d/71-webusb-alpakka.conf
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045e" ATTR{idProduct}=="028e", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_028e.hit # Windows XInput Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="ac80", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_ac80.hit # Generic Mode
ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170" ATTR{idProduct}=="aa80", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_aa80.hit # Linux XInput Mode
~ #

So, no marker file was found... I tried both USB 3 and USB 2 ports as well.

Offline

#24 2025-11-28 08:29:50

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,325

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

Run

dmesg -W

, plug that nasty little thing in and post the output it generates…

Offline

#25 2025-11-29 01:37:50

Jazztache
Member
Registered: 2022-10-07
Posts: 63

Re: [SOLVED] WebUSB/udev Rules For Input Labs Alpakka Controller

One dmesg -W, coming right up:

~ # sudo dmesg -W
[10194.981082] usb 1-1: new full-speed USB device number 10 using xhci_hcd
[10195.351779] usb 1-1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14
[10195.351782] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10195.351784] usb 1-1: Product: Alpakka
[10195.351785] usb 1-1: Manufacturer: Input Labs
[10195.351786] usb 1-1: SerialNumber: v1
[10195.409179] input: Input Labs Alpakka Keyboard as /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:045E:028E.000E/input/input44
[10195.492184] input: Input Labs Alpakka Mouse as /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.0/0003:045E:028E.000E/input/input45
[10195.492274] hid-generic 0003:045E:028E.000E: input,hidraw4: USB HID v1.11 Keyboard [Input Labs Alpakka] on usb-0000:0c:00.0-1/input0
[10195.501037] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:02.1/0000:05:00.0/0000:06:0c.0/0000:0c:00.0/usb1/1-1/1-1:1.2/input/input46
[10195.569045] input input46: unable to receive magic message: -32
[10195.601033] input input46: unable to receive magic message: -32

Edit: misinterpreted the dmesg as from boot,, not from -W. Fixed this.

Last edited by Jazztache (2025-11-30 00:49:46)

Offline

Board footer

Powered by FluxBB