DEPMOD(8)

الاسم

depmod - توليد ملفات modules.dep و map.

موجز

depmod [-b basedir] [-m moduledir] [-o outdir] [-e] [-E Module.symvers]
       [-F System.map] [-n] [-v] [-A] [-P prefix] [-w] [version]

depmod [-e] [-E Module.symvers] [-F System.map] [-n] [-v] [-P prefix]
       [-w] [version] [filename...]

الوصف

وحدات نواة لينكس يمكنها تقديم خدمات (تُسمى "رموز") لاستخدامها من قبل وحدات أخرى (باستخدام أحد متغيرات EXPORT_SYMBOL في الشيفرة). إذا استخدمت وحدة ثانية هذا الرمز، فإن تلك الوحدة الثانية تعتمد بوضوح على الوحدة الأولى. يمكن أن تصبح هذه التبعيات معقدة للغاية.

depmod ينشئ قائمة بتبعيات الوحدات بقراءة كل وحدة تحت <BASEDIR>/<MODULEDIR>/version. افتراضياً، <MODULEDIR> هو /lib/modules و <BASEDIR> فارغ. انظر الخيارات أدناه لتجاوز ذلك عند الحاجة. يحدد الرموز التي تصدرها وتحتاجها كل وحدة. تُكتب هذه القائمة إلى modules.dep، ونسخة مهشدة ثنائية باسم modules.dep.bin، في نفس الدليل. إذا أعطيت أسماء ملفات في سطر الأوامر، تُفحص تلك الوحدات فقط (وهو نادراً ما يكون مفيداً إلا إذا أدرجت جميع الوحدات). ينشئ depmod أيضًا قائمة بالرموز المقدمة من الوحدات في الملف المسمى modules.symbols ونسخته المهشدة ثنائياً، modules.symbols.bin. أخيراً، يُخرج depmod ملفاً باسم modules.devname إذا كانت الوحدات توفر أسماء أجهزة خاصة (devname) ينبغي ملؤها في /dev عند الإقلاع (بواسطة أداة مثل systemd-tmpfiles).

إذا قدم version، يُستخدم دليل الوحدات لإصدار النواة ذلك بدلاً من إصدار النواة الحالي (كما يُرجع بواسطة uname -r).

الخيارات

-a، --all
    استقصاء جميع الوحدات. يُفعّل هذا الخيار افتراضياً إذا لم تُعط أسماء ملفات في سطر الأوامر.

-A, --quick
    يفحص هذا الخيار لمعرفة ما إذا كانت أي وحدات أحدث من ملف modules.dep قبل القيام بأي عمل: إذا لم تكن كذلك، يخرج بصمت بدلاً من إعادة توليد الملفات.

-b الدليل_الأساس، --basedir=الدليل_الأساس
    تجاوز الدليل الأساسي <BASEDIR> حيث توجد الوحدات. إذا لم تكن وحداتك حالياً في الدليل (العادي) /lib/modules/version، بل في منطقة تجهيز، يمكنك تحديد basedir يُضاف إلى اسم الدليل. يُزال هذا basedir من ملف modules.dep الناتج، ليكون جاهزاً للنقل إلى الموقع العادي. استخدم هذا الخيار إذا كنت موزع توزيعة تحتاج إلى توليد ملفات البيانات الوصفية مسبقاً بدلاً من تشغيل depmod لاحقًا.

    إذا أعطي مسار نسبي، فهو نسبي إلى دليل العمل الحالي.

    مثال:
        depmod -b /my/build/staging/dir/

    يتوقع هذا جميع ملفات الإدخال تحت /my/build/staging/dir/lib/modules/$(uname -r) ويولد ملفات الفهرس تحت نفس الدليل.

-m moduledir, --moduledir=moduledir
    تجاوز دليل الوحدات <MODULEDIR>، الذي يكون افتراضياً البادئة /lib/modules المحددة وقت البناء. هذا مفيد عند بناء ملف modules.dep في basedir لنظام يستخدم بادئة مختلفة، مثلاً /usr/lib/modules مقابل /lib/modules.

    تُقبل المسارات النسبية والمطلقة، لكنها دائماً نسبية إلى basedir.

    أمثلة:
        depmod -b /tmp/build -m /kernel-modules
        depmod -b /tmp/build -m kernel-modules

    يتوقع هذا وجود جميع ملفات الإدخال تحت /tmp/build/kernel-modules/$(uname -r) ويُولد ملفات الفهرس تحت نفس الدليل.

    بدون وسيط -b مرافق، يكون دليل الوحدات نسبيًا إلى /. مثال:

        depmod -m foo/bar

    يتوقع هذا وجود جميع ملفات الإدخال تحت /foo/bar/$(uname -r) ويُولد ملفات الفهرس تحت نفس الدليل. ما لم يكن libkmod مستعدًا لمعالجة ذلك الموقع الاعتباطي، فلن يعمل في زمن التشغيل.

