এই ইউদেব বিধিটি ডিভাইস অপসারণের পরে ট্রিগার করে না কেন?


12

আমার দুটি ইঁদুর রয়েছে, একটিতে এটির মাঝামাঝি মাউস বোতাম এবং বোতাম 6 একসাথে ট্রিগার হতে পারে issue তাই আমি ~/.Xmodmapএই বোতামটি অক্ষম করতে আমার কনফিগার করেছি । একই সময়ে, আমি চাইলেও আমার অন্যান্য মাউসের সাহায্যে এই বোতামটি এখনও ব্যবহার করতে সক্ষম হয়েছি। সুতরাং আমি একটি udevনিয়ম লিখেছিলাম xmodmapযা কোন মাউস সংযুক্ত রয়েছে তার উপর নির্ভর করে বোতামের বিন্যাসটি পরিবর্তন করার আহ্বান জানিয়েছিল ।


সেটআপ

এটি আমার বর্তমান সেটআপ:

/etc/udev/rules.d/logitech-g7.rules :

# deactivate MB 6 when mouse 1 is connected
ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 1", OWNER="user"
# restore defaults when mouse 1 is disconnected
ACTION=="remove", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 0", OWNER="user"

/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper :

#!/bin/bash
/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher "$1"&

/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/user/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME

if [[ "$1" == 1 ]] #differentiate between ADD (1) event and REMOVE (0) event
  then
      /usr/bin/xmodmap /home/user/.XmodmapG7 > /dev/null 2>&1
  else
      /usr/bin/xmodmap /home/user/.Xmodmap > /dev/null 2>&1
fi

যদি এটি কিছুটা ওভার কমপ্লিটিকেটেড করে তবে এটি কেবলমাত্র আমি উদেব, এক্সমোডম্যাপ এবং ডিজিট ভেরিয়েবলের সাহায্যে অনেকগুলি সমস্যার জন্য হোঁচট খেয়েছি। আমার স্ক্রিপ্টগুলি এই প্রশ্নোত্তর উপর ভিত্তি করে ।


বর্তমান অবস্থা

ADD ক্রিয়াটি দুর্দান্ত কাজ করে, সরানোর ক্রিয়াটি কাজ করে না। কোনও টার্মিনালে ম্যানুয়ালি RUN কমান্ড কার্যকর করা ভাল কাজ করে।


আমি এখন পর্যন্ত কি চেষ্টা করেছি

আমি এই ফোরামে পোস্টটি খুঁজে পেয়েছি যে কেন ইউদেবের অপসারণের ক্রিয়াকলাপগুলির সাথে সমস্যা রয়েছে এবং ততক্ষণে এটিভিটি ভেরিয়েবলগুলির সাথে এটিটিআরএসকে প্রতিস্থাপন করা হয়েছে। তবে এই সমস্ত কিছুই লাভ হয়নি, অপসারণের ট্রিগারটি এখনও কাজ করে না।

আমি ভুল করছি কিছু আছে। আমি যদি সত্যিই ইউদেব এবং লিনাক্স সম্পর্কে আরও দক্ষ ব্যক্তি আমার কেসটি দেখতে পারি তবে আমি সত্যিই এটির প্রশংসা করব।


অতিরিক্ত তথ্য

udevadm monitor --environment --udevরিসিভারটি প্লাগ ইন করার সময় আউটপুট :

######ADD#######

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [21728.392805] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
ACTION=add
BUSNUM=002
DEVNAME=/dev/bus/usb/002/037
DEVNUM=037
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_USB_INTERFACES=:030102:030000:
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=189
MINOR=164
PRODUCT=46d/c51a/4100
SEQNUM=3139
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
UPOWER_VENDOR=Logitech, Inc.
USEC_INITIALIZED=21727880859

UDEV  [21728.393864] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0
DEVTYPE=usb_interface
INTERFACE=3/1/2
MODALIAS=usb:v046DpC51Ad4100dc00dsc00dp00ic03isc01ip02in00
PRODUCT=46d/c51a/4100
SEQNUM=3140
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
USEC_INITIALIZED=21728393779

