موجز¶
udevadm [--debug] [--version]
[--help]
udevadm info [options...]
[devpath|syspath|id|unit...]
udevadm trigger [options...]
[devpath|syspath|id|unit...]
udevadm settle [options...]
udevadm control options...
udevadm monitor [options...]
udevadm test [options...]
devpath|syspath|id|unit
udevadm test-builtin [options...] command
devpath|syspath|id|unit
udevadm verify [options...] [files...]
udevadm cat [options...] [files...]
udevadm wait [options...]
devpath|syspath...
udevadm lock [options...] command...
الخيارات¶
-d، --debug
اطبع
رسائل
التصحيح
إلى الخطأ
المعياري.
هذا الخيار
ضمني في
أوامر udevadm test و
udevadm test-builtin.
-V، --version
اطبع
سلسلة
إصدار
قصيرة
واخرج.
-h، --help
اطبع نص
مساعدة
قصير
واخرج.
udevadm info [options...] [devpath|syspath|id|unit...]¶
استعلم
قاعدة
بيانات udev عن
معلومات
الجهاز.
يجب
استخدام
الوسائط
الموضعية
لتحديد
جهاز واحد
أو أكثر. قد
يكون كل
منها اسم
جهاز (في هذه
الحالة يجب
أن يبدأ بـ
/dev/)، أو مسار sys
(في هذه
الحالة يجب
أن يبدأ بـ
/sys/)، أو معرف
جهاز (مثل "n1"
أو "c5:1" أو
"b259:1"، انظر
sd_device_get_device_id(3)). أو
اسم وحدة
جهاز systemd (في
هذه الحالة
يجب أن
ينتهي بـ
".device"، انظر
systemd.device(5)).
-q, --query=TYPE
استعلم
قاعدة
البيانات
عن النوع
المحدد من
بيانات
الجهاز.
الأنواع TYPE
الصالحة هي:
name، symlink، path،
property، all.
--property=NAME
عند عرض
خصائص
الجهاز
باستخدام
الخيار
--query=property، حدد
العرض
للخصائص
المحددة في
الوسيطة.
يجب أن تكون
الوسيطة
قائمة
بأسماء
الخصائص
مفصولة
بفواصل. إذا
لم تُحدد،
تُعرض جميع
الخصائص
المعروفة.
أُضيف في
الإصدار 250.
--value
عند عرض
خصائص
الجهاز
باستخدام
الخيار
--query=property، اطبع
قيمها فقط،
وتجاوز اسم
الخاصية
و"=".
لا يمكن
استخدامه
مع -x/--export أو
-P/--export-prefix.
أُضيف في
الإصدار 250.
-p, --path=DEVPATH
مسار /sys/
للجهاز
المراد
الاستعلام
عنه، مثلاً
[/sys/]/class/block/sda. هذا
الخيار
بديل
للوسيط
الموضعي
ببادئة /sys/. udevadm info
--path=/class/block/sda يعادل
udevadm info /sys/class/block/sda.
-n, --name=FILE
اسم عقدة
الجهاز أو
رابط رمزي
للاستعلام
عنه، مثلاً
[/dev/]/sda. هذا
الخيار
بديل
للوسيط
الموضعي
ببادئة /dev/. udevadm info
--name=sda يعادل udevadm info
/dev/sda.
-r, --root
اطبع
المسارات
المطلقة في
استعلام name
أو symlink.
-a, --attribute-walk
اطبع
جميع خصائص
sysfs للجهاز
المحدد
التي يمكن
استخدامها
في قواعد udev
لمطابقة
الجهاز
المحدد.
يطبع جميع
الأجهزة
على طول
السلسلة،
وصولاً إلى
جذر sysfs التي
يمكن
استخدامها
في قواعد udev.
يدعم هذا
المفتاح
وضع إخراج JSON
(انظر --json=
أدناه). لاحظ
أنه نظراً
لأن هذا
المفتاح
يُنشئ
كائنات JSON
متعددة،
فإن وضع JSON-SEQ
يُفعّل
آلياً (RFC7464).
(ملاحظة:
أدوات مثل
jq[1] تدعم JSON-SEQ
أصلاً عبر
المفتاح --seq.)
-t، --tree
اعرض
شجرة sysfs.
يتكرر هذا
عبر
التسلسل
الهرمي لـ sysfs
ويعرضه في
بنية شجرية.
إذا حُدد
مسار،
فسيتم عرض
الشجرة
الفرعية
أدناه
وأدلتها
الأصلية
فقط. سيظهر
هذا عناصر
الجهاز
والنظام
الفرعي
معاً.
أُضيف في
الإصدار 251.
-x، --export
اطبع
الإخراج
كأزواج
مفتاح/قيمة.
تُحاط
القيم
بعلامات
اقتباس
مفردة. يسري
هذا فقط عند
تحديد --query=property
أو --device-id-of-file=FILE.
-P, --export-prefix=NAME
أضف
بادئة لاسم
مفتاح
القيم
المُصدّرة.
يستلزم هذا
--export.
-d, --device-id-of-file=FILE
اطبع
الأرقام
الرئيسة/الفرعية
للجهاز
الأساسي
الذي يوجد
عليه الملف.
إذا حُديد
هذا، فسيتم
تجاهل جميع
الوسائط
الموضعية.
-e, --export-db
صدّر
محتوى
قاعدة
بيانات udev.
-c, --cleanup-db
نظّف
قاعدة
بيانات udev.
-w[SECONDS],
--wait-for-initialization[=SECONDS]
انتظر
حتى يُهيئ
الجهاز. إذا
لم يُحدد
الوسيط
SECONDS،
فالمبدئي
هو
الانتظار
إلى الأبد.
أُضيف في
الإصدار 243.
--subsystem-match[=SUBSYSTEM],
--subsystem-nomatch[=SUBSYSTEM]
عند
استخدامه
مع
--export-db، اعرض
فقط أجهزة
النظام
الفرعي
المعطى أو
غير
التابعة له
على
التوالي.
أُضيف في
الإصدار 255.
--attr-match[=FILE[=VALUE]],
--attr-nomatch[=FILE[=VALUE]]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
المطابقة
أو غير
المطابقة
للسمة
المعطاة
على
التوالي.
أُضيف في
الإصدار 255.
--property-match[=المفتاح=القيمة]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
المطابقة
للخاصية
والقيمة
المعطاة.
أُضيف في
الإصدار 255.
--tag-match[=الوسم]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
ذات الوسم
المعطى.
أُضيف في
الإصدار 255.
--sysname-match[=الاسم]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
ذات المسار
"/sys" المعطى.
أُضيف في
الإصدار 255.
--name-match[=الاسم]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
ذات الاسم
المعطى في
"/dev".
أُضيف في
الإصدار 255.
--parent-match[=الاسم]
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
ذات الجهاز
الأصل
المعطى.
أُضيف في
الإصدار 255.
--initialized-match،
--initialized-nomatch
عند
استخدامه
مع
--export-db،
يُظهر فقط
الأجهزة
المُهيّأة
أو غير
المُهيّأة
على
التوالي.
أُضيف في
الإصدار 255.
--json=وضع
يظهر
المخرجات
منسقة
بصيغة JSON.
يتوقع أحد
الخيارات:
"short" (لأقصر
مخرج ممكن
دون أي
مسافات
زائدة أو
فواصل
أسطر)، أو "pretty"
(لنسخة
جميلة من
المخرج
نفسه، مع
إزاحة
وفواصل
أسطر) أو "off"
(لإيقاف
مخرجات JSON،
وهو الخيار
المبدئي).
--no-pager
لا تمرر
المخرجات
إلى برنامج
عرض (pager).
يُظهر
المخرجات
المُنشأة
إدخال
قاعدة
بيانات
الجهاز
الحالي
بتنسيق
موجز. كل سطر
يُعرض
مُسبوق
بأحد
الأحرف
التالية:
جدول 1. بادئات
مخرجات udevadm info
| البادئة |
المعنى |
| "P:" |
مسار
الجهاز في
/sys/ |
| "M:" |
اسم
الجهاز في /sys/
(أي المكوّن
الأخير من
"P:") |
| "R:" |
رقم
الجهاز في /sys/
(أي اللاحقة
الرقمية
للمكوّن
الأخير من
"P:") |
| "J:" |
معرّف
الجهاز |
| "U:" |
النظام
الفرعي
للنواة |
| "B:" |
النظام
الفرعي
للمشغّل |
| "T:" |
نوع جهاز
النواة
داخل
النظام
الفرعي |
| "D:" |
رقم
رئيس/فرعي
لعقدة جهاز
النواة |
| "I:" |
فهرس
واجهة
الشبكة |
| "N:" |
اسم عقدة
جهاز
النواة |
| "L:" |
أولوية
الرابط
الرمزي
لعقدة
الجهاز |
| "S:" |
الرابط
الرمزي
لعقدة
الجهاز |
| "Q:" |
رقم تسلسل
جهاز
الكتلة (DISKSEQ) |
| "V:" |
برنامج
التشغيل
المرفق |
| "E:" |
خاصية
الجهاز |
udevadm trigger [options...] [devpath|syspath|id|unit...]¶
طلب أحداث
جهاز من
النواة.
يُستخدم
بشكل أساسي
لإعادة
تشغيل
الأحداث
عند وقت
التوصيل
البارد
للنظام.
يقبل
مواصفات
الجهاز
كوسائط
موضعية.
انظر وصف udevadm
info أعلاه.
-v، --verbose
طباعة
قائمة
الأجهزة
التي
ستُشغل.
-n، --dry-run
لا تقم
بتشغيل
الحدث
فعليًا.
-q، --quiet
قم بكتم
تسجيل
الأخطاء في
أحداث
التشغيل.
أُضيف في
الإصدار 248.
-t, --type=TYPE
تشغيل
نوع محدد من
الأجهزة.
الأنواع
الصالحة هي
"all" و"devices" و"subsystems".
القيمة
المبدئية
هي "devices".
-c, --action=ACTION
نوع
الحدث الذي
سيُشغل.
الإجراءات
الممكنة هي
"add" و"remove" و"change"
و"move" و"online"
و"offline" و"bind"
و"unbind". أيضًا،
يمكن
استخدام
القيمة
الخاصة "help"
لسرد
الإجراءات
الممكنة.
القيمة
المبدئية
هي "change".
--prioritized-subsystem=النظام
الفرعي[،النظام
الفرعي...]
يأخذ
قائمة
مفصولة
بفواصل من
الأنظمة
الفرعية.
عند تشغيل
أحداث
للأجهزة،
تُشغل
الأجهزة من
الأنظمة
الفرعية
المحددة
وأجهزتها
الأم أولاً.
على سبيل
المثال،
إذا كان
--prioritized-subsystem=block,net،
فستُشغل
جميع أجهزة
الكتلة
وأجهزتها
الأم
أولاً، ثم
جميع أجهزة
الشبكة
وأجهزتها
الأم،
وأخيراً
الأجهزة
الأخرى.
يمكن تحديد
هذا الخيار
عدة مرات،
وفي هذه
الحالة
سيُدمج
قوائم
الأنظمة
الفرعية. أي
أن
--prioritized-subsystem=block
--prioritized-subsystem=net يعادل
--prioritized-subsystem=block,net.
أُضيف في
الإصدار 251.
-s,
--subsystem-match=النظام
الفرعي
تشغيل
أحداث
للأجهزة
التي تنتمي
إلى نظام
فرعي مطابق.
يدعم هذا
الخيار
مطابقة
الأنماط
بنمط
الصدفة. عند
تحديد هذا
الخيار
أكثر من
مرة، يُطبق
عملية OR على
كل نتيجة
مطابقة، أي
تُشغل جميع
الأجهزة في
كل نظام
فرعي.
-S,
--subsystem-nomatch=النظام
الفرعي
لا تقم
بتشغيل
أحداث
للأجهزة
التي تنتمي
إلى نظام
فرعي مطابق.
يدعم هذا
الخيار
مطابقة
الأنماط
بنمط
الصدفة. عند
تحديد هذا
الخيار
أكثر من
مرة، يتم
تطبيق
عملية AND على
كل نتيجة
مطابقة، أي
تُشغل
الأجهزة
التي لا
تطابق جميع
الأنظمة
الفرعية
المحددة.
-a,
--attr-match=السمة=القيمة
تشغيل
أحداث
للأجهزة
ذات سمة sysfs
مطابقة. إذا
حُدد قيمة
مع اسم
السمة، يتم
مطابقة
محتوى
السمة مع
القيمة
المعطاة
باستخدام
مطابقة
الأنماط
بنمط
الصدفة. إذا
لم يُحدد
قيمة،
يُتحقق من
وجود سمة sysfs.
عند تحديد
هذا الخيار
عدة مرات،
تُطبق
عملية AND على
كل نتيجة
مطابقة، أي
تُشغل
الأجهزة
التي تحتوي
على جميع
السمات
المحددة
فقط.
-A,
--attr-nomatch=السمة=القيمة
لا تقم
بتشغيل
أحداث
للأجهزة
ذات سمة sysfs
مطابقة. إذا
حُدد قيمة
مع اسم
السمة، يتم
مطابقة
محتوى
السمة مع
القيمة
المعطاة
باستخدام
مطابقة
الأنماط
بنمط
الصدفة. إذا
لم يُحدد
قيمة،
يُتحقق من
وجود سمة sysfs.
عند تحديد
هذا الخيار
عدة مرات،
تُطبق
عملية AND على
كل نتيجة
مطابقة، أي
يتم تشغيل
الأجهزة
التي لا
تحتوي على
أي من
السمات
المحددة
فقط.
-p,
--property-match=الخاصية=القيمة
تشغيل
أحداث
للأجهزة
ذات قيمة
خاصية
مطابقة.
يدعم هذا
الخيار
مطابقة
الأنماط
بنمط
الصدفة. عند
تحديد هذا
الخيار
أكثر من
مرة، تُطبق
عملية OR على
كل نتيجة
مطابقة، أي
تُشغل
الأجهزة
التي تحتوي
على إحدى
الخصائص
المحددة.
-g,
--tag-match=الوسم
تشغيل
أحداث
للأجهزة
ذات وسم
مطابق. عند
تحديد هذا
الخيار عدة
مرات، يتم
تطبيق
عملية AND على
كل نتيجة
مطابقة، أي
تُشغل
الأجهزة
التي تحتوي
على جميع
الأوسمة
المحددة.
-y,
--sysname-match=الاسم
تشغيل
أحداث
للأجهزة
التي
يتطابق
فيها
المكون
الأخير (أي
اسم الملف)
من مسار /sys/ مع
PATH المحدد.
يدعم هذا
الخيار
مطابقة
الأنماط
بنمط
الصدفة. عند
تحديد هذا
الخيار
أكثر من
مرة، تُطبق
عملية OR على
كل نتيجة
مطابقة، أي
تُشغل جميع
الأجهزة
التي تحتوي
على أي من NAME
المحدد.
--name-match=الاسم
تشغيل
أحداث
للأجهزة
ذات مسار
جهاز مطابق.
عند تحديد
هذا الخيار
أكثر من
مرة، تُطبق
عملية OR على
كل نتيجة
مطابقة، أي
تُشغل جميع
الأجهزة
المحددة.
أُضيف في
الإصدارة 218.
-b,
--parent-match=المسار_النظامي
تشغيل
أحداث
لجميع
الأجهزة
الفرعية
لجهاز معين.
عند تحديد
هذا الخيار
أكثر من
مرة، تُطبق
عملية OR على
كل نتيجة
مطابقة، أي
تُشغل جميع
الأجهزة
الفرعية
لكل جهاز
محدد.
--initialized-match،
--initialized-nomatch
عند
تحديد
--initialized-match،
قم بتشغيل
أحداث
للأجهزة
التي تمت
تهيئتها
بالفعل
بواسطة
systemd-udevd،
وتجاوز
الأجهزة
التي لم تتم
تهيئتها
بعد.
عند تحديد
--initialized-nomatch، قم
بتشغيل
أحداث
للأجهزة
التي لم تتم
تهيئتها
بواسطة systemd-udevd
بعد،
وتجاوز
الأجهزة
التي تمت
تهيئتها
بالفعل.
عادةً، من
الضروري أن
تتأكد
التطبيقات
التي تنوي
استخدام
مثل هذه
المطابقة
من تثبيت
قاعدة udev
مناسبة
تحدد خاصية
واحدة على
الأقل على
الأجهزة
التي
ستُطابق.
راجع أيضًا
قسم
الأجهزة
المهيأة
أدناه
لمزيد من
التفاصيل.
تحذير
يمكن لـ
--initialized-nomatch
توفير قدر
كبير من
الوقت
مقارنة
بإعادة
تشغيل جميع
الأجهزة في
النظام،
ويمكن
استخدامه
مثلاً
لتحسين وقت
الإقلاع.
ومع ذلك،
فإن
استخدامه
في تسلسل
الإقلاع
ليس آمناً
بشكل عام.
خاصةً،
عندما
تعتمد
قواعد udev
لجهاز ما
على أجهزته
الأم (مثل
مفاتيح "ATTRS"
أو "IMPORT{parent}"،
راجع
udev(7)
لمزيد من
التفاصيل)،
تصبح
الحالة
النهائية
للجهاز غير
مستقرة
بسهولة مع
هذا الخيار.
أُضيف في
الإصدار 251.
--include-parents
تشغيل
الأجهزة
الأم
للأجهزة
التي عُثر
عليها حتى
لو لم تطابق
الأمهات
شرط
التصفية.
هذا مفيد
إذا كنا
مهتمين
بتحديد
أنشطة
التوصيل
البارد
لبعض
الأجهزة أو
الأنظمة
الفرعية.
أُضيف في
الإصدار 258.
-w، --settle
بالإضافة
إلى تشغيل
الأحداث،
ينتظر
أيضًا
انتهاء تلك
الأحداث.
لاحظ أن هذا
يختلف عن
استدعاء
udevadm
settle. ينتظر
udevadm settle
انتهاء
جميع
الأحداث.
ينتظر هذا
الخيار فقط
انتهاء
الأحداث
التي شغلها
نفس الأمر.
أُضيف في
الإصدارة 238.
--uuid
شغّل
أحداث
الجهاز
الاصطناعية،
واربط UUID
عشوائيًا
مع كل منها.
تُطبع UUIDs هذه
إلى
المخرجات
القياسية،
سطر واحد
لكل حدث.
تُضمن UUIDs هذه
في كتلة
بيئة uevent (في
الخاصية
"SYNTH_UUID=") ويمكن
استخدامها
لتتبع
تسليم
الأحداث
المُنشأة.
أُضيف في
الإصدار 249.
--wait-daemon[=ثوانٍ]
قبل
تشغيل uevents،
انتظر حتى
يُهيئ
برنامج systemd-udevd
الخفي. يأخذ
قيمة مهلة
اختياريًا.
المهلة
المبدئية
هي 5 ثوانٍ.
هذا يعادل
استدعاء
udevadm control
--ping قبل
udevadm trigger.
أُضيف في
الإصدارة 241.
بالإضافة
إلى ذلك،
يمكن
استخدام
وسائط
موضعية
اختيارية
لتحديد
أسماء
الأجهزة أو
مسارات sys.
يجب أن تبدأ
بـ /dev/ أو /sys/ على
التوالي.
udevadm settle [خيارات...]¶
يراقب
قائمة
انتظار
أحداث udev،
ويخرج إذا
تمت معالجة
جميع
الأحداث
الحالية.
-t،
--timeout=ثوانٍ
الحد
الأقصى
لعدد
الثواني
للانتظار
حتى تصبح
قائمة
انتظار
الأحداث
فارغة.
القيمة
المبدئية
هي 120 ثانية.
القيمة 0
ستتحقق مما
إذا كانت
القائمة
فارغة
وستعود
فورًا
دائمًا.
القيمة غير
الصفرية
ستعيد رمز
خروج 0 إذا
أصبحت
القائمة
فارغة قبل
بلوغ
المهلة،
وغير صفرية
بخلاف ذلك.
-E،
--exit-if-exists=ملف
توقف عن
الانتظار
إذا كان
الملف
موجودًا.
انظر
systemd-udev-settle.service(8)
لمزيد من
المعلومات.
udevadm control خيارات...¶
عدّل
الحالة
الداخلية
لبرنامج udev
الخفي
الجاري.
-e، --exit
أشر
وانتظر حتى
يخرج systemd-udevd. لا
يمكن تحديد
أي خيار
باستثناء
--timeout بعد هذا
الخيار.
لاحظ أن systemd-udevd.service
يحتوي على
Restart=always ونتيجة
لذلك، يعيد
هذا الخيار
تشغيل systemd-udevd.
إذا أردت
إيقاف systemd-udevd.service،
يُرجى
استخدام ما
يلي:
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd-varlink.socket systemd-udevd.service
-l،
--log-level=قيمة
اضبط
مستوى
السجل
الداخلي لـ
systemd-udevd. القيم
الصالحة هي
أولويات syslog
الرقمية أو
تمثيلاتها
النصية: emerg،
alert، crit، err،
warning، notice، info، و
debug.
-s، --stop-exec-queue
أشر إلى
systemd-udevd لإيقاف
تنفيذ
الأحداث
الجديدة.
ستُوضع
الأحداث
الواردة في
قائمة
انتظار.
-S، --start-exec-queue
أشر إلى
systemd-udevd لتمكين
تنفيذ
الأحداث.
-R، --reload
أشر إلى
systemd-udevd لإعادة
تحميل
ملفات
القواعد
وقواعد
البيانات
الأخرى مثل
فهرس وحدة
النواة. لا
تطبق إعادة
تحميل
القواعد
وقواعد
البيانات
أي تغييرات
على
الأجهزة
الموجودة
بالفعل؛
ستُطبق
التهيئة
الجديدة
فقط على
الأحداث
الجديدة.
-p،
--property=مفتاح=قيمة
تعيين
خاصية عامة
لجميع
الأحداث.
-m،
--children-max=قيمة
تعيين
الحد
الأقصى
لعدد
الأحداث
التي
سيعالجها systemd-udevd
في نفس
الوقت. عند
تحديد 0،
يُحدد الحد
الأقصى
بناءً على
موارد
النظام.
--ping
إرسال
رسالة ping إلى
systemd-udevd
والانتظار
للرد. قد
يكون هذا
مفيدًا
للتحقق من
تشغيل
برنامج systemd-udevd
الخفي.
أُضيف في
الإصدارة 241.
--trace=قيمة_منطقية
تمكين/تعطيل
تسجيل
التتبع في
systemd-udevd.
أُضيف في
الإصدار 258.
--revert
إعادة
الإعدادات
المُعينة
سابقًا
بأمر
udevadm control.
عند
التحديد،
تُمسح
الإعدادات
المُعينة
بـ
-l/--log-level=،
--trace،
-m/--children-max=، و
-p/--property=.
أُضيف في
الإصدار 258.
-t،
--timeout=ثوانٍ
الحد
الأقصى
لعدد
الثواني
للانتظار
لرد من systemd-udevd.
--load-credentials
عند
التحديد،
تُستخدم
بيانات
الاعتماد
التالية
عند
تمريرها:
udev.conf.*
يجب أن
تحتوي هذه
المُعتمَدات
على بيانات
تهيئة
udev.conf(5)
صالحة. من كل
مُعتمَد
مُطابق
يُنشأ ملف
منفصل. مثال:
يُنسخ
مُعتمَد
مُمرّر udev.conf.50-foobar
إلى ملف
تهيئة /run/udev/udev.conf.d/50-foobar.conf.
أُضيف في
الإصدار 256.
udev.rules.*
يجب أن
تحتوي هذه
المُعتمَدات
على قواعد
udev(7) صالحة. من
كل مُعتمَد
مُطابق
يُنشأ ملف
منفصل. مثال:
يُنسخ
مُعتمَد
مُمرّر udev.rules.50-foobar
إلى ملف
تهيئة /run/udev/rules.d/50-foobar.rules.
أُضيف في
الإصدار 256.
ملاحظة،
هذا لا
يعني خيار
--reload. لذا، إذا
كان systemd-udevd
يعمل
بالفعل،
يُرجى
النظر في
تحديد -reload
أيضًا لجعل
ملفات
قواعد udev
المنسوخة
مُستخدمة
بواسطة systemd-udevd.
أُضيف في
الإصدار 256.
udevadm monitor [خيارات...]¶
الاستماع
إلى أحداث uevents
للنواة
والأحداث
المُرسلة
بواسطة
قاعدة udev
وطباعة
مسار
الجهاز
للحدث إلى
وحدة
التحكم.
يمكن
استخدامه
لتحليل
توقيت
الحدث،
بمقارنة
الطوابع
الزمنية
لحدث uevent
للنواة
وحدث udev.
-k، --kernel
طباعة
أحداث uevents
للنواة.
-u، --udev
طباعة
حدث udev بعد
معالجة
القاعدة.
-p، --property
طباعة
خصائص
الحدث
أيضًا.
-s،
--subsystem-match=سلسلة[/سلسلة]
تصفية
أحداث uevents
للنواة
وأحداث udev حسب
النظام
الفرعي[/نوع
الجهاز]. تمر
فقط
الأحداث
ذات قيمة
النظام
الفرعي
المُطابقة.
عند تحديد
هذا الخيار
أكثر من
مرة، تُجمع
نتائج
المطابقة
بعملية OR، أي
تُراقب
جميع
الأجهزة في
الأنظمة
الفرعية
المُحددة.
-t،
--tag-match=سلسلة
تصفية
أحداث udev حسب
الوسم. تمر
فقط أحداث udev
ذات الوسم
المُرفق
المُعطى.
عند تحديد
هذا الخيار
أكثر من
مرة، تُجمع
نتائج
المطابقة
بعملية OR، أي
تُراقب
الأجهزة
التي تحتوي
على أحد
الوسوم
المُحددة.
udevadm test [options...] devpath|syspath|id|unit¶
محاكاة
تشغيل حدث udev
للجهاز
المُعطى،
وطباعة
مخرجات
التصحيح. قد
يكون
الخيار --json=
مفيدًا
لتحليل
النتيجة
النهائية.
انظر أيضًا
قسم
الأمثلة.
-a, --action=ACTION
نوع
الحدث
المراد
محاكاته.
الإجراءات
الممكنة هي
"add" و"remove" و"change"
و"move" و"online"
و"offline" و"bind"
و"unbind". أيضًا،
يمكن
استخدام
القيمة
الخاصة "help"
لسرد
الإجراءات
الممكنة.
القيمة
المبدئية
هي "add".
-N,
--resolve-names=early|late|never
تحديد
متى يجب على
udevadm حل أسماء
المستخدمين
والمجموعات
المُحددة
في قواعد udev.
عند
التعيين
إلى
early
(المبدئي)،
تُحل
الأسماء
عند تحليل
القواعد.
عند
التعيين
إلى
late، تُحل
الأسماء
أثناء
معالجة
الحدث. عند
التعيين
إلى
never، لن
تُحل
الأسماء
أبدًا
وسيتم
تجاهل
قواعد udev ذات
الصلة.
أُضيف في
الإصدارة 209.
-D DIR, --extra-rules-dir=DIR
تحميل
ملفات
قواعد udev
أيضًا من
الدليل
المُحدد.
يمكن تحديد
هذا الخيار
عدة مرات. قد
يكون
مفيدًا
لتصحيح
أخطاء
قواعد udev عن
طريق نسخ
بعض ملفات
قواعد udev إلى
دليل مؤقت،
وتحريرها،
وتحديد
الدليل
بهذا
الخيار.
الملفات
الموجودة
في الأدلة
المُحددة
لها أولوية
أعلى من
ملفات
القواعد في
الأدلة
المبدئية udev/rules.d
التي
يستخدمها
systemd-udevd. انظر
udev(7)
لمزيد من
التفاصيل
حول مسارات
البحث.
أُضيف في
الإصدار 258.
-v، --verbose
إظهار
سجلات
مفصلة في
معالجة
قواعد udev.
أُضيف في
الإصدار 258.
--json=وضع
يظهر
المخرجات
منسقة
بصيغة JSON.
يتوقع أحد
الخيارات:
"short" (لأقصر
مخرج ممكن
دون أي
مسافات
زائدة أو
فواصل
أسطر)، أو "pretty"
(لنسخة
جميلة من
المخرج
نفسه، مع
إزاحة
وفواصل
أسطر) أو "off"
(لإيقاف
مخرجات JSON،
وهو الخيار
المبدئي).
udevadm test-builtin [options...] command devpath|file|unit¶
تشغيل أمر
مدمج COMMAND
للجهاز DEVPATH،
وطباعة
مخرجات
التصحيح.
-a, --action=ACTION
نوع
الحدث
المراد
محاكاته.
الإجراءات
الممكنة هي
"add" و"remove" و"change"
و"move" و"online"
و"offline" و"bind"
و"unbind". أيضًا،
يمكن
استخدام
القيمة
الخاصة "help"
لسرد
الإجراءات
الممكنة.
القيمة
المبدئية
هي "add".
أُضيف في
الإصدار 250.
udevadm verify [options...] [files...]¶
التحقق من
الصحة
النحوية
والدلالية
والأسلوبية
لملفات
قواعد udev.
يمكن
استخدام
الوسائط
الموضعية
لتحديد ملف
واحد أو
أكثر للفحص.
يجب أن يكون
كل وسيط
مسارًا
مطلقًا
لملف قواعد
udev أو دليل
يحتوي على
ملفات
قواعد، أو
اسم ملف
لملف قواعد
udev (مثل 99-systemd.rules). إذا
حُدد اسم
ملف، فسيتم
البحث عن
الملف في
أدلة udev/rules.d
التي
يعالجها
systemd-udevd،
والبحث في
دليل العمل
الحالي إذا
لم يعُثر
عليه. إذا لم
يُحدد أي
ملفات،
تُقرأ
قواعد udev من
الملفات
الموجودة
في نفس أدلة
udev/rules.d التي
يعالجها
systemd-udevd. انظر udev(7)
لمزيد من
التفاصيل
حول مسارات
البحث.
حالة
الخروج هي 0
إذا كانت
جميع ملفات
قواعد udev
المُحددة
صحيحة
نحويًا
ودلاليًا
وأسلوبيًا،
ورمز خطأ
غير صفري
بخلاف ذلك.
-N,
--resolve-names=early|late|never
تحديد
متى يجب على
udevadm حل أسماء
المستخدمين
والمجموعات
المُحددة
في قواعد udev.
عند
التعيين
إلى
early
(المبدئي)،
تُحل
الأسماء
عند تحليل
القواعد.
عند
التعيين
إلى
late، لن
يُتحقق من
الأسماء،
حيث يحل
systemd-udevd
الأسماء
أثناء
معالجة كل
حدث. عند
التعيين
إلى
never، لن
تُحل
الأسماء
أبدًا
وسيُتجاهل
القواعد
ذات الصلة.
أُضيف في
الإصدار 254.
--root=المسار
عند
البحث عن
ملفات
قواعد udev
الموجودة
في أدلة udev/rules.d،
العمل على
الملفات
الموجودة
أسفل مسار
الجذر
المُحدد
PATH.
عند تحديد
اسم ملف،
وعدم
العثور
عليه في
أدلة udev/rules.d،
سيُبحث عن
الملف في
مسار الجذر
المُحدد
PATH،
بدلاً من
دليل العمل
الحالي.
أُضيف في
الإصدار 254.
--no-summary
عدم
إظهار
الملخص.
أُضيف في
الإصدار 254.
--no-style
تجاهل
مشكلات
الأسلوب.
عند
التحديد،
حتى إذا
عُثر على
مشكلات
أسلوبية في
ملفات
قواعد udev، فإن
حالة
الخروج
تكون
0 إذا
لم يعُثر
على أخطاء
نحوية أو
دلالية.
أُضيف في
الإصدار 254.
udevadm cat [options...] [file...]¶
إظهار
ملفات
قواعد udev أو
udev.conf.
يمكن
استخدام
الوسائط
الموضعية
لتحديد ملف
واحد أو
أكثر
للإظهار.
يجب أن يكون
كل وسيط
مسارًا
مطلقًا
لملف قواعد
udev أو دليل
يحتوي على
ملفات
قواعد، أو
اسم ملف
لملف قواعد
udev (مثل 99-systemd.rules). إذا
حُدد اسم
ملف، فسيتم
البحث عن
الملف في
أدلة udev/rules.d
التي
يعالجها
systemd-udevd،
والبحث في
دليل العمل
الحالي إذا
لم يعُثر
عليه. إذا لم
يُحدد أي
ملفات،
تُقرأ
قواعد udev من
الملفات
الموجودة
في نفس أدلة
udev/rules.d التي
يعالجها
systemd-udevd. انظر udev(7)
لمزيد من
التفاصيل
حول مسارات
البحث.
--root=المسار
عند
البحث عن
ملفات
قواعد udev
الموجودة
في أدلة udev/rules.d،
العمل على
الملفات
الموجودة
أسفل مسار
الجذر
المُحدد
PATH.
عند تحديد
اسم ملف،
وعدم
العثور
عليه في
أدلة udev/rules.d،
سيُبحث عن
الملف في
مسار الجذر
المُحدد
PATH،
بدلاً من
دليل العمل
الحالي.
أُضيف في
الإصدار 258.
--tldr
طباعة
الأجزاء
"المثيرة
للاهتمام"
فقط من
ملفات
الإعداد،
وتخطي
التعليقات
والأسطر
الفارغة
ورؤوس
الأقسام
التي
يتبعها فقط
تعليقات
وأسطر
فارغة.
أُضيف في
الإصدار 258.
--config
إظهار
ملفات
udev.conf(5)
بدلاً من
ملفات
قواعد udev. عند
التحديد،
لا يمكن
تحديد أي
ملف قواعد udev.
أُضيف في
الإصدار 258.
udevadm wait [options...] devpath|syspath...¶
انتظر حتى
يُنشئ
ويُهيئ
الأجهزة أو
الروابط
الرمزية
للأجهزة
بواسطة systemd-udevd.
يجب أن يبدأ
كل مسار
جهاز بـ "/dev/"
أو "/sys/"، على
سبيل
المثال
"/dev/sda"،
"/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1"،
"/sys/devices/pci0000:00/0000:00:1f.6/net/eth0"،
أو "/sys/class/net/eth0".
يمكن أن
يستغرق هذا
أجهزة
متعددة. قد
يكون هذا
مفيدًا
لانتظار
الأجهزة
المعالجة
بواسطة systemd-udevd
بعد، على
سبيل
المثال،
تقسيم
الأجهزة أو
تنسيقها.
-t،
--timeout=ثوانٍ
الحد
الأقصى
لعدد
الثواني
لانتظار
إنشاء أو
تهيئة أو
إزالة
الأجهزة
المحددة أو
الروابط
الرمزية
للأجهزة.
القيمة
المبدئية
هي "infinity".
أُضيف في
الإصدار 251.
--initialized=BOOL
تحقق مما
إذا كان
systemd-udevd
قد قام
بتهيئة
الأجهزة.
المبدئي هو
true. عندما
يكون false،
يتحقق
الأمر فقط
من وجود
الأجهزة
المحددة.
اضبط هذا
الإعداد
على false إذا لم
تكن هناك
قواعد udev
للأجهزة
المحددة،
حيث لن
تُعتبر
الأجهزة
مهيأة في
هذه الحالة.
راجع قسم
الأجهزة
المهيأة
أدناه
لمزيد من
التفاصيل.
أُضيف في
الإصدار 251.
--removed
عند
التحديد،
ينتظر
الأمر
إزالة
الأجهزة
بدلاً من
إنشائها أو
تهيئتها.
إذا حُدد
هذا،
سيتجاهل
--initialized=.
أُضيف في
الإصدار 251.
--settle
عند
التحديد،
يراقب
أيضًا
قائمة
انتظار
أحداث udev،
وينتظر
معالجة
جميع
الأحداث في
قائمة
الانتظار
بواسطة
systemd-udevd.
أُضيف في
الإصدار 251.
udevadm lock [options...] command...¶
يأخذ udevadm lock
قفلًا
حصريًا
(استشاريًا)
على جهاز
كتلة (أو
جميع
الأجهزة
المحددة)،
وفقًا لـ Locking Block
Device Access[2]
ويستدعي
برنامجًا
مع أخذ
الأقفال.
عند خروج
البرنامج
المستدعى،
يتم تحرير
الأقفال
آليًا
ويُنشر
قيمة
إرجاعه
كرمز خروج
لـ udevadm lock.
هذه
الأداة
مفيدة بشكل
خاص لضمان
عدم قيام
systemd-udevd.service(8)
باستكشاف
جهاز كتلة
أثناء
إجراء
تغييرات
عليه، على
سبيل
المثال
إنشاء
أقسام أو
تنسيق
أنظمة
ملفات. لاحظ
أن العديد
من الأدوات
التي
تتفاعل مع
أجهزة
الكتلة
تدعم أصلاً
أخذ
الأقفال
ذات الصلة،
راجع على
سبيل
المثال
مفتاح --lock
الخاص بـ
sfdisk(8).
يتوقع
الأمر جهاز
كتلة
واحدًا على
الأقل
محددًا عبر
--device= أو --backing=،
وسطر أوامر
لتنفيذه
كوسائط.
--device=DEVICE, -d DEVICE
يأخذ
مسارًا إلى
عقدة جهاز
للجهاز
المراد
قفله. يمكن
استخدام
هذا
المفتاح
عدة مرات
(وبالاقتران
مع
--backing=) لقفل
أجهزة
متعددة. إذا
حُدد عقدة
جهاز كتلة
قسم، يُحدد
جهاز
الكتلة
"الكامل"
المحتوي
آليًا
واستخدامه
للقفل،
وفقًا
للمواصفات.
إذا حُدد
أجهزة
متعددة،
يُلغى
تكرارها،
وفرزها حسب
الرقم
الرئيس/الفرعي
لعقد
أجهزتها ثم
قفلها
بالترتيب.
يجب
استخدام
هذا
المفتاح
مرة واحدة
على الأقل،
لتحديد
جهاز واحد
على الأقل
لقفله.
(بدلاً من
ذلك،
استخدم --backing=،
انظر
أدناه.)
أُضيف في
الإصدار 251.
--backing=PATH, -b PATH
إذا حُدد
مسار إلى
عقدة جهاز،
فهو مطابق
لـ
--device=. ومع
ذلك، يقبل
هذا
المفتاح
بدلاً من
ذلك مسارًا
إلى ملف
عادي أو
دليل، وفي
هذه الحالة
يُحدد جهاز
الكتلة
لنظام
الملفات
الذي يوجد
عليه
الملف/الدليل
آليًا
واستخدامه
كما لو حُدد
باستخدام
--device=.
أُضيف في
الإصدار 251.
--timeout=SECS, -t SECS
يحدد
المدة
القصوى
للانتظار
حتى يمكن
أخذ جميع
الأقفال.
يأخذ قيمة
بالثواني،
أو بوحدات
الوقت
المدعومة
المعتادة،
راجع
systemd.time(7).
إذا حُدد
كصفر، يتم
محاولة
القفل وإذا
لم ينجح،
سيفشل
الاستدعاء
فورًا. إذا
مُرر كـ "infinity"
(المبدئي)،
سينتظر
الاستدعاء
إلى أجل غير
مسمى حتى
يمكن
الحصول على
القفل. إذا
تعذر أخذ
القفل في
الوقت
المحدد، لن
يُنفذ
الأمر
المحدد
وسيفشل
الاستدعاء.
أُضيف في
الإصدار 251.
--print, -p
بدلاً من
قفل
الأجهزة
المحددة
وتنفيذ
أمر، قم فقط
بطباعة
مسارات
الأجهزة
التي
ستُقفل،
ولا تنفذ أي
أمر. هذا
الأمر مفيد
لتحديد
جهاز
الكتلة
"الكامل" في
حالة تحديد
جهاز كتلة
قسم. ستُفرز
الأجهزة
حسب رقمها
الرئيس
لعقدة
الجهاز
كمفتاح
ترتيب
أساسي
والرقم
الفرعي
كمفتاح
ترتيب
ثانوي (أي
تُعرض
بالترتيب
الذي
ستُقفل به).
لاحظ أن عدد
الأسطر
المطبوعة
هنا يمكن أن
يكون أقل من
عدد مفاتيح
--device= و
--backing=
المحددة في
حالة حلها
لنفس
الأجهزة
"الكاملة".
أُضيف في
الإصدار 251.
مثال¶
مثال 1. تنسيق
نظام
ملفات
خذ قفلًا
على جهاز
الكتلة
الداعم
أثناء
إنشاء نظام
ملفات،
لضمان عدم
قيام systemd-udevd
باستكشاف
أو الإعلان
عن الكتلة
الفائقة
الجديدة
قبل
كتابتها
بشكل شامل:
# udevadm lock --device=/dev/sda1 mkfs.ext4 /dev/sda1
مثال 2. تنسيق
نظام ملفات
RAID
مشابه،
لكن يأخذ
أقفالاً
على أجهزة
متعددة
دفعة
واحدة:
# udevadm lock --device=/dev/sda1 --device=/dev/sdb1 mkfs.btrfs /dev/sda1 /dev/sdb1
مثال 3. نسخ
في نظام
ملفات
يأخذ
قفلاً على
جهاز
الكتلة
الداعم
أثناء نسخ
صورة نظام
ملفات
مُعدة،
لضمان أن
systemd-udevd لا
يستكشف أو
يعلن عن
الكتلة
الفائقة
الجديدة
قبل
كتابتها
بالكامل:
# udevadm lock -d /dev/sda1 dd if=fs.raw of=/dev/sda1
مثال 4. توقع
إعادة
تسمية
واجهة
الشبكة
لتوقع اسم
واجهة
شبكة، يمكن
استخدام udevadm
test:
$ udevadm test /sys/class/net/wlan0 --json=pretty 2>/dev/null | jq .networkInterface.name
"wlp59s0"
مثال 5. توقع
الروابط
الرمزية
لعقدة
جهاز
لتوقع
الروابط
الرمزية
لعقدة
جهاز، يمكن
استخدام udevadm
test:
$ udevadm test /dev/nvme0n1p1 --json=pretty 2>/dev/null | jq .node.symlinks
[
"/dev/disk/by-diskseq/1-part1",
"/dev/disk/by-id/nvme-WDC_PC_SN720_SDAQNTW-512G-1001_192290802247-part1",
"/dev/disk/by-id/nvme-WDC_PC_SN720_SDAQNTW-512G-1001_192290802247_1-part1",
"/dev/disk/by-id/nvme-eui.1922908022470001001b448b44ccb9d6-part1",
"/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part/by-partnum/1",
"/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1"
]
$ udevadm test /dev/input/event3 --json=pretty 2>/dev/null | jq .node.symlinks
[
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
]