Depmod - فرمان لینوکس - فرمان یونیکس

نام

depmod - توصیف وابستگی برای ماژول های بارگذاری هسته

خلاصه داستان

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [ -f kernelsyms ] [-b راهنمای مبتنی بر ] [ forced_version ]
depmod [-enqrsuv] [ -f kernelsyms ] module1.o module2.o ...

شرح

سرویس دهی depmod و modprobe در نظر گرفته شده تا یک هسته مدولار لینوکس را برای همه کاربران، مدیران و نگهبانان توزیع قابل کنترل باشد.

Depmod یک فایل وابستگی مانند Makefile ایجاد می کند که براساس نمادهای موجود در مجموعه ای از ماژول هایی که در خط فرمان یا دایرکتوری ها مشخص شده در فایل پیکربندی ذکر شده است. این فایل وابستگی بعدها توسط Modprobe برای بارگیری ماژول درست یا پشته از ماژول ها استفاده می شود.

استفاده عادی از depmod این است که شامل خط باشد


/ sbin / depmod -a

جایی در فایل rc در /etc/rc.d ، به طوری که وابستگی های ماژول درست بلافاصله پس از بوت شدن سیستم قابل دسترسی خواهد بود. توجه داشته باشید که گزینه -a در حال حاضر اختیاری است. برای اهداف بوت شدن، گزینه -q ممکن است مناسب تر باشد، زیرا این امر باعث خاموش کردن نمادها در مورد حل نشده می شود.

همچنین می توانید فایل وابستگی را بلافاصله بعد از کامپایل یک هسته جدید ایجاد کنید. اگر شما اولین کامپایلر کرنل 2.2.99 و ماژول های آن را " depmod -a 2.2.99 " در حالی که هنوز 2.2.98 اجرا می شود، فایل را در جای درست ایجاد می کنید. با این حال، در این مورد، وابستگی ها در هسته تضمین نمی شود که درست باشد. برای اطلاعات بیشتر در مورد دستکاری این گزینهها -F ، -C و -b را ببینید.

درحالیکه ارتباط بین ماژول ها و نمادهای صادر شده توسط ماژول های دیگر ایجاد می شود، depmod وضعیت GPL ماژول ها یا نمادهای صادر شده را در نظر نمی گیرد. به این معنی، depmod اگر یک ماژول بدون مجوز سازگار با GPL به یک نماد تنها GPL (EXPORT_SYMBOL_GPL در هسته) اشاره کند، یک خطا را پر نمی کند. با این حال insmod از تصحیح GPL تنها نمادهای برای ماژول های غیر GPL رد خواهد کرد، بنابراین بار واقعی شکست خواهد خورد.

گزینه ها

، - تمام

جستجو برای ماژول ها در تمام دایرکتوری ها مشخص شده در فایل پیکربندی (اختیاری) / etc / modules.conf .

-A ، - سریع

فایل های timestamps را مقایسه کنید و در صورت لزوم مانند depmod -a عمل کنید . این گزینه فقط فایل وابستگی را به روز رسانی می کند، اگر چیزی تغییر کرده است.

-e ، --errsyms

نمایش تمام نمادهای حل نشده برای هر ماژول.

-h ، --help

نمایش خلاصه ای از گزینه ها و بلافاصله خروج.

-n ، --show

به جای درخت / lib / modules، فایل وابستگی را روی stdout بنویسید.

-q ، - مسخره

فرماندار را به خاطر بسپارید و از نمادهای گمشده شکایت نکنید.

-r ، - ریشه

بعضی از کاربران ماژول ها را تحت یک userid غیر ریشه کامپایل می کنند و سپس ماژول ها را به عنوان ریشه نصب می کنند. این فرایند می تواند ماژول هایی را که توسط کاربر غیر root وجود داشته باشد را ترک کند، حتی اگر دایرکتوری ماژول ها توسط root باشد. اگر کاربر غیر ریشه به خطر بیافتد، یک نفوذگر میتواند ماژولهای موجود متعلق به آن userid را بازنویسی کند و از این قرار گرفتن در معرض بوت استرپ تا دسترسی ریشه استفاده کند.

به طور پیش فرض، modutils تلاش برای استفاده از یک ماژول که توسط ریشه متعلق به آن نیست، رد خواهد شد. مشخص کردن -r خطا را خنثی می کند و اجازه می دهد که ریشه ها برای بارگیری ماژول هایی که متعلق به ریشه نیستند را بارگیری کنیم.

استفاده از -r یک پوشش مهم امنیتی است و توصیه نمی شود.

