我在尝试插入USB键盘时尝试加载新的键盘布局,但我的udev规则不起作用。
SUBSYSTEM ==“ input”,ATTR {idVendor} ==“ 062a”,ATTR {idProduct} ==“ 0201”,GOTO =“ usb_xmodmap_auto” LABEL =“ usb_xmodmap_auto” ACTION ==“ add”,RUN + =“ / usr / bin / xmodmap〜/ .usbXmodmap” ACTION ==“ remove”,RUN + =“ / usr / bin / xmodmap〜/ .pndXmodmap”
我使用以下方法重新加载了规则:
> sudo udevadm控制-重新加载规则
并通过重新启动系统,但是当我插入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:运行'/ sbin / modprobe -b $ env {MODALIAS}'/etc/udev/rules.d/80-drivers.rules:5 udev_rules_apply_to_event:运行'socket:@ / org / freedesktop / hal / udev_event'/etc/udev/rules.d/90-hal.rules:2 udev_rules_apply_to_event:运行'/ sbin / modprobe $ env {MODALIAS}'/etc/udev/rules.d/local.rules:31 udev_rules_apply_to_event:运行'socket:/ org / kernel / udev / monitor'/etc/udev/rules.d/run.rules:2 udev_rules_apply_to_event:运行'/ 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 d941dfed 9e0000 0 0 0 udevadm_test:REL == 143 udevadm_test:ABS == 1 0 udevadm_test:MSC == 10 udevadm_test:MODALIAS = input: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,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B1,B2,B5,CE, CF,D0,D1,D2,D5,D9,DB,E2,EA,EB,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,a20, m4,lsfw udevadm_test:ACTION =添加 udevadm_test:SUBSYSTEM =输入 udevadm_test:运行:'/ sbin / modprobe -b输入: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,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B1 ,B2,B5,CE,CF,D0,D1,D2,D5,D9,DB,E2,EA,EB,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,a20,m4,lsfw' udevadm_test:运行:'socket:@ / org / freedesktop / hal / udev_event' udevadm_test:运行:'/ sbin / modprobe输入: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,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B1,B2 ,B5,CE,CF,D0,D1,D2,D5,D9,DB,E2,EA,EB,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,1AA9,1AB,1AC,1AD,1AE,1B0,1B1,1B7,r0,1,6 ,8,a20,m4,lsfw' udevadm_test:运行:'socket:/ org / kernel / udev / monitor' udevadm_test:运行:'/ usr / bin / xmodmap〜/ .usbXmodmap'
和
> udevadm test --action =删除/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:运行'socket:@ / org / freedesktop / hal / udev_event'/etc/udev/rules.d/90-hal.rules:2 udev_rules_apply_to_event:运行'socket:/ org / kernel / udev / monitor'/etc/udev/rules.d/run.rules:2 udev_rules_apply_to_event:运行'/ 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 d941dfed 9e0000 0 0 0 udevadm_test:REL == 143 udevadm_test:ABS == 1 0 udevadm_test:MSC == 10 udevadm_test:MODALIAS = input: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,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B1,B2,B5,CE, CF,D0,D1,D2,D5,D9,DB,E2,EA,EB,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,a20, m4,lsfw udevadm_test:ACTION =删除 udevadm_test:SUBSYSTEM =输入 udevadm_test:运行:'socket:@ / org / freedesktop / hal / udev_event' udevadm_test:运行:'socket:/ org / kernel / udev / monitor' udevadm_test:运行:'/ usr / bin / xmodmap〜/ .pndXmodmap'
这似乎表明它应该可以工作,但是它不希望这有助于得到答案。