UDEV  [21728.395536] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1
DEVTYPE=usb_interface
INTERFACE=3/0/0
MODALIAS=usb:v046DpC51Ad4100dc00dsc00dp00ic03isc00ip00in01
PRODUCT=46d/c51a/4100
SEQNUM=3146
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
USEC_INITIALIZED=21728395426

UDEV  [21728.395737] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004B (hid)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004B
HID_ID=0003:0000046D:0000C51A
HID_NAME=Logitech USB Receiver
HID_PHYS=usb-0000:00:1d.0-1.3/input0
MODALIAS=hid:b0003g0001v0000046Dp0000C51A
SEQNUM=3141
SUBSYSTEM=hid
UDEV_LOG=3
USEC_INITIALIZED=21728395467

UDEV  [21728.398102] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004C (hid)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004C
HID_ID=0003:0000046D:0000C51A
HID_NAME=Logitech USB Receiver
HID_PHYS=usb-0000:00:1d.0-1.3/input1
MODALIAS=hid:b0003g0001v0000046Dp0000C51A
SEQNUM=3147
SUBSYSTEM=hid
UDEV_LOG=3
USEC_INITIALIZED=21728397927

UDEV  [21728.398650] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004B/hidraw/hidraw2 (hidraw)
ACTION=add
DEVNAME=/dev/hidraw2
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004B/hidraw/hidraw2
MAJOR=251
MINOR=2
SEQNUM=3145
SUBSYSTEM=hidraw
UDEV_LOG=3
USEC_INITIALIZED=21728398188

UDEV  [21728.399406] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004C/hidraw/hidraw3 (hidraw)
ACTION=add
DEVNAME=/dev/hidraw3
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004C/hidraw/hidraw3
MAJOR=251
MINOR=3
SEQNUM=3151
SUBSYSTEM=hidraw
UDEV_LOG=3
USEC_INITIALIZED=21728399273

UDEV  [21728.400119] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/usbmisc/hiddev1 (usbmisc)
ACTION=add
DEVNAME=/dev/usb/hiddev1
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/usbmisc/hiddev1
MAJOR=180
MINOR=1
SEQNUM=3150
SUBSYSTEM=usbmisc
UDEV_LOG=3
USEC_INITIALIZED=21727874845

UDEV  [21728.401438] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input73 (input)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input73
EV=17
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.0
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_0
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
KEY=ffff0000 0 0 0 0
MODALIAS=input:b0003v046DpC51Ae0111-e0,1,2,4,k110,111,112,113,114,115,116,117,118,119,11A,11B,11C,11D,11E,11F,r0,1,6,8,am4,lsfw
MSC=10
NAME="Logitech USB Receiver"
PHYS="usb-0000:00:1

udevadm monitor --environment --udevরিসিভারটি সরানোর সময় আউটপুট :

#######REMOVE#######


monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [21800.789239] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75/mouse1 (input)
ACTION=remove
DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Receiver-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.3:1.0-mouse
DEVNAME=/dev/input/mouse1
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75/mouse1
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.0
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_0
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=13
MINOR=33
SEQNUM=3178
SUBSYSTEM=input
UDEV_LOG=3
USEC_INITIALIZED=21797014959

UDEV  [21800.792866] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75/event6 (input)
ACTION=remove
DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.3:1.0-event-mouse
DEVNAME=/dev/input/event6
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75/event6
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.0
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_0
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=13
MINOR=70
SEQNUM=3179
SUBSYSTEM=input
UDEV_LOG=3
USEC_INITIALIZED=21797013896

UDEV  [21800.797061] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75 (input)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input75
EV=17
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.0
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_0
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
KEY=ffff0000 0 0 0 0 0 0 0 0
MODALIAS=input:b0003v046DpC51Ae0111-e0,1,2,4,k110,111,112,113,114,115,116,117,118,119,11A,11B,11C,11D,11E,11F,r0,1,6,8,am4,lsfw
MSC=10
NAME="Logitech USB Receiver"
PHYS="usb-0000:00:1d.0-1.3/input0"
PRODUCT=3/46d/c51a/111
PROP=0
REL=143
SEQNUM=3180
SUBSYSTEM=input
UDEV_LOG=3
UNIQ=""
USEC_INITIALIZED=21796479085