-s ، --syslog

تمام پیام های خطا را از طریق daemon syslog بجای stderr بنویسید.

-u ، - unresolved-error

depmod 2.4 یک کد بازگشتی را تنظیم نمی کند زمانی که نمادهای حل نشده وجود دارد. نسخه بعدی modutils (2.5) یک کد بازگشتی برای نمادهای حل نشده را تنظیم می کند. بعضی توزیعها یک کد بازگشتی غیر صفر در modutils 2.4 می خواهند اما این تغییر ممکن است برای کاربرانی که انتظار رفتار قدیمی را دارند، مشکل ساز شود. اگر شما کد بازگشتی غیر صفر را در depmod 2.4 می خواهید، مشخص کنید -u . depmod 2.5 به طور لحظه ای پرچم -u را نادیده می گیرد و همیشه یک کد بازگشتی غیر صفر برای نمادهای حل نشده ارائه می دهد.

-v ، - verbose

نام هر یک از ماژول را به عنوان پردازش نشان دهید.

-V ، --version

نمایش نسخه از depmod را نشان می دهد .

گزینه های زیر برای افرادی که مدیریت توزیع ها هستند مفید است:

-b راهنمای مبتنی بر ، - بر اساس پایگاه داده

اگر شاخه درخت / lib / ماژول های حاوی زیر درخت های ماژول در جایی دیگر جای داده شود تا ماژول ها را برای محیط های مختلف اداره کند، گزینه -b depmod را برای پیدا کردن تصویر متحرک از درخت / lib / modules می نویسد. مراجع فایل در فایل خروجی depmod که ساخته شده است، modules.dep ، مسیر مسیر مبتنی بر آن را ندارد. این به این معنی است که هنگامی که درخت فایل به قسمت / lib / modules backited / lib / modules در توزیع نهایی بازگردانده می شود، تمام مراجع درست می شوند.

-C configfile ، --config configfile

از فایل configfile به جای /etc/modules.conf استفاده کنید . متغیر محیطی MODULECONF همچنین می تواند برای انتخاب یک فایل پیکربندی متفاوتی از default / etc / modules.conf (یا /etc/conf.modules (غیرقابل استفاده) استفاده شود).

وقتی متغیر محیطی

UNAME_MACHINE تنظیم شده است، modutils از مقدار آن به جای فیلد machine از uname () syscall استفاده می کند. این عمدتا از زمانی استفاده می شود که ماژول های 64 بیتی را در فضای 32 بیتی کاربر بکار می گیریم یا برعکس، UNAME_MACHINE را به نوع ماژول هایی که ساخته می شوند تنظیم می کنیم. Modutils فعلی از حالت کامل ساخت متقابل برای ماژول پشتیبانی نمی کند، بلکه محدود به انتخاب 32 تا 64 بیت نسخه معماری میزبان است.

-f kernelsyms ، - kernelsyms فایل ها

هنگام ساخت فایل های وابستگی برای یک هسته متفاوت از هسته در حال حاضر، مهم است که depmod از مجموعه صحیح نمادهای هسته برای حل و فصل مرجع های هسته در هر یک از ماژول استفاده می کند. این نمادها می توانند یک کپی از System.map از هسته دیگر یا یک نسخه از خروجی از / proc / ksyms باشند . اگر هسته شما از symbols versed استفاده کند بهتر است از یک کپی از خروجی / proc / ksyms استفاده کنید، زیرا این فایل حاوی نسخه نماد نمادهای هسته است. با این حال شما می توانید System.map را حتی با استفاده از نمادهای نسخه ای استفاده کنید.

پیکربندی

رفتار depmod و modprobe را می توان با پرونده پیکربندی / optional / etc / modules.conf تنظیم کرد.
برای توضیحات کامل به modprobe (8) و modules.conf (5) مراجعه کنید.

استراتژی

هر بار که یک هسته جدید کامپایل می کنید، دستور " make modules_install " یک پوشه جدید ایجاد می کند، اما پیش فرض آن را تغییر نمی دهد.

هنگامی که شما یک ماژول غیر مرتبط با توزیع هسته دارید، باید آن را در یکی از فهرستهای مستقل نسخه تحت زیر / lib / modules قرار دهید .

این استراتژی پیش فرض است که می تواند در /etc/modules.conf لغو شود.

همچنین مشاهده کنید

lsmod (8)، ksyms (8)

مهم: از دستور man ( ٪ man ) برای دیدن نحوه استفاده از دستور در رایانه خاص خود استفاده کنید.