بلاگ/کاربرد فرمان modprobe برای مدیریت ماژول‌های هسته لینوکس
به‌روز شده

کاربرد فرمان modprobe برای مدیریت ماژول‌های هسته لینوکس

در این مطلب از آریانت به سراغ نحوه استفاده از فرمان modprobe در لینوکس رفته‌ایم. هسته لینوکس دارای یک ساختار ماژولار و انعطاف‌پذیر است. همین ویژگی باعث می‌شود که کارآیی‌های آن با کمک ماژول‌ها یا درایورها افزایش یابد. فرمان modprobe ابزاری است که می‌توان با آن ماژول‌های لینوکس را اضافه و یا کم کرد....

1399/12/215172 بازدید
کاربرد فرمان modprobe برای مدیریت ماژول‌های هسته لینوکس
در این مطلب از آریانت به سراغ نحوه استفاده از فرمان modprobe در لینوکس رفته‌ایم. هسته لینوکس دارای یک ساختار ماژولار و انعطاف‌پذیر است. همین ویژگی باعث می‌شود که کارآیی‌های آن با کمک ماژول‌ها یا درایورها افزایش یابد. فرمان modprobe ابزاری است که می‌توان با آن ماژول‌های لینوکس را اضافه و یا کم کرد. این فرمان عملکرد هوشمندانه‌ای دارد و می‌تواند هر ماژول مستقلی را به صورت اتوماتیک و هوشمند اضافه کند. هسته لینوکس از modprobe برای درخواست ماژول‌ها استفاده می‌کند. فرمان modprobe در میان دایرکتوری‌های نصب ماژول‌های استاندارد جستجو کرده و درایورهای موردنیاز در این خصوص را پیدا می‌کند. در ادامه، نحوه استفاده از modprobe برای اضافه یا حذف ماژول‌های هسته لینوکس را بررسی می‌کنیم. با ما همراه باشید.

پیش‌نیازها

  • یک سیستم در حال اجرای لینوکس
  • دسترسی به خط فرمان یا ترمینال
  • حساب کاربری با مجوز‌ sudo یا روت

تعریف قالب فرمان modprobe

تمام فرمان‌های modprobe نیازمند دسترسی sudo هستند. قالب کلی برای استفاده از modprobe از قرار زیر است:
php
sudo modprobe <options> <module name>
فرمان modprobe به صورت پیش‌فرض تنها یک ماژول اضافه می‌کند. در صورتی که قصد اضافه‌کردن ماژول‌های چندگانه را دارید می‌توانید از گزینه -a یا -all استفاده کنید.
php
sudo modprobe <options> -a <first module name> <second module name>

گزینه‌های فرمان modprobe

گزینه‌های این فرمان بر اساس نوع استفاده از آنها به چند دسته تقسیم می‌شوند.

گزینه‌های مدیریتی

گزینه‌های مدیریتی در هنگام وارد کردن یا برداشتن ماژول‌ها با فرمان modprobe امکان کنترل شرایط مختلف را فراهم می‌کنند.
گزینه‌های مدیریتی
--all  -aامکان فعال‌سازی ماژول‌های چندگانه برای ورود یا حذف همزمان
--remove -rحذف یک ماژول. کاربردی برای حذف ماژول‌های معیوب
--resolve-alias -Rجستجو و چاب تمام ماژول‌هایی که مطابق با یک عنوان خاص هستند.
--first-timeچاپ خطا برای ماژول‌هایی که به تازگی وارد یا برداشته شده‌اند.
--ignore-install --ignore-remove -iنادیده گرفتن فرمان‌های نصب یا حذف نوشته‌شده در ماژول در هنگام وارد کردن یا برداشتن یک ماژول
--use-blacklist -bوارد کردن به لیست سیاه. ماژول‌هایی که در این لیست وارد می‌شوند، به صورت خودکار بارگذاری نخواهند شد.
--force -fاجبار به ورود یا حذف یک ماژول در هنگام بروز خطای نسخه ماژول. همین موضوع برای گزینه‌های --force-modversion و --force-vermagic نیز صدق می‌کند. با احتیاط از آن استفاده کنید.
--force-modversionنادیده‌گرفتن نسخه ماژول در هنگام ورود یا حذف.
--force-vermagicنادیده‌گرفتن ورژن مجیک در هنگام ورود یا حذف.

گزینه‌های کوئری