UDEV  [21800.797132] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004D/hidraw/hidraw2 (hidraw)
ACTION=remove
DEVNAME=/dev/hidraw2
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004D/hidraw/hidraw2
MAJOR=251
MINOR=2
SEQNUM=3181
SUBSYSTEM=hidraw
UDEV_LOG=3
USEC_INITIALIZED=21800796369

UDEV  [21800.797172] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004D (hid)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C51A.004D
HID_ID=0003:0000046D:0000C51A
HID_NAME=Logitech USB Receiver
HID_PHYS=usb-0000:00:1d.0-1.3/input0
MODALIAS=hid:b0003g0001v0000046Dp0000C51A
SEQNUM=3182
SUBSYSTEM=hid
UDEV_LOG=3
USEC_INITIALIZED=21800796501

UDEV  [21800.798537] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0
DEVTYPE=usb_interface
INTERFACE=3/1/2
MODALIAS=usb:v046DpC51Ad4100dc00dsc00dp00ic03isc01ip02in00
PRODUCT=46d/c51a/4100
SEQNUM=3183
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
USEC_INITIALIZED=21800796538

UDEV  [21800.814181] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/input/input76/event7 (input)
ACTION=remove
DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Receiver-event-if01 /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.3:1.1-event
DEVNAME=/dev/input/event7
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/input/input76/event7
ID_BUS=usb
ID_INPUT=1
ID_INPUT_KEY=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.1
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_1
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=01
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=13
MINOR=71
SEQNUM=3184
SUBSYSTEM=input
UDEV_LOG=3
USEC_INITIALIZED=21797013933
XKBLAYOUT=de
XKBMODEL=pc105

UDEV  [21800.816765] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/input/input76 (input)
ABS=1 0
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/input/input76
EV=1f
ID_BUS=usb
ID_INPUT=1
ID_INPUT_KEY=1
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_PATH=pci-0000:00:1d.0-usb-0:1.3:1.1
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_3_1_1
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:030000:
ID_USB_INTERFACE_NUM=01
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
KEY=4837fff 72ff32d bf544446 0 0 1 20f90 8b17c000 677bfa d9415fed 9ed680 4400 0 10000002
MODALIAS=input:b0003v046DpC51Ae0111-e0,1,2,3,4,k71,72,73,74,77,80,82,83,85,86,87,88,89,8A,8B,8C,8E,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B0,B1,B2,B5,B6,CE,CF,D0,D1,D2,D4,D8,D9,DB,DF,E4,E7,E8,E9,EA,EB,F1,100,161,162,166,16A,16E,172,174,176,178,179,17A,17B,17C,17D,17F,180,182,183,185,188,189,18C,18D,18E,18F,190,191,192,193,195,198,199,19A,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1B0,1B1,1B7,1BA,r6,a20,m4,lsfw
MSC=10
NAME="Logitech USB Receiver"
PHYS="usb-0000:00:1d.0-1.3/input1"
PRODUCT=3/46d/c51a/111
PROP=0
REL=40
SEQNUM=3185
SUBSYSTEM=input
UDEV_LOG=3
UNIQ=""
USEC_INITIALIZED=21796482192

UDEV  [21800.817249] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/usbmisc/hiddev1 (usbmisc)
ACTION=remove
DEVNAME=/dev/usb/hiddev1
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/usbmisc/hiddev1
MAJOR=180
MINOR=1
SEQNUM=3186
SUBSYSTEM=usbmisc
UDEV_LOG=3
USEC_INITIALIZED=21800816392

UDEV  [21800.818490] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004E/hidraw/hidraw3 (hidraw)
ACTION=remove
DEVNAME=/dev/hidraw3
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004E/hidraw/hidraw3
MAJOR=251
MINOR=3
SEQNUM=3187
SUBSYSTEM=hidraw
UDEV_LOG=3
USEC_INITIALIZED=21800816472

