| MODPROBE.D(5) | modprobe.d | MODPROBE.D(5) |
نام (NAME)
modprobe.d - دایرکتوری پیکربندی برای modprobe
خلاصه دستور (SYNOPSIS)
/etc/modprobe.d/*.conf
/run/modprobe.d/*.conf
/usr/local/lib/modprobe.d/*.conf
/usr/lib/modprobe.d/*.conf
/lib/modprobe.d/*.conf
توضیحات (DESCRIPTION)
از آنجا که دستور modprobe میتواند به دلیل وابستگیهای میان ماژولها بیش از یک ماژول را اضافه یا حذف کند، ما نیازمند روشی برای مشخص کردن گزینههایی هستیم که باید با این ماژولها استفاده شوند. همچنین میتوان از آنها برای ایجاد نامهای مستعار (alias) مناسب استفاده کرد: نامهای جایگزین برای یک ماژول، یا اینکه میتوانند رفتار عادی modprobe را برای مواردی با نیازهای ویژه (مانند درج بیش از یک ماژول) بهطور کلی بازنویسی (override) کنند.
توجه داشته باشید که نامهای ماژول و نامهای مستعار (مانند دیگر نامهای ماژول) میتوانند شامل - یا _ باشند: هر دو در تمامی دستورات ماژول قابل تعویض با یکدیگر هستند، زیرا تبدیل به زیرخط (underscore) بهطور خودکار انجام میشود.
قالب پیکربندی (CONFIGURATION FORMAT)
فایلهای پیکربندی در هر سطر شامل یک دستور هستند؛ خطوط خالی و خطوطی که با '#' آغاز میشوند نادیده گرفته خواهند شد (مفید برای افزودن یادداشتها). یک '\' در انتهای یک سطر، باعث ادامه یافتن آن در سطر بعدی میشود که ساختار فایلها را مرتبتر میسازد.
برای اطلاعات بیشتر، بخش دستورات (COMMANDS) را در ادامه ببینید.
دایرکتوریهای پیکربندی و اولویت (CONFIGURATION DIRECTORIES AND PRECEDENCE)
فایلهای پیکربندی از دایرکتوریهای ذکرشده در بخش خلاصه دستور و با همان اولویت خوانده میشوند. هنگامی که فایلی با یک نام مشخص بارگذاری شد، هر فایلی با همان نام در دایرکتوریهای بعدی نادیده گرفته میشود.
تمامی فایلهای پیکربندی صرفنظر از دایرکتوری محل قرارگیریشان، به ترتیب الفبایی (lexicographic) مرتب میشوند. فایلهای پیکربندی میتوانند بهطور کامل جایگزین شوند (با قرار دادن یک فایل پیکربندی جدید با همان نام در دایرکتوری با اولویت بالاتر) یا بهصورت جزئی جایگزین شوند (با داشتن یک فایل پیکربندی که در ترتیب نامگذاری دیرتر قرار میگیرد).
نکته: دایرکتوریهای پیکربندی را میتوان از طریق متغیر محیطی MODPROBE_OPTIONS تغییر داد. بخش محیط (ENVIRONMENT) در modprobe(8) را ببینید.
دستورات (COMMANDS)
alias wildcard modulename
توجه داشته باشید که ماژولها میتوانند شامل نامهای مستعار مختص خود نیز باشند که میتوانید با استفاده از modinfo آنها را مشاهده کنید. از این نامهای مستعار به عنوان آخرین چاره استفاده میشود (یعنی در صورتی که هیچ ماژول واقعی، یا دستور install، remove یا alias در پیکربندی وجود نداشته باشد).
blacklist modulename
install modulename command...
آینده بلندمدت این دستور بهعنوان راهکاری برای حل مشکل ارائه وابستگیهای اضافی ماژول تضمینشده نیست و هدف بر این است که در نسخهای در آینده، هشداری مبنی بر حذف نهایی یا منسوخ شدن جایگزین این دستور شود. استفاده از آن، تعیین خودکار وابستگیهای ماژول توسط ابزارهای توزیع مانند mkinitrd را پیچیده میکند (چرا که این ابزارها اکنون باید به نحوی تفسیر کنند که دستورات install ممکن است چه کاری انجام دهند). در یک شرایط ایدهآل، ماژولها تمامی اطلاعات وابستگی را بدون نیاز به استفاده از این دستور ارائه میکردند و کار بر روی پیادهسازی پشتیبانی از وابستگیهای نرم در هسته لینوکس در جریان است.
اگر از رشته "$CMDLINE_OPTS" در دستور استفاده کنید، با هر گزینهای که در خط فرمان modprobe مشخص شده باشد جایگزین خواهد شد. این موضوع میتواند سودمند باشد زیرا کاربران انتظار دارند دستور "modprobe fred opt=1" آرگومان "opt=1" را به ماژول ارسال کند، حتی اگر یک دستور install در فایل پیکربندی وجود داشته باشد. بدین ترتیب مثال بالا تبدیل میشود به: "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS"
options modulename option...
تمامی گزینهها با یکدیگر ترکیب میشوند: آنها میتوانند از یک option برای خود ماژول، برای یک نام مستعار و یا از خط فرمان بیایند.
remove modulename command...
softdep modulename pre: modules... post: modules...
ماژولهای pre-deps و post-deps فهرستی از نامها و/یا نامهای مستعار دیگر ماژولها هستند که modprobe تلاش میکند آنها را به ترتیب پیش و پس از ماژول اصلی دادهشده در آرگومان modulename نصب (یا حذف) کند.
مثال: فرض کنید دستور "softdep c pre: a b post: d e" در پیکربندی داده شده باشد. اجرای "modprobe c" اکنون معادل "modprobe a b c d e" بدون وجود softdep است. پرچمهایی مانند --use-blacklist برای تمامی ماژولهای مشخصشده اعمال میشوند، در حالی که پارامترهای ماژول فقط بر روی ماژول c اعمال میشوند.
نکته: در صورتی که دستورات install یا remove با آرگومان modulename یکسان وجود داشته باشند، softdep اولویت خواهد داشت.
weakdep modulename modules...
مثال: فرض کنید دستور "weakdep c a b" داده شده است. برنامهای که یک initramfs ایجاد میکند میداند که باید a، b و c را به فایلسیستم اضافه کند زیرا ممکن است در زمان اجرا به a و b نیاز باشد. هنگامی که c بارگذاری شده و در حال کاوش است، ممکن است فراخوانیهایی به ()request_module ارسال کند که باعث میشود a یا b نیز بارگذاری شوند.
سازگاری (COMPATIBILITY)
نسخههای آینده kmod با هشداری قوی مبنی بر اجتناب از استفاده از install (همانگونه که در بالا توضیح داده شد) ارائه خواهند شد. این امر زمانی رخ میدهد که پشتیبانی از وابستگیهای نرم در هسته کامل شود. آن پشتیبانی با ارائه چنین وابستگیهایی بهطور مستقیم درون خود ماژولها، مکمل پشتیبانی موجود از softdep در این ابزار خواهد بود.
کپیرایت (COPYRIGHT)
حق نشر (کپیرایت) این صفحه راهنما در اصل متعلق به 2004, Rusty Russell, IBM Corporation. است.
همچنین ببینید (SEE ALSO)
گزارش باگها (REPORTING BUGS)
لطفاً هرگونه گزارش باگ را به سامانه ردیابی اشکالات kmod در https://github.com/kmod-project/kmod/issues همراه با نسخه استفادهشده، مراحل بازتولید مشکل و نتیجه مورد انتظار ارسال نمایید.
نویسندگان (AUTHORS)
مشارکتهای بیشماری از فهرست پستی linux-modules <linux-modules@vger.kernel.org> و گیتهاب صورت گرفته است. چنانچه کلونی از مخزن kmod.git در اختیار دارید، خروجی git-shortlog(1) و git-blame(1) میتواند نویسندگان بخشهای خاصی از پروژه را به شما نشان دهد.
Lucas De Marchi <lucas.de.marchi@gmail.com> نگهدارنده فعلی این پروژه است.
| 2025-03-28 | kmod |