روش نصب درایور در لینوکس

یکی از چالش‌های دلهره‌آور برای کاربرانی که از سیستم عامل ویندوز یا مک به لینوکس کوچ می‌کنند این است که یک درایور را نصب و پیکربندی کنند. از آنجایی که ویندوز و مک مکانیزم‌هایی دارند که این کار را به راحت‌ترین و کاربرپسندانه‌ترین شکل ممکن انجام می‌دهند، این ترس طبیعی است.

تصویر نصب درایور انویدیا در لینوکس

برای مثال، وقتی یک دستگاه جدید را به کامپیوتر ویندوزی خود متصل می‌کنید، سیستم عامل ویندوز به صورت خودکار دستگاه را شناسایی کرده و با نمایش یک نوتیفیکیشن، از شما می‌خواهد تا فرایند نصب درایور را ادامه دهید. شما همچنین به راحتی می‌توانید درایور مورد نظرتان را از اینترنت دانلود و سپس با دو بار کلیک بر روی فایل اجرایی، آن را در ویندوز نصب کنید.

در شرایطی که دستگاه به صورت خودکار شناسایی نشود و یا به هر حال دلیل فرایند نصب درایور به صورت خودکار با شکست مواجه شده باشد، کافیست از بخش Device Manager، فایل درایور دانلود شده را Import کنید.

اما این فرایند در سیستم عامل لینوکس به این آسانی نیست! یکی از دلایل تفاوت بین ویندوز و لینوکس، متن باز بودن لینوکس است. بنابراین، صدها توزیع مختلف از لینوکس در دسترس کاربران قرار دارد.

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

دلیل دوم این است که اکثر درایورهای پیش‌فرض در لینوکس نیز متن باز هستند و به صورت داخلی در سیستم عامل قرار دارند. به همین دلیل، اگرچه اکثر دستگاه‌ها به صورت خودکار شناسایی می‌شوند اما نصب هرگونه درایوری که درون سیستم عامل لینوکس وجود ندارد، فرایندی پیچیده خواهد داشتلینو

دلیل سوم نیز به سیاست‌های لایسنس مربوط می‌شود که در هر کدام از توزیع‌های لینوکس شرایط متفاوتی دارد. برای مثال، قوانین توزیع فدورا نصب درایورهای انحصاری، قانونا منع شده. توزیع اوبونتو نیز به کاربران توصیه می‌کند از نصب سخت‌افزارهای انحصاری یا بسته (Closed) خودداری کنند.

در این مقاله به دو روش برای پیدا کردن درایورهای مناسب اشاره می‌کنیم:

روش اول: از طریق رابط‌های کاربری

اگر به تازگی یکی از کاربران لینوکس شده‌اید و قبلا از ویندوز یا مک استفاده می‌کردید، احتمالا اگر بدانید لینوکس راهی برای پیدا کردن درایورها به صورت ساده ارائه می‌دهد، خوشحال خواهید شد. کاربران توزیع اوبونتو به گزینه‌ای تحت عنوان  Additional Drivers دسترسی دارند.

سایر توزیع‌های لینوکس مانند GNOME نیز برنامه‌های کمکی نظیر Package Manager را در دسترس قرار می‌دهند. این برنامه‌ها به کاربر اجازه می‌دهند تا درایورهای موجود برای یک دستگاه را مشاهده کنند.

روش دوم از طریق خط فرمان

اما اگر درایور مورد نظرتان را از طریق یک رابط کاربری شیک و کاربرپسند پیدا نکردید و یا اینکه شما فقط به شِل (Shell) دسترسی دارید و خبری از رابط گرافیکی نباشد چطور؟! در چنین شرایطی حتی می‌توانید از کنسول استفاده کنید. بدین منظور شما به دو گزینه دسترسی دارید:

گزینه اول: استفاده از یک مخزن

این روش مشابه Homebrew در سیستم عامل مک است. با استفاده از خط فرمان‌هایی مانند yum، dnf، apt-get و موارد مشابه، شما در واقع یک مخزن جدید را به سیستم عامل اضافه و کش پکیج را به‌روزرسانی می‌کنید.