UDEV  [21800.818536] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004E (hid)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C51A.004E
HID_ID=0003:0000046D:0000C51A
HID_NAME=Logitech USB Receiver
HID_PHYS=usb-0000:00:1d.0-1.3/input1
MODALIAS=hid:b0003g0001v0000046Dp0000C51A
SEQNUM=3188
SUBSYSTEM=hid
UDEV_LOG=3
USEC_INITIALIZED=21800816908

UDEV  [21800.818580] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1 (usb)
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1
DEVTYPE=usb_interface
INTERFACE=3/0/0
MODALIAS=usb:v046DpC51Ad4100dc00dsc00dp00ic03isc00ip00in01
PRODUCT=46d/c51a/4100
SEQNUM=3189
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
USEC_INITIALIZED=21800816945

UDEV  [21800.818645] remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
ACTION=remove
BUSNUM=002
DEVNAME=/dev/bus/usb/002/038
DEVNUM=038
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=USB_Receiver
ID_MODEL_ENC=USB\x20Receiver
ID_MODEL_ID=c51a
ID_REVISION=4100
ID_SERIAL=Logitech_USB_Receiver
ID_USB_INTERFACES=:030102:030000:
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=189
MINOR=165
PRODUCT=46d/c51a/4100
SEQNUM=3190
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=3
UPOWER_VENDOR=Logitech, Inc.
USEC_INITIALIZED=21796488421

1
আপনার বিধিগুলি ডিভাইস এবং অপসারণ ইভেন্টগুলির সাথে মেলে কিনা তা আপনি পরীক্ষা করতে পারেন, আমি মনিটর আউটপুট থেকে এটি নিশ্চিত করতে পারি না। আপনি তাদের সাথে মেলে কিনা তা আপনি দেখতে পারেন:udevadm test --action=add $(udevadm info --query=path -n /dev/input/mouse0)
জোরলেম

@ জোরলেম আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমার প্রশ্নটি চরিত্রের সীমাতে আঘাত করেছে তাই এখানে ফলাফলগুলির একটি পেস্টবিন রয়েছে । আমার সীমিত বোঝার সাথে আমি মনে করি আমি দেখতে পাচ্ছি যে নিয়মটি প্রযোজ্য নয়। কেন এমন হতে পারে আপনার কোনও ধারণা আছে?
গ্লুটানীমেট

উত্তর:


13

বিকল্প সমাধান

উত্তরটি নীচে লেখার কাজ শেষ করে, আমি বুঝতে পেরেছিলাম যে আপনি যা অর্জন করার চেষ্টা করছেন তা xinputজর্জের কনফিগারেশনের সাহায্যে বা এমনকি ব্যবহার করে আরও মার্জিতভাবে সম্পাদন করা যেতে পারে । সম্পর্কে ডকুমেন্টেশন পড়া নিশ্চিত করা উপলব্ধকারী Xorg ইনপুট ডিভাইসের নিয়ন্ত্রণ

ইউদেব ব্যবহার করা (আপনার প্রশ্নের উত্তর)

আমার পরীক্ষা অনুসারে আপনার বিধি নিয়ে দুটি সমস্যা রয়েছে:

  1. কমপক্ষে আমার উবুন্টু জিএনইউ / লিনাক্স 12.04 এ, কখনও চেক করার জন্য কোনও চেক নেই ENV{DEVTYPE}(যদিও এটি যথাযথভাবে udevadm infoএবং এর দ্বারা প্রতিবেদন করা হয়েছে udevadm monitor)। এই কারণেই আপনি এমনকি addনিয়মের মিলও দেখছেন না ।
  2. OWNERআপনার removeনিয়ম থেকে অ্যাসাইনমেন্টটি সরানো উচিত । এটি কোনও অর্থবোধ করে না এবং উদেব পুরোপুরি নিয়মটিকে উপেক্ষা করে।

নিম্নলিখিত দুটি নিয়ম দিয়ে চেষ্টা করুন এবং দেখুন যে তারা সমস্যার সমাধান করে।

