- قيادة لينكس - قيادة يونيكس

اسم

depmod - التعامل مع أوصاف التبعية لوحدات النواة القابلة للتحميل

ملخص

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b basedirectory ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o module2.o ...

وصف

المقصود من المرافق العامة والمرافق modprobe لجعل لينكس وحدات النواة للإدارة لجميع المستخدمين والمسؤولين ومديري التوزيع.

ينشئ Depmod ملف التبعية "تشبه Makefile" ، استنادا إلى الرموز التي يعثر عليها في مجموعة من الوحدات المذكورة في سطر الأوامر أو من الدلائل المحددة في ملف التكوين. يتم استخدام ملف التبعية هذا لاحقًا بواسطة modprobe لتحميل الوحدة النمطية أو كومة الوحدات النمطية بشكل تلقائي.

الاستخدام العادي لل depmod هو لتشمل الخط


/ sbin / depmod -a

في مكان ما في ملفات rc- في / etc / rc.d ، بحيث تكون تبعيات الوحدة النمطية الصحيحة متوفرة مباشرة بعد تمهيد النظام. لاحظ أن الخيار -a اختياري الآن. لأغراض الإقلاع ، قد يكون الخيار -q أكثر ملاءمة لأن ذلك يجعل depmod صامتًا بشأن الرموز التي لم يتم حلها.

من الممكن أيضاً إنشاء ملف التبعية مباشرة بعد تجميع kernel جديد. إذا قمت بعمل " depmod -a 2.2.99 " عندما قمت بتجميع kernel 2.2.99 والوحدات النمطية الخاصة به في المرة الأولى ، بينما لا تزال قيد التشغيل على سبيل المثال 2.2.98 ، فسيتم إنشاء الملف في المكان الصحيح. في هذه الحالة ، لن تكون الاعتمادات على النواة مضمونة. راجع الخيارات -F و -C و -b أعلاه للحصول على مزيد من المعلومات حول التعامل مع هذا.

أثناء بناء العلاقة بين الوحدات والرموز التي يتم تصديرها بواسطة وحدات أخرى ، لا يعتبر depmod حالة GPL للوحدات ولا للرموز المصدرة. بمعنى ، لن يبلّغ depmod بحدوث خطأ إذا كانت الوحدة النمطية بدون ترخيص متوافق مع GPL تشير إلى رمز GPL فقط (EXPORT_SYMBOL_GPL في kernel). ومع ذلك ، يرفض obm حل رموز GPL فقط للوحدات غير GPL حتى يفشل التحميل الفعلي.

خيارات

-أو-

البحث عن الوحدات في جميع الدلائل المحددة في ملف التكوين (اختياري) /etc/modules.conf .

-A ، - سريع

قارن بين طوابع زمنية للملفات ، وإذا لزم الأمر ، فعليك التصرف مثل depmod-a . يقوم هذا الخيار بتحديث ملف التبعية فقط في حالة تغير أي شيء.

-e ، --errsyms

عرض جميع الرموز التي لم تحل لكل وحدة.

-h ، - مساعدة

عرض ملخص للخيارات والخروج على الفور.

- ، -

اكتب ملف التبعية على stdout بدلاً من شجرة / lib / modules .

-q ، -

أخبر [ديممود] أن يحافظ صمت ولا أن يشتكي حول رموز مفقودة.

-r ، -

يقوم بعض المستخدمين بتجميع الوحدات النمطية تحت userid غير الجذر ثم تثبيت الوحدات النمطية كجذر. يمكن أن تترك هذه العملية الوحدات النمطية التي يملكها مستخدم غير الجذر ، على الرغم من أن دليل الوحدات مملوك من قبل الجذر. إذا تم اختراق معرف المستخدم غير الجذر ، يمكن أن يقوم المتطفل بالكتابة فوق الوحدات النمطية الموجودة التي يملكها ذلك userid واستخدام هذا التعريض للتشغيل لأعلى للوصول إلى الجذر.

بشكل افتراضي ، سترفض modutils محاولات لاستخدام وحدة نمطية غير مملوك من قبل الجذر. سيؤدي تحديد -r إلى منع الخطأ وسيسمح للجذر بتحميل الوحدات النمطية غير المملوكة من قبل الجذر.

استخدام -r هو تعرض كبير للأمان ولا ينصح به.

-s ، --syslog

