هسته لینوکس، یک عنصر اصلی سیستم عامل لینوکس است که منابع سیستم را مدیریت می‌کند و پلی بین سخت افزار و نرم افزار کامپیوتر شما است.

 

هسته لینوکس، یک طراحی ماژولار دارد. یک ماژول kernel (اغلب به عنوان یک درایور شناخته می‌شود)، قطعه کدی است که عملکرد هسته را گسترش می‌دهد. ماژول‌ها یا به صورت ماژول‌های قابل بارگذاری کامپایل می‌شوند یا در هسته ساخته می‌شوند. ماژول‌های قابل بارگیری را می‌توان در صورت درخواست، بدون نیاز به راه‌اندازی مجدد سیستم، در هسته در حال اجرا بارگیری و تخلیه کرد.

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

شما می‌توانید یک ماژول را به صورت دستی با استفاده از دستور modprobe یا به طور خودکار در زمان بوت با استفاده از /etc/modules یا /etc/modules-load.d/*.conf در هسته بارگذاری کنید.

در این مقاله، نحوه استفاده از modprobe به منظور افزودن و حذف ماژول‌ها در kernel لینوکس شرح داده شده است.

modprobe بخشی از kmod است، یک باینری که چندین برنامه را برای مدیریت ماژول‌های هسته لینوکس پیاده‌سازی می‌کند.

 

افزودن ماژول‌های هسته

ماژول‌های هسته لینوکس در پوشه /lib/modules/<kernel_version> ذخیره می‌شوند. با استفاده از دستور uname -r شما می‌توانید نسخه kernel در حال اجرا را پیدا کنید.

دقت کنید که تنها کاربرانی که دارای امتیاز مدیریت هستند، می‌توانند ماژول‌های هسته را مدیریت نمایند.

برای بارگذاری یک ماژول، دستور modprobe و سپس نام ماژول را به صورت زیر استفاده کنید:

modprobe module_name

دستور modprobe ماژول داده شده و هر وابستگی ماژول اضافی را بارگذاری می‌کند. دقت کنید که تنها یک ماژول را می‌توان در خط فرمان مشخص کرد.

از دستور lsmod می‌توانید به منظور تایید بارگیری ماژول استفاده نمایید:

lsmod | grep module_name

 

این مطلب نیز ممکن است برای شما مفید باشد: رفع خطای "Kernel driver not installed (rc=-1908)" در اوبونتو

 

برای بارگذاری یک ماژول با پارامترهای اضافی، از دستور parameter=value استفاده کنید:

modprobe module_name parameter=value

این دستور، چندین جفت parameter=value را می‌پذیرد که با فاصله از هم جدا شده‌اند.

به طور کلی، شما باید ماژول را در هنگام بوت شدن سیستم بارگیری نمایید. شما می‌توانید این کار را با مشخص کردن ماژول و پارامترهای آن در فایلی در داخل پوشه /etc/modules-load.d انجام دهید. دقت کنید که این فایل‌ها باید به .conf ختم شوند ولی می‌توانند هر نامی داشته باشند:

                       /etc/modules-load.d/module_name.conf
option module_name parameter=value

تنظیمات مشخص شده در این فایل‌ها توسط udev خوانده می‌شود که ماژول‌ها را در هنگام راه‌اندازی سیستم با استفاده از modprobe بارگیری می‌کند.

 

حذف ماژول‌های هسته

برای حذف یک ماژول، دستور modprobe را با گزینه r- و سپس نام ماژول فراخوانی نمایید:

modprobe -r module_name

modprobe همچنین وابستگی‌های ماژول استفاده نشده را حذف می‌کند.

هنگامی‌که این دستور با گزینه r- فراخوانی می‌شود، چندین ماژول را به عنوان آرگومان می‌پذیرد:

modprobe -r module_name1 module_name2

 

شما همچنین می‌توانید از دستور rmmod به منظور حذف یک ماژول از هسته لینوکس استفاده کنید.

چنانچه می‌خواهید از بارگیری یک ماژول هسته در زمان بوت جلوگیری نمایید، یک فایل conf. با هر نامی در داخل /etc/modprobe.d ایجاد کنید. نحوه انجام این کار به شرح زیر است:

                        /etc/modprobe.d/blacklist.conf
blacklist module_name

اگر می‌خواهید ماژول‌های اضافی را در لیست سیاه قرار دهید، ماژول‌ها را در یک خط جدید مشخص کنید یا یک فایل conf. جدید ایجاد نمایید.

 

 

 

منبع:

linuxize