ACTION=="add", ENV{ID_MODEL}=="USB_Receiver", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 1", OWNER="user"
ACTION=="remove", ENV{ID_MODEL}=="USB_Receiver", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 0"

অতিরিক্ত বিবেচনা

কয়েকটি বিষয় বিবেচনা করুন:

  1. এটি ব্যবহার করার জন্য ATTR{idVendor}এবং ATTR{idProduct}ডিভাইসগুলির শ্রেণিবিন্যাসের জন্য আরও পরিচ্ছন্ন । আপনি addপরিবর্তে এগুলি ব্যবহারের জন্য নিয়মটি নিরাপদে পরিবর্তন করতে পারেন ENV, তবে আমি সরলতার জন্য এগুলি তাদের ছেড়ে দিয়েছি। বর্তমানে addএবং removeনিয়মগুলি প্রায় অভিন্ন।
  2. অন্য ব্যবহারকারীদের দ্বারা লিখিতযোগ্য ডিরেক্টরিতে স্ক্রিপ্টটি রুট হিসাবে চালনার সুরক্ষা সম্পর্কিত বিবেচনা করুন। আপনার বিশেষ ক্ষেত্রে এটি কোনও গুরুতর সমস্যা নয়, তবে আমি এটিকে কোনও ভাল সুরক্ষা অনুশীলন বলব না। আইএমও এটি / usr / স্থানীয় / বিন / এ স্ক্রিপ্ট স্থাপন করা আরও ভাল হবে, এটি root.root এবং মোড 0755 দ্বারা মালিকানাধীন করে তুলবে
  3. নিশ্চিত হয়ে নিন যে আপনি চান যে মাউস ডিভাইসটি আপনার ব্যবহারকারীর মালিকানাধীন হোক, আসলে এর দরকার নেই, পলিসিকিট এবং জর্গ কোনও সমস্যা ছাড়াই মূলের মালিকানাধীন ডিভাইসগুলি পরিচালনা করতে সক্ষম হবে।

আপনার যদি ডিভাইসের মালিক পরিবর্তন করার প্রয়োজন হয় না এবং আপনার সেটআপটি কোনও রুট-মালিকানাধীন ডিভাইসটির সাথে কাজ করে, তবে আপনি নিজের দুটি উদেব নিয়মকে এটিকে সহজ করতে পারবেন:

ACTION=="add|remove", ENV{ID_MODEL}=="USB_Receiver", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper $env{ACTION}"

এটি আপনার স্ক্রিপ্টকে সংশ্লিষ্ট ক্রিয়া সহ কল ​​করবে - removeবা add, সুতরাং এই যুক্তিগুলি পরিচালনা করতে আপনাকে আপনার স্ক্রিপ্টটি পরিবর্তন করতে হবে।

নিয়মের সাথে ম্যাচ করার (এবং স্ক্রিপ্টটি চালানোর জন্য) প্রতিরোধ করার জন্য আপনাকে নিয়মটি আরও নির্দিষ্ট করে তুলতে হবে: নিয়মটি মাউসের প্রতিটি "ইনপুট" (বোতাম ইত্যাদির) সাথে মেলে। এজন্য এটি বারবার কার্যকর করা হয়েছে। যুক্ত করার চেষ্টা করুন ENV{ID_TYPE}!="hid"অথবা ENV{ID_USB_DRIVER}!="*hid*"এবং এটি কাজ করে দেখুন শুধুমাত্র এক ডিভাইস যা লুকিয়ে থাকতে পারে না আছে হিসাবে - শীর্ষ usb_device

পিএস: আপনি যদি আপনার mouseswitcherস্ক্রিপ্টটি আরও নমনীয় করতে চান এবং কনসোলকিট দিয়ে একটি সিস্টেম চালাচ্ছেন তবে আপনি ck-list-sessionsবর্তমানে লগ ইন করা ব্যবহারকারীকে পেতে এবং XAUTHORITYভেরিয়েবলটি সেট করার জন্য সেই তথ্যটি ব্যবহার করতে পারেন ।


