LINUX.ORG.RU

Помогите с правилом udev

 ,


0

1

Есть клавиатура logitech k480, которую я подключаю по BT к ubuntu 18.04. По-умолчанию у клавиатуры FN клавиши работают как мультимедийные. Нашел решение https://github.com/embuc/k480_conf которое работает при запуске руками. Там в конце есть решение для автоматического применения. Я попробовал его применить и не получил положительного результата. Помогите сделать «зашибись»

root@tarh-elitebook:/etc/udev/rules.d# cat 90-k480.rules 
SUBSYSTEM==«hidraw», ACTION==«add», SUBSYSTEMS==«bluetooth», ATTRS{address}==«48:51:b7:9c:79:70», RUN+=«/home/user/git/k480_conf/k480_conf -d /dev/%k -f on»
root@tarh-elitebook:/etc/udev/rules.d# 

при подключении клавы сислог показывает

дек 20 15:39:08 tarh-elitebook kernel: hid-generic 0005:046D:B330.000A: unknown main item tag 0x0
дек 20 15:39:08 tarh-elitebook kernel: input: Logitech Keyboard K480 as /devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256/0005:046D:B330.000A/input/input32
дек 20 15:39:08 tarh-elitebook kernel: hid-generic 0005:046D:B330.000A: input,hidraw3: BLUETOOTH HID v28.00 Keyboard [Logitech Keyboard K480] on 48:51:b7:9c:79:70
дек 20 15:39:08 tarh-elitebook systemd-logind[917]: Watching system buttons on /dev/input/event19 (Logitech Keyboard K480)
дек 20 15:39:08 tarh-elitebook upowerd[1240]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256/0005:046D:B330.000A
дек 20 15:39:08 tarh-elitebook upowerd[1240]: treating change event as add on /sys/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256/0005:046D:B330.000A/power_supply/hid-00:1f:20:e4:18:7f-battery

Вот здесь почему-то два разных адреса

root@tarh-elitebook:/etc/udev/rules.d# cat /sys/class/hidraw/hidraw3/device/uevent 
DRIVER=hid-generic
HID_ID=0005:0000046D:0000B330
HID_NAME=Logitech Keyboard K480
HID_PHYS=48:51:b7:9c:79:70
HID_UNIQ=00:1f:20:e4:18:7f
MODALIAS=hid:b0005g0001v0000046Dp0000B330
root@tarh-elitebook:/etc/udev/rules.d# 

Может я не тот адрес в правиле указал?

★★★★★

