Scroll to navigation

DEPMOD(8) depmod 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 قائمة بتبعيات الوحدات بقراءة كل وحدة تحت <المجلد_الأساسي>/<مجلد_الوحدات>/الإصدار. مبدئيًا، <مجلد_الوحدات> هو /usr/lib/modules و<المجلد_الأساسي> فارغ. انظر الخيارات أدناه لتجاوز ذلك عند الحاجة. يحدد الرموز التي تصدرها وتحتاجها كل وحدة. تُكتب هذه القائمة إلى 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=الدليل_الأساس

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

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

مثال:

depmod -b /my/build/staging/dir/

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

-m moduledir, --moduledir=moduledir

تجاوز مجلد الوحدات <مجلد_الوحدات>، والذي يكون مبدئيًا بادئة /usr/lib/modules المحددة وقت البناء. هذا مفيد عند بناء ملف modules.dep في المجلد_الأساسي لنظام يستخدم بادئة مختلفة، مثل /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/

يتوقع هذا جميع ملفات الإدخال تحت /usr/lib/modules/$(uname -r) ويولد ملفات الفهرس تحت /my/build/staging/dir/usr/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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

28 أغسطس 2025 kmod