ฉันกำลังพยายามโหลดเค้าโครงแป้นพิมพ์ใหม่เมื่อฉันเสียบแป้นพิมพ์ usb แต่กฎ udev ของฉันไม่ทำงาน
SUBSYSTEM == "อินพุต", ATTR {idVendor} == "062a", ATTR {idProduct} == "0201", GOTO = "usb_xmodmap_auto" LABEL = "usb_xmodmap_auto" ACTION == "เพิ่ม", RUN + = "/ usr / bin / xmodmap ~ / .usbXmodmap" ACTION == "remove", RUN + = "/ usr / bin / xmodmap ~ / .pndXmodmap"
ฉันได้รีโหลดกฎโดยใช้:
> sudo udevadm control --reload-rules
และโดยการรีสตาร์ทระบบ แต่เมื่อฉันเสียบแป้นพิมพ์ usb xmodmap เดิมยังคงโหลดอยู่และทำให้รูปแบบแป้นพิมพ์ผิด แต่ถ้าฉันเรียกใช้คำสั่งในเทอร์มินัล
> / usr / bin / xmodmap ~ / .usbXmodmapหรือ
> / usr / bin / xmodmap ~ / .pndXmodmap
พวกเขาทำงานได้ดี
หวังว่าคนจะช่วยได้
แก้ไข:
เพียงเพื่อช่วยเพิ่มเติมฉันวิ่งทดสอบ udevadm:
> 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: RUN '/ sbin / modprobe -b $ env {MODALIAS}' /etc/udev/rules.d/80-drivers.rulesu 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 = / อุปกรณ์ / แพลตฟอร์ม / 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 = อินพุต: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,73,74,77,86,87,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,3, 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: เรียกใช้: 'ซ็อกเก็ต: @ / org / freedesktop / hal / udev_event' udevadm_test: เรียกใช้: '/ sbin / modprobe อินพุต: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,74,77,80,82,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: run: 'socket: / org / kernel / udev / monitor' udevadm_test: เรียกใช้: '/ 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.rulesu udevadm_test: UDEV_LOG = 6 udevadm_test: DEVPATH = / อุปกรณ์ / แพลตฟอร์ม / 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 = อินพุต: b0003v062Ap0201e0110-e0,1,2,3,4, k71,72,73,73,74,77,86,87,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 = remove udevadm_test: SUBSYSTEM = อินพุต udevadm_test: เรียกใช้: 'ซ็อกเก็ต: @ / org / freedesktop / hal / udev_event' udevadm_test: run: 'socket: / org / kernel / udev / monitor' udevadm_test: เรียกใช้: '/ usr / bin / xmodmap ~ / .pndXmodmap'
ซึ่งดูเหมือนว่าจะแสดงว่าควรใช้งานได้ แต่ไม่หวังว่าจะได้รับคำตอบ