اكتب جميع رسائل الخطأ عبر برنامج syslog daemon بدلاً من stderr.

، - لم يتم حلها - خطأ

لا يحدد depmod 2.4 رمز الإرجاع عند وجود أية رموز لم يتم حلها. سيحدد الإصدار الرئيسي التالي من modutils (2.5) رمز إرجاع الرموز التي لم يتم حلها. تحتاج بعض التوزيعات إلى رمز إرجاع غير صفري في modutils 2.4 ولكن هذا التغيير قد يسبب مشاكل للمستخدمين الذين يتوقعون السلوك القديم. إذا كنت تريد رمز إرجاع غير الصفر في depmod 2.4 ، حدد -u . سوف يتجاهل depmod 2.5 بصمت علامة -U وسيقوم دائمًا بإعطاء رمز إرجاع غير صفري للرموز التي لم يتم حلها.

-v ، - مطول

أظهر اسم كل وحدة أثناء معالجتها.

-V ، - الإصدار

عرض إصدار depmod .

الخيارات التالية مفيدة للأشخاص الذين يقومون بإدارة التوزيعات:

-b أساس دليل ، -basedir القائمة

إذا تم نقل شجرة الدليل / lib / الوحدات النمطية التي تحتوي على أشجار فرعية من الوحدات النمطية في مكان آخر من أجل التعامل مع الوحدات في بيئة مختلفة ، فإن الخيار -b يخبر depmod بمكان العثور على الصورة المتحركة لشجرة / lib / modules . مراجع الملف في ملف الإخراج depmod الذي تم إنشاؤه ، modules.dep ، لن يحتوي على مسار basedirectory . هذا يعني أنه عندما يتم نقل شجرة الملفات مرة أخرى من base / lib / modules إلى / lib / modules في التوزيع النهائي ، ستكون جميع المراجع صحيحة.

-C configfile ، - configfile config

استخدم ملف configfile بدلاً من /etc/modules.conf . يمكن أيضًا استخدام متغير البيئة MODULECONF لتحديد ملف تكوين مختلف من الملف الافتراضي /etc/modules.conf (أو /etc/conf.modules (تم إهماله)).

عندما متغير البيئة

تم تعيين UNAME_MACHINE ، وسيستخدم modutils قيمته بدلاً من حقل الجهاز من syscall uname (). هذا الاستخدام بشكل أساسي عندما تقوم بترجمة وحدات 64 بت في مساحة 32 بت من المستخدم أو العكس ، فقم بتعيين UNAME_MACHINE على نوع الوحدات النمطية التي يتم إنشاؤها. لا يدعم modutils الحالي وضع إنشاء عبر الكامل للوحدات النمطية ، فإنه يقتصر على اختيار بين 32 و 64 بت إصدارات بنية المضيف.

-F kernelsyms ، --filesyms kernelsyms

عند إنشاء ملفات التبعية لنواة مختلفة عن kernel الحالي ، من المهم أن يستخدم depmod مجموعة رموز kernel الصحيحة لحل إشارات kernel في كل وحدة نمطية. يمكن أن تكون هذه الرموز نسخة من System.map من kernel الأخرى أو نسخة من إخراج / proc / ksyms . إذا كانت النواة تستخدم الرموز التي تم إصدارها ، فمن الأفضل استخدام نسخة من إخراج / proc / ksyms ، لأن هذا الملف يحتوي على نسخ الرموز لرموز kernel. ومع ذلك يمكنك استخدام System.map حتى مع رموز versioned.

ترتيب

يمكن تعديل سلوك depmod و modprobe بواسطة ملف التكوين (اختياري) /etc/modules.conf .
انظر modprobe (8) و modules.conf (5) للحصول على وصف كامل.

إستراتيجية

في كل مرة تقوم فيها بتجميع kernel جديد ، سيقوم الأمر " make modules_install " بإنشاء دليل جديد ، ولكن لن يؤدي إلى تغيير الإعداد الافتراضي.

عندما تحصل على وحدة غير مرتبطة بتوزيع النواة ، يجب وضعها في أحد الأدلة المستقلة عن الإصدارات الموجودة تحت / lib / modules .

هذه هي الاستراتيجية الافتراضية ، والتي يمكن تجاوزها في /etc/modules.conf .

أنظر أيضا

lsmod (8) ، ksyms (8)

هام: استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.