گزینه دوم: دانلود، کامپایل و ایجاد یک ابزار

این روش معمولا شامل دانلود مستقیم یک پکیج از وب‌سایت یا استفاده از دستور wget و اجرای فایل پیکربندی و Makefile برای نصب آن می‌شود. به هر حال در این مقاله چگونگی انجام این روش بررسی نمی‌شود.

بررسی اینکه آیا درایور نصب شده

قبل از اینکه به ادامه بحث در خصوص نحوه نصب درایور در لینوکس بپردازیم، اجازه دهید شما را با چند دستوری که نصب بودن یا نبودن درایور را نشان می‌دهند آشنا کنیم.

دستوری lspci اطلاعات کاملی درباره تمامی درگاه‌های PCI و دستگاه‌های متصل به کامپیوتر را نشان می‌دهد:

$ lscpci

این کار با دستور grep نیز قابل انجام است:

$ lscpci | grep SOME_DRIVER_KEYWORD

برای مثال شما می‌توانید عبارت lspci | grep SAMSUNG را تایپ کنید تا از نصب بودن یا نبودن درایور سامسونگ مطمئن شوید.

دستور dmesg تمامی درایورهای دستگاه‌های متصل به کامپیوتر که توسط کرنل تشخیص داده شدند را نمایش می‌دهد:

$ dmesg

این کار با دستور grep نیز قابل انجام است:

$ dmesg | grep SOME_DRIVER_KEYWORD

هر درایوری که توسط سیستم شناسایی شود در نتایج اجرای این دستور نمایش داده می‌شود.

اگر هیچ درایوری با دو دستور lscpci و dmesg شناسایی نشد، می‌توانید با استفاده از دو دستور پایین بررسی کنید که آیا درایور اصلا در هارد دیسک وجود دارد یا خیر.

  1. $ /sbin/lsmod
  2. $ find /lib/modules

نکته:

مانند کاری که با دو دستور lscpci و dmesg انجام دادیم، با اضافه کردن عبارت | grep به این دو دستور می‌توانید نتایج را فیلتر کنید.

اگر درایور شناسایی شده توسط این دو درایور، توسط lscpci و dmesg شناسایی نشده بود، یعنی درایور در هارد دیسک وجود دارد و درون کرنل قرار نگرفته است. در این شرایط، ماژول مذکور را با استفاده از دستور modprobe فراخوانی کنید:

$  sudo modprobe MODULE_NAME

از آنجایی که این ماژول باید به عنوان یک کاربر روت نصب شود، این دستور را به صورت sudo اجرا کنید.

افزودن مخزن و نصب

روش‌های مختلفی مانند yum، dnf و apt-get برای افزودن مخزن وجود دارد که توضیح آنها در این مقاله نمی‌گنجد. اما برای درک بهتر، اگرچه در این مثال از apt-get استفاده شده است، اما ایده کلی در خصوص دو روش دیگر تفاوت چندانی ندارد.

1) مخزن فعلی را در صورت وجود، حذف کنید:

$ sudo apt-get purge NAME_OF_DRIVER*

NAME_OF_DRIVER در واقع نام پرتابل درایور شما است. شما همچنین می‌توانید با اضافه کردن یک بند انطباقِ الگو، نتایج را به شکل جزئی‌تری فیلتر کنید.

2) افزودن مخزن به repolist، که باید در راهنمای درایور ذکر شده باشد.

$  sudo add-apt-repository REPOLIST_OF_DRIVER

در این دستور، REPOLIST_OF_DRIVER باید در سند مربوط به درایور مشخص شده باشد (مثلا در بخش epel-list).
3) به‌روزرسانی لیست مخزن

$ sudo apt-get update

4) نصب پکیج

$ sudo apt-get install NAME_OF_DRIVER

5) بررسی نصب
دستور lscpi را مطابق با شیوه‌ای که پیش‌تر گفته شود اجرا کنید تا ببینید آیا درایور با موفقیت نصب شده است یا خیر.
بیشتر بخوانید : 2021 سال لینوکس روی دسکتاپ