-o outdir, --outdir=outdir
    يُعيّن دليل الإخراج حيث سيخزن depmod أي ملف مُولد. يعمل outdir كجذر لذلك الموقع، مشابهًا لكيفية استخدام basedir. كما أن هذا الإعداد له الأولوية وإذا استُخدم مع basedir فسينتج عن ذلك كون الإدخال هو ذلك الدليل، لكن الإخراج هو المُعيّن بواسطة outdir.

    إذا أعطي مسار نسبي، فهو نسبي إلى دليل العمل الحالي.

    مثال:
        depmod -o /my/build/staging/dir/

    يتوقع هذا وجود جميع ملفات الإدخال تحت /lib/modules/$(uname -r) ويُولد ملفات الفهرس تحت /my/build/staging/dir/lib/modules/$(uname -r).

-C file or directory, --config=file or directory
    يتجاوز هذا الخيار ملفات الضبط المبدئية. انظر depmod.d(5).

-e, --errsyms
    عند دمجه مع خيار -F، يُبلغ هذا عن أي رموز تحتاجها وحدة ولا تُوفرها وحدات أخرى أو النواة. عادةً، يُفترض أن أي رموز لا توفرها الوحدات تُوفرها النواة (والذي يجب أن يكون صحيحًا في عالم مثالي)، لكن هذا الافتراض قد ينهار خاصةً عندما لا تُثبت برامج تشغيل الطرف الثالث المُحدّثة بشكل صحيح أو بُنيت بشكل غير صحيح.

-E Module.symvers, --symvers=Module.symvers
    عند دمجه مع خيار -e، يُبلغ هذا عن أي إصدارات رموز توفرها الوحدات ولا تتطابق مع إصدارات الرموز التي توفرها النواة في Module.symvers الخاص بها. هذا الخيار غير متوافق تبادليًا مع -F.

-F System.map, --filesyms=System.map
    عند تزويده بـ System.map المُنتج عند بناء النواة، يسمح هذا لخيار -e بالإبلاغ عن الرموز غير المحلولة. هذا الخيار غير متوافق تبادليًا مع -E.

-h، --help
    اطبع رسالة المساعدة ثم اخرج.

-n, --show, --dry-run
    يُرسل هذا ملف modules.dep الناتج وملفات الخريطة المختلفة إلى الإخراج المعياري بدلاً من كتابتها في دليل الوحدات.

-P
    تُسبق بعض البنى الرموز بحرف خارجي. يُحدد هذا حرف بادئة (مثال '_') لتجاهله.

-v، --verbose
    في وضع الإسهاب، سيطبع depmod (إلى المخرج القياسي) جميع الرموز التي يعتمد عليها كل وحدة واسم ملف الوحدة الذي يوفر ذلك الرمز.

-V، --version
    أظهر إصدار البرنامج واخرج. انظر أدناه للتحذيرات عند التشغيل على أنوية قديمة.

-w
    حذر من التبعيات المكررة، والأسماء المستعارة، وإصدارات الرموز، إلخ.

حقوق النسخ

صفحة الدليل هذه حقوق نشرها أصلاً 2002، Rusty Russell، شركة IBM. أجزاء حقوق نشرها Jon Masters وآخرون.

انظر أيضًا

depmod.d(5)، modprobe(8)، modules.dep(5)

العلل

يرجى توجيه أي بلاغات عن الأخطاء إلى متتبع مشكلات kmod في https://github.com/kmod-project/kmod/issues/ مع ذكر الإصدار المستخدم، وخطوات إعادة إنتاج المشكلة والنتيجة المتوقعة.

المؤلفون

وردت مساهمات عديدة من القائمة البريدية linux-modules <linux-modules@vger.kernel.org> وجيت هاب. إذا كان لديك نسخة من kmod.git نفسه، فإن مخرجات git-shortlog(1) و git-blame(1) يمكنها إطلاعك على المؤلفين لأجزاء محددة من المشروع.

Lucas De Marchi <lucas.de.marchi@gmail.com> هو المصون الحالي للمشروع.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.