এই দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ! সম্মিলিত উদেব নিয়ম ওপেনার অ্যাসাইনমেন্ট ছাড়াই পুরোপুরি সূক্ষ্মভাবে কাজ করে, যা আমি মনে করি যে মূল পোস্টারটি পরিবেশের ভেরিয়েবলগুলির সাথে ত্রুটিগুলি সমাধান করার জন্য সেট করেছিল। আমি মোড়ক স্ক্রিপ্টটি সরিয়ে সেটআপটি প্রবাহিত করতে সক্ষম হয়েছি (সত্য বলতে, ওপি প্রথম স্থানে এটি কেন যুক্ত করেছিল তা আমি নিশ্চিত নই)। কেবলমাত্র ইস্যুটি বাকী রয়েছে যে স্ক্রিপ্টটি মাউসটি সরাতে বা সংযুক্ত করার পরে বেশ কয়েকবার ডাকা হয়। এটি ইউদেবের লগিং স্তরের সাথে সিসলগ আউটপুটinfo
গ্লুটানীমেট

আপনি কি নিয়মটি আরও নির্দিষ্ট করে বলতে পারেন যে এটি একবারে কার্যকর করা হয়েছে? এছাড়াও, স্ক্রিপ্ট স্থাপনের জন্য পরামর্শের জন্য ধন্যবাদ। আমি সুরক্ষা সমস্যা সম্পর্কে সচেতন ছিলাম না। আমি অবশ্যই এখন থেকে এটিকে বিবেচনায় নেব!
গ্লুটানীমেট

1
যোগ করার চেষ্টা ENV{ID_TYPE}!="hid"বা ENV{ID_USB_DRIVER}!="*hid*"এবং দেখুন এটি কাজ করে।
জোরলেম

হ্যাঁ, এটা। ENV{ID_TYPE}!="hid"ভাল কাজ করেছে। ধন্যবাদ!
গ্লুটোনিমেট

এর বিরল উত্তরগুলির মধ্যে একটি udev" ENV{DEVTYPE}=="usb_device"আপনার নিয়মে কেবল যুক্ত করুন" বলার বাইরে চলে যায় , তবে কেন তা ব্যাখ্যা করুন। ধন্যবাদ!
দিমিত্রি গ্রিগরিয়েভ

2

আগের উত্তরটি লেখার কয়েক বছর হয়ে গেছে। দেখা যাচ্ছে যে তখন থেকে উদেব পরিবর্তিত হয়েছে যাতে udev সমাধানটি আর কাজ করে না, কমপক্ষে উবুন্টু 18.04 এর জন্য udev প্যাকেজ সংস্করণ 237-3ubuntu10.29 সহ। ভবিষ্যতে এই সমস্যার মুখোমুখি হওয়া লোকদের সুবিধার্থে আমি এই উত্তরটি পোস্ট করছি, যেহেতু আমি এই সমস্যাটির অন্য কোনও প্রতিবেদন পাইনি।

উদেবের এই সংস্করণ সহ, ENV{ID_VENDOR_ID} ENV{ID_MODEL_ID}ইভেন্টগুলি সরানোর জন্য সেট করা নেই, সুতরাং নিয়মগুলি কখনই এই পরিবর্তনশীলগুলির সাথে মেলে না। একটি workaround ব্যবহার করা হয় ENV{PRODUCT}, যা ইভেন্ট যোগ এবং অপসারণ উভয় জন্য সেট করা হয়। ENV{PRODUCT}ফর্মটি রয়েছে idVendor/idProduct/bcdDevice, সুতরাং এটি একটি নিয়মের সাথে মিলিত হতে পারে:

ENV{PRODUCT}=="xxxx/yyyy*"

কোথায় xxxxবিক্রেতার আইডি এবং yyyyএটি আপনার ডিভাইসের পণ্য আইডি।

পূর্বের উত্তরের সময়ের সাথে তুলনা করে একটি পার্শ্ব নোট হ'ল উদেব এখন ENV{DEVTYPE}সঠিকভাবে সেট করেছে এবং এটি নিয়মে মেলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.