در این مطلب از آریانت به سراغ نحوه استفاده از فرمان modprobe در لینوکس رفتهایم. هسته لینوکس دارای یک ساختار ماژولار و انعطافپذیر است. همین ویژگی باعث میشود که کارآییهای آن با کمک ماژولها یا درایورها افزایش یابد. فرمان modprobe ابزاری است که میتوان با آن ماژولهای لینوکس را اضافه و یا کم کرد. این فرمان عملکرد هوشمندانهای دارد و میتواند هر ماژول مستقلی را به صورت اتوماتیک و هوشمند اضافه کند.
هسته لینوکس از modprobe برای درخواست ماژولها استفاده میکند. فرمان modprobe در میان دایرکتوریهای نصب ماژولهای استاندارد جستجو کرده و درایورهای موردنیاز در این خصوص را پیدا میکند.
در ادامه، نحوه استفاده از modprobe برای اضافه یا حذف ماژولهای هسته لینوکس را بررسی میکنیم. با ما همراه باشید.
پیشنیازها
- یک سیستم در حال اجرای لینوکس
- دسترسی به خط فرمان یا ترمینال
- حساب کاربری با مجوز sudo یا روت
تعریف قالب فرمان modprobe
تمام فرمانهای modprobe نیازمند دسترسی sudo هستند. قالب کلی برای استفاده از modprobe از قرار زیر است:
sudo modprobe <options> <module name>
فرمان modprobe به صورت پیشفرض تنها یک ماژول اضافه میکند. در صورتی که قصد اضافهکردن ماژولهای چندگانه را دارید میتوانید از گزینه -a یا -all استفاده کنید.
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) لیست میشوند. با کمک فرمان زیر میتوانید تمام ماژولهای در دسترسی برای نسخه کنونی هسته لینوکس را پیدا کنید.
find /lib/modules/$(uname -r) -type f -name ’*.ko*’ | more
نکته: حتماً نسخههای قدیمیتر هسته را از نصب خارج کنید.
اضافهکردن ماژولهای هسته با کمک فرمان modprobe
۱) اضافهکردن یک ماژول با فرمان modprobe
sudo modprobe <module name>
به عنوان نمونه:
sudo modprobe torture
۲) تأیید ماژول بارگذاریشده.
sudo modprobe <module name> --first-time
در خروجی یک پیغام خطا مشاهده میکنید که نشان از نصب قبلی ماژول در هسته دارد.
به جای آن، میتوانید ماژول را در لیست ماژولهای فعال با کمک lsmod جستجو کنید.
lsmod | grep <module name>
به عنوان مثال:
lsmod | grep torture
حذف ماژولهای هسته با فرمان modprobe
۱) حذف یک ماژول با استفاده از فرمان modprobe -r
sudo modprobe -r <module name>
به عنوان مثال:
sudo modprobe -r torture
۲) تأیید حذف ماژول با تایپ فرمان زیر:
sudo modprobe -r <module name> --first-time
در اینجا، با پیغام خطایی مبنی بر عدم وجود ماژول در هسته روبرو میشوید.
همچنین میتوانید، لیست ماژولهای فعال را نیز بررسی کنید.
lsmod | grep <module name>
در نتیجه، ماژول حذفشده در لیست بارگذاریشده نخواهد بود.
جمعبندی
هسته لینوکس به گونهای ساخته شده که انعطافپذیر و بهراحتی قابلگسترش باشد. برای پرهیز از بروز مشکل با هسته لینوکس، حتماً باید ماژولهای موردنیاز خود را جستجو و سپس اضافه کنید. امیدواریم که این مطلب نیز موردتوجه شما قرار گرفته باشد.