Ответ на: комментарий от alx777
root@tarh-elitebook:/etc/udev/rules.d# sudo udevadm info --attribute-walk --name=/dev/hidraw3

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:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256/0005:046D:B330.000A/hidraw/hidraw3':
    KERNEL==«hidraw3»
    SUBSYSTEM==«hidraw»
    DRIVER==«»

  looking at parent device '/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256/0005:046D:B330.000A':
    KERNELS==«0005:046D:B330.000A»
    SUBSYSTEMS==«hid»
    DRIVERS==«hid-generic»
    ATTRS{country}==«21»

  looking at parent device '/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0/hci0:256':
    KERNELS==«hci0:256»
    SUBSYSTEMS==«bluetooth»
    DRIVERS==«»

  looking at parent device '/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0/bluetooth/hci0':
    KERNELS==«hci0»
    SUBSYSTEMS==«bluetooth»
    DRIVERS==«»

  looking at parent device '/devices/pci0000:00/0000:00:12.0/usb3/3-3/3-3:1.0':
    KERNELS==«3-3:1.0»
    SUBSYSTEMS==«usb»
    DRIVERS==«btusb»
    ATTRS{authorized}==«1»
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}==«e0»
    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:12.0/usb3/3-3':
    KERNELS==«3-3»
    SUBSYSTEMS==«usb»
    DRIVERS==«usb»
    ATTRS{authorized}==«1»
    ATTRS{avoid_reset_quirk}==«0»
    ATTRS{bConfigurationValue}==«1»
    ATTRS{bDeviceClass}==«e0»
    ATTRS{bDeviceProtocol}==«01»
    ATTRS{bDeviceSubClass}==«01»
    ATTRS{bMaxPacketSize0}==«64»
    ATTRS{bMaxPower}==«100mA»
    ATTRS{bNumConfigurations}==«1»
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bcdDevice}==«0001»
    ATTRS{bmAttributes}==«e0»
    ATTRS{busnum}==«3»
    ATTRS{configuration}==«»
    ATTRS{devnum}==«2»
    ATTRS{devpath}==«3»
    ATTRS{idProduct}==«07dc»
    ATTRS{idVendor}==«8087»
    ATTRS{ltm_capable}==«no»
    ATTRS{maxchild}==«0»
    ATTRS{quirks}==«0x0»
    ATTRS{removable}==«fixed»
    ATTRS{speed}==«12»
    ATTRS{urbnum}==«573494»
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:12.0/usb3':
    KERNELS==«usb3»
    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}==«3»
    ATTRS{configuration}==«»
    ATTRS{devnum}==«1»
    ATTRS{devpath}==«0»
    ATTRS{idProduct}==«0001»
    ATTRS{idVendor}==«1d6b»
    ATTRS{interface_authorized_default}==«1»
    ATTRS{ltm_capable}==«no»
    ATTRS{manufacturer}==«Linux 4.15.0-42-generic ohci_hcd»
    ATTRS{maxchild}==«5»
    ATTRS{product}==«OHCI PCI host controller»
    ATTRS{quirks}==«0x0»
    ATTRS{removable}==«unknown»
    ATTRS{serial}==«0000:00:12.0»
    ATTRS{speed}==«12»
    ATTRS{urbnum}==«39»
    ATTRS{version}==" 1.10"

  looking at parent device '/devices/pci0000:00/0000:00:12.0':
    KERNELS==«0000:00:12.0»
    SUBSYSTEMS==«pci»
    DRIVERS==«ohci-pci»
    ATTRS{broken_parity_status}==«0»
    ATTRS{class}==«0x0c0310»
    ATTRS{consistent_dma_mask_bits}==«32»
    ATTRS{d3cold_allowed}==«0»
    ATTRS{device}==«0x7807»
    ATTRS{dma_mask_bits}==«32»
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}==«1»
    ATTRS{irq}==«18»
    ATTRS{local_cpulist}==«0-3»
    ATTRS{local_cpus}==«f»
    ATTRS{msi_bus}==«1»
    ATTRS{numa_node}=="-1"
    ATTRS{revision}==«0x11»
    ATTRS{subsystem_device}==«0x221c»
    ATTRS{subsystem_vendor}==«0x103c»
    ATTRS{vendor}==«0x1022»

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

root@tarh-elitebook:/etc/udev/rules.d# 
targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

Странно, ничего нет про Logitech Keyboard K480. Это с подключенной клавиатурой ?

Попробуй еще

udevadm monitor --property --kernel --udev

и посмотреть что за эвенты прилетают в момент подключения

alx777 ★★
()
Ответ на: комментарий от alx777

ага, подключено и действует

root@tarh-elitebook:/etc/udev/rules.d# cat /sys/class/hidraw/hidraw3/device/uevent 
DRIVER=hid-generic
HID_ID=0005:0000046D:0000B330
HID_NAME=Logitech Keyboard K480
HID_PHYS=48:51:b7:9c:79:70
HID_UNIQ=00:1f:20:e4:18:7f
MODALIAS=hid:b0005g0001v0000046Dp0000B330
root@tarh-elitebook:/etc/udev/rules.d# 

- - -

udevadm monitor --property --kernel --udev

а потом просто показывает нажатые буквы

targitaj ★★★★★
() автор топика
Последнее исправление: targitaj (всего исправлений: 2)
Ответ на: комментарий от targitaj

Интересно было бы посмотреть что происходит именно в момент подключения клавиатуры, т.е. отключить клавиатуру, запустить udevadm, подключить клавиатуру и запостить результат на pastebin

alx777 ★★
()
14 ноября 2019 г.

Как ты сделал, что клава в dmesg светится?

У меня клава успешно видится, парится, подсоединяется, но в dmesg молчок, и устройства соответствующие не появляются, ну и буквы с неё не печатаются, на гейоси всё работает!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.