آیا در دستگاه لینوکسی خود با مشکلات سختافزاری روبهرو هستید؟ یا شاید کنجکاوی وجود دارد بدانید با استفاده از دستورات ترمینال چه اطلاعاتی میتوان به دست آورد؟ در این صورت، بررسی مثالهای دستور lspci میتواند بسیار مفید باشد.
دستور خط فرمان lspci اطلاعاتی درباره سیستم گذرگاه PCI (Peripheral Component Interconnect) و دستگاههایی که به مادربرد رایانه متصل هستند ارائه میدهد. این دستگاهها شامل کارت گرافیک، پورت اترنت و کارت وایفای میشوند. اگر با دستور ls آشنایی وجود داشته باشد، درک نام این دستور نیز ساده است: «list PCI» یا فهرستکرد/compiler PCI. تنها با چند کلید میتوان به اطلاعات داخلی سیستم دسترسی پیدا کرد.
بررسی تمام دستگاههای PCI
سادهترین کاربرد دستور lspci، نمایش فهرست تمام دستگاههای PCI متصل به سیستم است. برای این کار کافی است دستور lspci بدون هیچ گزینهای اجرا شود تا یک نمای کلی نمایش داده شود.
در خروجی، هر دستگاه ابتدا با آدرس اسلات مشخص میشود؛ مجموعهای از اعداد و گاهی حروف که برای هر دستگاه منحصربهفرد است. سپس کلاس دستگاه، نام سازنده (Vendor) و نام دستگاه نمایش داده میشود. در برخی موارد، نام سازنده و نام دستگاه زیرسیستم نیز دیده میشود. همچنین ممکن است شماره نسخه (مانند «rev 04») و در انتها زبان برنامهنویسی مرتبط نمایش داده شود.
باید توجه داشت دستگاههای نمایشدادهشده تنها شامل تجهیزات PCI هستند. اگرچه کنترلرهای USB در این فهرست قرار میگیرند، اما دستگاههای متصل از طریق USB نمایش داده نمیشوند. برای مشاهده دستگاههای USB متصل، دستور lsusb مناسب است.
به همین ترتیب، برای کار با حافظههای ذخیرهسازی متصل، دستور lsblk کاربرد دارد.
جستجوی دستگاههای خاص
خروجی دستور lspci ممکن است در نگاه اول شلوغ و دشوار برای بررسی باشد. با استفاده از دستور grep میتوان دستگاههای خاصی را بر اساس یک عبارت جستجو کرد.
برای مثال، جهت مشاهده تمام کنترلرهای USB میتوان از دستور زیر استفاده کرد:
lspci | grep "USB"
این دستور تمام نتایجی را که شامل واژه USB نیستند حذف میکند.
البته انتخاب واژه جستجو همیشه ساده نیست. برای نمونه، کارت گرافیک ممکن است شامل واژههایی مانند «graphics» یا «GPU» در نام خود نباشد. در چنین شرایطی باید از واژههایی استفاده شود که احتمالاً در نام دستگاه وجود دارند و با آزمون و خطا به نتیجه رسید.
دریافت اطلاعات دقیق درباره دستگاهها
پس از شناسایی یک دستگاه مهم، میتوان اطلاعات بسیار بیشتری درباره آن دریافت کرد. دستور lspci با استفاده از گزینه -v (مخفف verbose) اطلاعات تفصیلیتری ارائه میدهد. این موضوع بهویژه در زمان عیبیابی سیستم لینوکس بسیار مفید است.
برای دریافت اطلاعات کاملتر، دستور زیر استفاده میشود:
lspci -v
برخی اطلاعات تنها با دسترسی ریشه (root) قابل مشاهده هستند؛ بنابراین اجرای دستور با sudo ممکن است لازم باشد. در غیر این صورت، پیام عدم دسترسی برای برخی بخشها نمایش داده میشود.
دستور lspci دارای سطوح بالاتر جزئیات نیز هست که با گزینههای -vv و -vvv فعال میشوند. این سطوح حجم زیادی از متن تولید میکنند و معمولاً فقط برای توسعهدهندگان کاربرد دارند.
مشاهده ارتباط بین دستگاهها
برای درک بهتر ساختار و ارتباط دستگاهها با یکدیگر، میتوان از گزینه -t استفاده کرد تا خروجی بهصورت درختی نمایش داده شود. بهطور پیشفرض فقط اسلاتها نشان داده میشوند، اما با افزایش سطح جزئیات، نام دستگاهها نیز قابل مشاهده خواهند بود.
lspci -tv
بررسی درایور مورد استفاده دستگاه
گاهی دانستن اینکه یک دستگاه PCI از کدام درایور استفاده میکند بسیار مهم است؛ بهویژه در مورد کارتهای گرافیک که انتخاب درایور مناسب در لینوکس اهمیت زیادی دارد.
اطلاعات مربوط به درایور مورد استفاده در خروجی دستور lspci وجود دارد و حتی بدون دسترسی ریشه نیز قابل مشاهده است. با مشخص بودن آدرس اسلات دستگاه، میتوان از دستور زیر استفاده کرد:
lspci -ks 00:02.0
گزینه -k اطلاعات مربوط به کرنل و درایور را نمایش میدهد و گزینه -s باعث میشود فقط اطلاعات همان دستگاه خاص نمایش داده شود.
دریافت کدهای منحصربهفرد دستگاه
در برخی مواقع، برای دریافت پشتیبانی تخصصی یا جستجوی اطلاعات دقیقتر، نیاز به کدهای منحصربهفرد سازنده و دستگاه وجود دارد. دستور lspci این امکان را فراهم میکند تا این کدها نمایش داده شوند.
با استفاده از گزینه -nn میتوان نام و کد سازنده و دستگاه را مشاهده کرد. برای مثال:
lspci -nns 00:02.0
در خروجی، مجموعهای از کدها مانند ۸۰۸۶:a7a0 نمایش داده میشود. بخش اول کد سازنده (برای مثال اینتل) و بخش دوم کد اختصاصی دستگاه است. جستجوی این کدها در وب اطلاعات بسیار دقیقی درباره سختافزار ارائه میدهد.
دستورات ترمینال لینوکس کاربردهای فراوان و گاهی شگفتانگیزی دارند. دستور traceroute میتواند در عیبیابی اتصال اینترنت کمک کند و تسلط بر دستور systemctl مدیریت سرویسهای سیستم را سادهتر میکند.
















