Я пытаюсь загрузить новую раскладку клавиатуры, когда я подключаю USB-клавиатуру, но мое правило udev не работает.
SUBSYSTEM == "input", ATTR {idVendor} == "062a", ATTR {idProduct} == "0201", GOTO = "usb_xmodmap_auto" LABEL = "usb_xmodmap_auto" ДЕЙСТВИЕ == "добавить", RUN + = "/ usr / bin / xmodmap ~ / .usbXmodmap" ДЕЙСТВИЕ == "удалить", RUN + = "/ usr / bin / xmodmap ~ / .pndXmodmap"
Я перезагрузил правила, используя:
> sudo udevadm control --reload-rules
и перезагружая систему, но когда я подключаю USB-клавиатуру, оригинальный xmodmap все еще загружается и, таким образом, раскладка клавиатуры неверна, но если я запускаю команду в терминале
> / usr / bin / xmodmap ~ / .usbXmodmapили же
> / usr / bin / xmodmap ~ / .pndXmodmap
они работают просто отлично.
надеюсь, кто-то может помочь.
Редактировать:
просто чтобы помочь больше, я провел несколько тестов udevadm:
> udevadm test --action = add /devices/platform/ehci-omap.0/usb1/1-2/1-2.3/1-2.3:1.1/input/input10
выходы:
run_command: вызов: тест udevadm_test: версия 151 Эта программа предназначена только для отладки, она не запускает никаких программ, определяется ключом RUN. Это может показать неверные результаты, потому что некоторые значения могут отличаться или не быть доступными во время симуляции. [...] parse_file: чтение '/etc/udev/rules.d/usb-keyboard.rules' как файла правил udev_rules_new: правила используют токены 100572 байта (8381 * 12 байтов), буфер 21523 байта udev_rules_new: временный индекс использовал 35380 байт (1769 * 20 байт) udev_device_new_from_syspath: устройство 0x3b4d8 имеет devpath '/devices/platform/ehci-omap.0/usb1/1-2/1-2.3/1-2.3:1.1/input/input10' udev_rules_apply_to_event: RUN '/ sbin / modprobe -b $ env {MODALIAS}' /etc/udev/rules.d/80-drivers.rules:5 udev_rules_apply_to_event: RUN 'сокет: @ / org / freedesktop / hal / udev_event' /etc/udev/rules.d/90-hal.rules:2 udev_rules_apply_to_event: RUN '/ sbin / modprobe $ env {MODALIAS}' /etc/udev/rules.d/local.rules:31 udev_rules_apply_to_event: RUN 'сокет: / org / kernel / udev / monitor' /etc/udev/rules.d/run.rules:2 udev_rules_apply_to_event: RUN '/ usr / bin / xmodmap ~ / .usbXmodmap' /etc/udev/rules.d/usb-keyboard.rules:4 udevadm_test: UDEV_LOG = 6 udevadm_test: DEVPATH = / devices / platform / ehci-omap.0 / usb1 / 1-2 / 1-2.3 / 1-2.3: 1.1 / input / input10 udevadm_test: PRODUCT = 3 / 62a / 201/110 udevadm_test: NAME = "USB-совместимая клавиатура" udevadm_test: PHYS = "usb-ehci-omap.0-2.3 / input1" udevadm_test: UNIQ = "" udevadm_test: EV == 1f udevadm_test: KEY == 837fff 2c3027 bf004444 0 0 1fe3 c04 a27c000 267bfa d941дфедированный 9e0000 0 0 0 udevadm_test: REL == 143 udevadm_test: ABS == 1 0 udevadm_test: MSC == 10 udevadm_test: MODALIAS = вход: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,74,77,80,82,83,85,86,87,88,89,8A, 8B, 8C, 8E, 8F, 90,96,98,9B, 9С, 9Е, 9F, A1, A3, A4, A5, A6, A7, A8, A9, AB, AC, AD, AE, B1, B2, B5, CE, CF, D0, D1, D2, D5, D9, БД, Е2, ЕА, ЕВ, 100,101,105,106,107,108,109,10A, 10B, 10C, 162,166,16A, 16E, 178,179,17A, 17B, 17C, 17D, 17F, 180,181,182,185,18C, 18D, 192,193,195,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA, 1AB, 1AC, 1AD, 1AE, 1B0,1B1,1B7, r0,1,6,8, а20, m4, lsfw udevadm_test: ACTION = добавить udevadm_test: SUBSYSTEM = вход udevadm_test: run: '/ sbin / modprobe -b вход: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,74,77,80,82,83,85,86,87,88,89 , 8А, 8В, 8С, 8Е, 8F, 90,96,98,9B, 9С, 9Е, 9F, А1, А3, А4, А5, А6, А7, А8, А9, AB, AC, AD, AE, В1 , В2, В5, CE, CF, D0, D1, D2, D5, D9, БД, Е2, ЕА, ЕВ, 100,101,105,106,107,108,109,10A, 10B, 10C, 162,166,16A, 16E, 178,179,17A, 17B, 17C, 17D , 17F, 180,181,182,185,18C, 18D, 192,193,195,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA, 1AB, 1AC, 1AD, 1AE, 1B0,1B1,1B7, r0,1 , 6,8, а20, m4, lsfw» udevadm_test: run: 'socket: @ / org / freedesktop / hal / udev_event' udevadm_test: run: '/ sbin / modprobe вход: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,74,77,80,82,83,85,86,87,88,89,8A , 8В, 8С, 8Е, 8F, 90,96,98,9B, 9С, 9Е, 9F, А1, А3, А4, А5, А6, А7, А8, А9, AB, AC, AD, АЕ, В1, В2 , В5, CE, CF, D0, D1, D2, D5, D9, БД, Е2, ЕА, ЕВ, 100,101,105,106,107,108,109,10A, 10B, 10C, 162,166,16A, 16E, 178,179,17A, 17B, 17C, 17D, 17F , 180,181,182,185,18C, 18D, 192,193,195,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA, 1AB, 1AC, 1AD, 1AE, 1B0,1B1,1B7, r0,1,6 , 8, а20, m4, lsfw» udevadm_test: run: 'socket: / org / kernel / udev / monitor' udevadm_test: run: '/ usr / bin / xmodmap ~ / .usbXmodmap'
а также
> udevadm test --action = remove /devices/platform/ehci-omap.0/usb1/1-2/1-2.3/1-2.3:1.1/input/input10
выходы:
run_command: вызов: тест udevadm_test: версия 151 Эта программа предназначена только для отладки, она не запускает никаких программ, определяется ключом RUN. Это может показать неверные результаты, потому что некоторые значения могут отличаться или не быть доступными во время симуляции. [...] parse_file: чтение '/etc/udev/rules.d/usb-keyboard.rules' как файла правил udev_rules_new: правила используют токены 100572 байта (8381 * 12 байтов), буфер 21523 байта udev_rules_new: временный индекс использовал 35380 байт (1769 * 20 байт) udev_device_new_from_syspath: устройство 0x3b4d8 имеет devpath '/devices/platform/ehci-omap.0/usb1/1-2/1-2.3/1-2.3:1.1/input/input10' udev_rules_apply_to_event: RUN 'сокет: @ / org / freedesktop / hal / udev_event' /etc/udev/rules.d/90-hal.rules:2 udev_rules_apply_to_event: RUN 'сокет: / org / kernel / udev / monitor' /etc/udev/rules.d/run.rules:2 udev_rules_apply_to_event: RUN '/ usr / bin / xmodmap ~ / .pndXmodmap' /etc/udev/rules.d/usb-keyboard.rules:5 udevadm_test: UDEV_LOG = 6 udevadm_test: DEVPATH = / devices / platform / ehci-omap.0 / usb1 / 1-2 / 1-2.3 / 1-2.3: 1.1 / input / input10 udevadm_test: PRODUCT = 3 / 62a / 201/110 udevadm_test: NAME = "USB-совместимая клавиатура" udevadm_test: PHYS = "usb-ehci-omap.0-2.3 / input1" udevadm_test: UNIQ = "" udevadm_test: EV == 1f udevadm_test: KEY == 837fff 2c3027 bf004444 0 0 1fe3 c04 a27c000 267bfa d941дфедированный 9e0000 0 0 0 udevadm_test: REL == 143 udevadm_test: ABS == 1 0 udevadm_test: MSC == 10 udevadm_test: MODALIAS = вход: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,74,77,80,82,83,85,86,87,88,89,8A, 8B, 8C, 8E, 8F, 90,96,98,9B, 9С, 9Е, 9F, A1, A3, A4, A5, A6, A7, A8, A9, AB, AC, AD, AE, B1, B2, B5, CE, CF, D0, D1, D2, D5, D9, БД, Е2, ЕА, ЕВ, 100,101,105,106,107,108,109,10A, 10B, 10C, 162,166,16A, 16E, 178,179,17A, 17B, 17C, 17D, 17F, 180,181,182,185,18C, 18D, 192,193,195,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA, 1AB, 1AC, 1AD, 1AE, 1B0,1B1,1B7, r0,1,6,8, а20, m4, lsfw udevadm_test: ACTION = удалить udevadm_test: SUBSYSTEM = вход udevadm_test: run: 'socket: @ / org / freedesktop / hal / udev_event' udevadm_test: run: 'socket: / org / kernel / udev / monitor' udevadm_test: run: '/ usr / bin / xmodmap ~ / .pndXmodmap'
который, кажется, показывает, что он должен работать, но он не надеется, что это поможет получить ответ.