گزینه‌های کوئری برای فرمان modprobe اطلاعاتی در مورد تنظیمات و متعلقات ارائه می‌دهند.
گزینه‌های کوئری
--show-depends -Dتهیه لیست لیست به همراه فایل‌های متعلق به آنها (در صورت وجود). متعلقات نصب‌شده با یک ماژول معمولاً با پسوند “install” همراه هستند.
--showconfig  --show-config -cچاپ تنظیمات کنونی و خروج.
--show-modversions --dump-modversionsنمایش اطلاعات مربوط به نسخه ماژول

گزینه‌های کلی

گزینه‌های کلی باعث تنظیمات در خروجی فرمان modprobe، موقعیت ماژول و نسخه‌های آن می‌شوند.
گزینه‌های کلی‍
--dry-run   --show    -nعدم ورود یا حذف و در عین حال چاپ خروجی
--config=<file name>     -Cهم‌پوشانی تنظیمات پیش‌فرض (/etc/modprobe.d) با <file name>
--dirname=<directory>   -dاستفاده از <directory> به عنوان ریشه فایل‌سیستم برای ماژول‌های /lib/
--set-version=<version>  -Sاستفاده از نسخه خاص هسته به جای uname
--syslog -sچاپ پیغام‌های خطا در قالب syslog به جای خطای استاندارد stderr. وقتی stderr در دسترس نباشد، خطاها به صورت خودکار در syslog چاپ می‌شوند.
--quiet -qعدم‌نمایش پیغام‌های خطا
--verbose -vفعال‌کردن نمایش تعداد بیشتری از پیغام‌ها. modprobe تنها پیغام‌های حاکی از بروز یک مشکل را نشان می‌دهد.
--version -Vنمایش نسخه modprobe
--help -hنمایش پیغام‌های راهنما با تمام فرمان‌های لیست‌شده.
 

مثال‌های از کاربرد فرمان modprobe

به صورت پیش‌فرض، تمام ماژول‌های هسته در دایرکتوری سیستم /lib/modules در فایل‌های .ko (kernel object) لیست می‌شوند. با کمک فرمان زیر می‌توانید تمام ماژول‌های در دسترسی برای نسخه کنونی هسته لینوکس را پیدا کنید.
php
find /lib/modules/$(uname -r) -type f -name ’*.ko*’ | more
خروجی فرمان find در پیدا کردن ماژول‌های در دسترس
خروجی فرمان find در پیدا کردن ماژول‌های در دسترس
نکته: حتماً نسخه‌های قدیمی‌تر هسته را از نصب خارج کنید.

اضافه‌کردن ماژول‌های هسته با کمک فرمان modprobe

۱) اضافه‌کردن یک ماژول با فرمان modprobe
php
sudo modprobe <module name>
به عنوان نمونه:
php
sudo modprobe torture
افزودن یک ماژول با استفاده از فرمان modprobe در ترمینال
افزودن یک ماژول با استفاده از فرمان modprobe در ترمینال
۲) تأیید ماژول بارگذاری‌شده.
php
sudo modprobe <module name> --first-time
در خروجی یک پیغام خطا مشاهده می‌کنید که نشان از نصب قبلی ماژول در هسته دارد.
خروجی ترمینال اضافه‌کردن ماژول با modprobe با خطای --first-time
خروجی ترمینال اضافه‌کردن ماژول با modprobe با خطای --first-time
به جای آن، می‌توانید ماژول را در لیست ماژول‌های فعال با کمک lsmod جستجو کنید.
php
lsmod | grep <module name>
به عنوان مثال:
php
lsmod | grep torture
خروجی ترمینال lsmod و grep ماژول
خروجی ترمینال lsmod و grep ماژول

حذف ماژول‌های هسته با فرمان modprobe

۱) حذف یک ماژول با استفاده از فرمان modprobe -r
php
sudo modprobe -r <module name>
به عنوان مثال:
php
sudo modprobe -r torture
۲) تأیید حذف ماژول با تایپ فرمان زیر:
php
sudo modprobe -r <module name> --first-time
در اینجا، با پیغام خطایی مبنی بر عدم وجود ماژول در هسته روبرو می‌شوید.
خروجی حذف ماژول با  فرمان modprobe -r --first-time
خروجی حذف ماژول با  فرمان modprobe -r --first-time
همچنین می‌توانید، لیست ماژول‌های فعال را نیز بررسی کنید.
php
lsmod | grep <module name>
در نتیجه، ماژول حذف‌شده در لیست بارگذاری‌شده نخواهد بود.

جمع‌بندی

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