0

I am trying to create a simple udev rule, for the device below, Sony Computer Entertainment Inc BD Remote Control, but it does not work, I have read several tutorials, some documentation and other doubt posts like this one, in no case can I make it work.

I just do not know if it's an error in device attributes, distrubution that does not support udev rules or any other error.

"sudo reboot" is for testing purposes only.

I'm using Linux Mint.

Linux Mint Linux HP 4.15.0-20-generic # 21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

Here's one of several tests I've done:

ACTION=="add", SUBSYSTEM=="input", SUBSYSTEMS=="input",
ATTR{phys}=="00:19:86:00:15:36", RUN+="sudo reboot"

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:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/hci0:11/0005:054C:0306.003A/input/input70/event15':
    KERNEL=="event15"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/hci0:11/0005:054C:0306.003A/input/input70':
    KERNELS=="input70"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="Sony Computer Entertainment Inc BD Remote Control"
    ATTRS{phys}=="00:19:86:00:15:36"
    ATTRS{properties}=="0"
    ATTRS{uniq}=="00:06:f5:97:ab:94"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/hci0:11/0005:054C:0306.003A':
    KERNELS=="0005:054C:0306.003A"
    SUBSYSTEMS=="hid"
    DRIVERS=="sony"
    ATTRS{country}=="21"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/hci0:11':
    KERNELS=="hci0:11"
    SUBSYSTEMS=="bluetooth"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0':
    KERNELS=="hci0"
    SUBSYSTEMS=="bluetooth"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0':
    KERNELS=="2-1.1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="btusb"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="03"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1':
    KERNELS=="2-1.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="01"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bcdDevice}=="0112"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="22"
    ATTRS{devpath}=="1.1"
    ATTRS{idProduct}=="21e8"
    ATTRS{idVendor}=="0a5c"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Broadcom Corp"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="BCM20702A0"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{serial}=="001986001536"
    ATTRS{speed}=="12"
    ATTRS{urbnum}=="434"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1':
    KERNELS=="2-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="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}=="0000"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="2"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{idProduct}=="0024"
    ATTRS{idVendor}=="8087"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="6"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="fixed"
    ATTRS{speed}=="480"
    ATTRS{urbnum}=="497"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0415"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="2"
    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 4.15.0-20-generic ehci_hcd"
    ATTRS{maxchild}=="2"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{speed}=="480"
    ATTRS{urbnum}=="187"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0320"
    ATTRS{companion}==""
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e26"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="23"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="0f"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{revision}=="0x04"
    ATTRS{subsystem_device}=="0x1854"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

Update: Using the command sudo systemctl status udev.service it seems that the rules are working, but not running script (.sh) or program (/usr/bin/qbittorrent) and referencing this error.

● systemd-udevd.service - udev Kernel Device Manager
Loaded: loaded (/etc/systemd/system/systemd-udevd.service; static; vendor preset: enabled)
Active: active (running) since Wed 2019-03-06 12:21:22 -03; 8min ago
Docs: man:systemd-udevd.service(8)
      man:udev(7)
Main PID: 399 (systemd-udevd)
Status: "Processing with 16 children at max"
Tasks: 1
CGroup: /system.slice/systemd-udevd.service
        └─399 /lib/systemd/systemd-udevd

mar 06 12:21:25 HP systemd-udevd[1939]: Process '/home/luiz/loop.sh' failed with exit code 1.
mar 06 12:21:26 HP systemd-udevd[2196]: Process '/home/luiz/loop.sh' failed with exit code 1. 
mar 06 12:21:26 HP systemd-udevd[2220]: Process '/home/luiz/loop.sh' failed with exit code 1. 
mar 06 12:21:31 HP systemd-udevd[2504]: Process '/home/luiz/loop.sh' failed with exit code 1.
mar 06 12:25:42 HP systemd-udevd[3225]: Process '/home/luiz/loop.sh' failed with exit code 1. 
  • In your test rule, you're tying the rule to an input subsystem device that is a child device of another input subsystem device, and then requiring an ATTR{phys}... but according to your udevadm info listing, the top block (KERNEL=="event15") does not include a phys attribute at all. Since the attribute is not in the top-most block of udevadm info, it needs to be ATTRS{phys} instead. – telcoM Mar 7 at 10:54
  • Also, qbittorrent is a GUI program, and it would need at least the DISPLAY variable and a ~/.Xauthority file (or a properly set XAUTHORITY variable to point to a .Xauthority file elsewhere) set properly in order to run... and unless you do something to change it, your script will be running as root. If you're logged in as luiz, then any old /root/.Xauthority file will be invalidated by the X server, and the udev rule running as root cannot insert qbittorrent into luiz's X11 session, at least not without first stealing the X11 magic cookie. – telcoM Mar 7 at 11:02
  • Hello, 'qbittorrent' was just one of the tests, I tested it with 'reboot', 'sudo reboot', '/ usr / bin / xinput --disable 14' (to disable touchpad) and etc and all gave me the same result at the end I noticed that when running 'sudo systemctl status udev.service' it shows this error 'exit code 1'. – The King Killer Mar 7 at 16:48
  • Hello, qbittorrent was just one of the tests, I tested it with 'reboot', 'sudo reboot', '/ usr / bin / xinput --disable 14' (to disable touchpad) and etc and all gave me the same result at the end I noticed that when running 'systemctl status udev.service' it shows this error 'exit code 1'. Last tests: ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="Sony Computer Entertainment Inc BD Remote Control", RUN+="/usr/bin/qbittorrent" --------- ACTION=="add", KERNEL=="event*", SUBSYSTEMS=="usb", DRIVERS=="usb", ATTR{idProduct}=="07a5", ATTR{idVendor}=="045e", RUN+="/home/luiz/loop.sh" – The King Killer Mar 7 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.