table of contents
- unstable 4.31.0-1
| UDEV(7) | udev | UDEV(7) |
الاسم¶
udev - إدارة الأجهزة الديناميكية
الوصف¶
يزود udev برنامج النظام بأحداث الأجهزة، ويدير أذونات عُقد الأجهزة، وقد ينشئ روابط رمزية إضافية في الدليل /dev/، أو يعيد تسمية واجهات الشبكة. عادةً ما يُسند النواة أسماء أجهزة غير متوقعة بناءً على ترتيب الاكتشاف. توفر الروابط الرمزية ذات المعنى أو أسماء أجهزة الشبكة طريقة لتحديد الأجهزة بشكل موثوق بناءً على خصائصها أو تهيئتها الحالية.
يتلقى برنامج خفي udev، systemd-udevd.service(8)، أحداث uevents للأجهزة مباشرة من النواة كلما أُضيف جهاز أو أُزيل من النظام، أو غيّر حالته. عندما يتلقى udev حدث جهاز، يطابق مجموعته المهيأة من القواعد مقابل سمات جهاز متنوعة لتحديد الجهاز. قد توفر القواعد المتطابقة معلومات إضافية عن الجهاز لتُخزن في قاعدة بيانات udev أو لتُستخدم لإنشاء أسماء روابط رمزية ذات معنى.
تُخزن جميع معلومات الجهاز التي يعالجها udev في قاعدة بيانات udev وتُرسل إلى المشتركين المحتملين في الأحداث. يوفر المكتبة libudev الوصول إلى جميع البيانات المخزنة ومصادر الأحداث.
ملفات القواعد¶
تُقرأ قواعد udev من الملفات الموجودة في أدلة قواعد النظام /usr/lib/udev/rules.d و /usr/local/lib/udev/rules.d، والدليل الزمني المتغير /run/udev/rules.d ودليل الإدارة المحلي /etc/udev/rules.d. تُفرز جميع ملفات القواعد جماعيًا وتُعالج بترتيب معجمي، بغض النظر عن الأدلة التي توجد فيها. ومع ذلك، تستبدل الملفات ذات أسماء الملفات المتطابقة بعضها البعض. للملفات في /etc/ الأولوية القصوى، وتتفوق الملفات في /run/ على الملفات التي تحمل الاسم نفسه تحت /usr/. يمكن استخدام هذا لتجاوز ملف قواعد مزود من النظام بملف محلي إذا لزم الأمر؛ رابط رمزي في /etc/ بنفس اسم ملف قواعد في /usr/lib/، يشير إلى /dev/null، يُعطل ملف القواعد بالكامل. يجب أن تحتوي ملفات القواعد على الامتداد .rules؛ وتُتجاهل الامتدادات الأخرى.
يحتوي كل سطر في ملف القواعد على زوج مفتاح-قيمة واحد على الأقل. باستثناء الأسطر الفارغة أو الأسطر التي تبدأ بـ "#"، والتي تُتجاهل. هناك نوعان من المفاتيح: المطابقة والتعيين. إذا تطابقت جميع مفاتيح المطابقة مع قيمها، تُطبق القاعدة وتُسند القيم المحددة إلى مفاتيح التعيين.
قد تعيد قاعدة مطابقة تسمية واجهة شبكة، أو تضيف روابط رمزية تشير إلى عقدة الجهاز، أو تشغل برنامجًا محددًا كجزء من معالجة الحدث.
تتكون القاعدة من قائمة مفصولة بفواصل لتعبير واحد أو أكثر من مفتاح-عامل-قيمة. لكل تعبير تأثير مميز، اعتمادًا على المفتاح والعامل المستخدمين.
المعاملات¶
"=="
"!="
"="
"+="
"-="
أُضيف في الإصدارة 217.
":="
أُضيف في الإصدار 247.
القيم¶
تُكتب القيم كسلاسل محاطة بعلامتي اقتباس مزدوجتين، مثل ("string"). لتضمين علامة اقتباس (") في القيمة، اسبقها بخط مائل عكسي (\"). لا تُفك أي حدوثات أخرى لخط مائل عكسي متبوع بحرف. أي، "\t\n" يُعامل كأربعة أحرف: خط مائل عكسي، حرف t صغير، خط مائل عكسي، حرف n صغير.
يمكن أن تُسبق السلسلة بحرف e صغير (e"string\n") لتمييز السلسلة على أنها مهربة بنمط C، انظر Escape sequences in C[1]. على سبيل المثال، تُحلل e"string\n" كـ 7 أحرف: 6 أحرف صغيرة وسطر جديد. يمكن أن يكون هذا مفيدًا لكتابة أحرف خاصة عندما يتطلبها برنامج تشغيل النواة.
يمكن أن تُسبق السلسلة بحرف i صغير (i"string") لتمييز أن السلسلة أو النمط سيتطابقان بدون حساسية لحالة الأحرف. على سبيل المثال، i"foo" سيتطابق مع "foo"، "FOO"، "FoO" وهكذا. يمكن استخدام البادئة فقط لقواعد المطابقة ("==") أو عدم المطابقة ("!=")، على سبيل المثال ATTR{foo}==i"abcd".
يرجى ملاحظة أن NUL غير مسموح به في أي من متغيري السلسلة.
المفاتيح¶
يمكن استخدام أسماء المفاتيح التالية للمطابقة مقابل خصائص الجهاز. بعض المفاتيح تطابق أيضًا خصائص الأجهزة الأم في sysfs، وليس فقط الجهاز الذي أنشأ الحدث. إذا حُددت مفاتيح متعددة تطابق جهازًا أمًا في قاعدة واحدة، يجب أن تتطابق جميع هذه المفاتيح عند نفس الجهاز الأم.
ACTION
DEVPATH
KERNEL
KERNELS
NAME
SYMLINK
SUBSYSTEM
SUBSYSTEMS
DRIVER
DRIVERS
ATTR{filename}
تُتجاهل المسافات البيضاء الزائدة في قيم السمات ما لم تحتوِ قيمة المطابقة المحددة نفسها على مسافات بيضاء زائدة.
ATTRS{filename}
تُتجاهل المسافات البيضاء الزائدة في قيم السمات ما لم تحتوِ قيمة المطابقة المحددة نفسها على مسافات بيضاء زائدة.
SYSCTL{معطى_النواة}
أُضيف في الإصدار 240.
ENV{key}
CONST{key}
"arch"
أُضيف في الإصدارة 244.
"virt"
أُضيف في الإصدارة 244.
"cvm"
أُضيف في الإصدار 254.
لن تتطابق المفاتيح غير المعروفة أبدًا.
أُضيف في الإصدارة 244.
TAG
TAGS
TEST{octal mode mask}
PROGRAM
يمكن استخدام هذا فقط لمهام الواجهة الأمامية قصيرة المدى جدًا. للتفاصيل، راجع RUN.
لاحظ أنه يمكن تحديد مفاتيح PROGRAM متعددة في قاعدة واحدة، وأن "=" و ":=" و "+=" لها نفس تأثير "==".
RESULT
معظم الحقول تدعم مطابقة أنماط glob shell والأنماط البديلة. الأحرف الخاصة التالية مدعومة:
"*"
"؟"
"[]"
"|"
أُضيف في الإصدارة 217.
المفاتيح التالية يمكنها الحصول على قيم مسندة:
NAME
SYMLINK
مجموعة الأحرف المسموح بها لتسمية رابط رمزي محدودة. الأحرف المسموح بها هي ”0-9A-Za-z#+-.:=@_/“، وتسلسلات الأحرف الصالحة بتنسيق UTF-8، والترميز السداسي العشري ”\x00“. ويتم استبدال جميع الأحرف الأخرى بحرف ”_“ .
يمكن تحديد روابط رمزية متعددة بفصل الأسماء بحرف المسافة. في حالة ادعاء أجهزة متعددة نفس الاسم، يشير الرابط دائمًا إلى الجهاز ذي أعلى link_priority. إذا اختفى الجهاز الحالي، تُعاد تقييم الروابط ويصبح الجهاز ذو أعلى link_priority تاليًا مالك الرابط. إذا لم يُحدد link_priority، يكون ترتيب الأجهزة (وأي منها يملك الرابط) غير محدد.
يجب ألا تتعارض أسماء الروابط الرمزية أبدًا مع أسماء عقد الأجهزة المبدئية للنواة، لأن ذلك سيؤدي إلى سلوك غير متوقع.
OWNER، GROUP، MODE
SECLABEL{module}
أُضيف في الإصدارة 209.
ATTR{key}
SYSCTL{معطى_النواة}
أُضيف في الإصدارة 220.
ENV{key}
TAG
RUN{type}
type قد يكون:
"program"
هذا هو المبدئي إذا لم يُحدد type.
"مضمن"
أُضيف في الإصدارة 199.
يُفصل اسم البرنامج والوسائط التالية بمسافات. يمكن استخدام علامات الاقتباس المفردة لتحديد وسائط تحتوي على مسافات.
يمكن استخدام هذا فقط للمهام الأمامية قصيرة جدًا. قد يؤدي تشغيل عملية حدث لفترة طويلة إلى حظر جميع الأحداث اللاحقة لهذا الجهاز أو جهاز تابع.
لاحظ أن تشغيل البرامج التي تصل إلى الشبكة أو تصل/تفصل أنظمة الملفات غير مسموح به داخل قواعد udev، بسبب الصندوق الرملي المبدئي المفروض على systemd-udevd.service.
بدء الخدمات أو العمليات طويلة الأمد الأخرى غير مسموح به؛ العمليات المتفرعة، سواء كانت منفصلة أم لا، ستُقتل دون قيد أو شرط بعد انتهاء معالجة الحدث. لتفعيل عمليات طويلة الأمد من قواعد udev، قدم وحدة خدمة واسحبها من جهاز udev باستخدام خاصية الجهاز SYSTEMD_WANTS. راجع systemd.device(5) للتفاصيل.
LABEL
GOTO
استيراد{النوع}
"program"
أُضيف في الإصدارة 199.
"مضمن"
أُضيف في الإصدارة 199.
"file"
"db"
"cmdline"
"parent"
يمكن استخدام هذا فقط للمهام الأمامية قصيرة جدًا. للتفاصيل، راجع RUN.
لاحظ أنه يمكن تحديد مفاتيح IMPORT{} متعددة في قاعدة واحدة، و "=" و ":=" و "+=" لها نفس تأثير "==". المفتاح صحيح إذا كان الاستيراد ناجحًا، ما لم يُستخدم "!=" كعامل تشغيل مما يجعل المفتاح صحيحًا إذا فشل الاستيراد.
الخيارات
link_priority=قيمة
string_escape=none|replace
static_node=
watch
nowatch
db_persist
أُضيف في الإصدارة 241.
log_level=level
قد يكون هذا مفيدًا عند تصحيح أحداث أجهزة معينة. لاحظ أن مستوى السجل يُطبق عند معالجة السطر الذي يتضمن هذه القاعدة. لذلك، للتصحيح، يُوصى بتحديد هذا في مكان مبكر، مثل السطر الأول من 00-debug.rules.
مثال لتصحيح معالجة uevent لواجهات الشبكة:
# /etc/udev/rules.d/00-debug-net.rules SUBSYSTEM=="net", OPTIONS="log_level=debug"
أُضيف في الإصدار 248.
dump
أُضيف في الإصدار 258.
dump-json
أُضيف في الإصدار 259.
تدعم الحقول ENV وGROUP وMODE وNAME وOWNER وPROGRAM وRUN وSECLABEL وSYMLINK استبدالات سلسلة بسيطة. تُجرى استبدالات RUN بعد معالجة جميع القواعد، قبل تنفيذ البرنامج مباشرة، مما يسمح باستخدام خصائص الجهاز المحددة بواسطة قواعد المطابقة السابقة. بالنسبة لجميع الحقول الأخرى، تُجرى الاستبدالات أثناء معالجة القاعدة الفردية. الاستبدالات المتاحة هي:
$kernel, %k
$number, %n
$devpath, %p
$id, %b
$driver
$attr{file}, %s{file}
إذا كانت السمة رابطًا رمزيًا، يُرجع العنصر الأخير من هدف الرابط الرمزي كقيمة.
$env{key}, %E{key}
$major, %M
$minor, %m
$result, %c
$parent, %P
$name
$links
$root, %r
$sys, %S
$devnode, %N
%%
$$
انظر أيضًا¶
ملاحظات¶
- 1.
- تسلسلات الهروب في C
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 261~rc3 |