سوف ديف ignore_device لا تعمل إذا كان الجهاز متصلا بالفعل

StackOverflow https://stackoverflow.com/questions/1430340

  •  07-07-2019
  •  | 
  •  

سؤال

لم أكن متأكدا حقا إذا كان هذا الموقع المناسب لوضع هذا السؤال، ولكن وضعه هنا لأن هذا هو نوع من مسألة البرمجة وأنا أحسب كان الحشد 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>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top