سوف ديف ignore_device لا تعمل إذا كان الجهاز متصلا بالفعل
سؤال
لم أكن متأكدا حقا إذا كان هذا الموقع المناسب لوضع هذا السؤال، ولكن وضعه هنا لأن هذا هو نوع من مسألة البرمجة وأنا أحسب كان الحشد SO الأكثر ينكس المنحى من المواقع الثلاثة .
وعلى أي حال، أنا أحاول لمعرفة طريقة لمحاكاة فصل جهاز من الجانب البرمجيات، تماما كما لو مستخدم قطع جسديا. حتى الآن لقد قدمت قاعدة ديف في /etc/udev/rules.d دعا 10 nano.rules:
SYSFS{idVendor}=="05ac", OPTIONS+="ignore_device"
وهذه القاعدة يعمل بشكل جيد لتجاهل الأجهزة، ولكن فقط بعد أن تم قطع الاتصال وإعادة الاتصال. ولكن ما أريد القيام به هو أن تكون قادرا على الكتابة القاعدة، ومن ثم يكون الجهاز تجاهل كما لو كانت قطع الاتصال. لقد حاولت "الزناد udevadm" مع وبدون سودو، ولكن لسبب ما لا يمكن تطبيق هذه القاعدة أثناء توصيل الجهاز. أي اقتراحات؟
وبالمناسبة، أنا قادرة على إعادة توصيل الجهاز الذي تم تجاهله عن طريق إزالة 10 nano.rules، ومن ثم تشغيل "سودو udevadm الزناد"، ولكن كما قلت آنفا، وليس العكس. (لسبب وقتي النظام والانترنت الحصول على افسدت عند تشغيل هذا الأمر على الرغم من)
المحلول
هل حاولت rmmod
الوحدة النمطية التي تسيطر على الجهاز؟
ويمكنك أيضا محاكاة إزالة الأحداث مع udevadm test
، p.e:
sudo udevadm test --action="remove" <devpath>
ويمكنك أن ترى كيف devpaths يأخذون نظرة إلى udevadm monitor
عند الاتصال جسديا أو إزالة الجهاز، أو التحقق منها في /sys/<devpath>
.