بسیاری از محصولات بدون مشکل در لینوکس کار می کنند. علاوه بر این، پشتیبانی سخت افزاری در لینوکس هر روز در حال بهبود است. با این حال، لینوکس هنوز به اندازه برخی از سیستم عامل ها انواع مختلف سخت افزار را اجرا نمی کند.
درایورها در لینوکس در اکثر موارد برای یک «محصول» یا «برند» خاص از یک سازنده خاص نوشته نمیشوند، بلکه برای یک سختافزار/چیپست خاص نوشته میشوند. بسیاری از محصولات/برندهای به ظاهر متفاوت بر اساس طراحی سخت افزاری یکسانی هستند. غیر معمول نیست که تولیدکنندگان تراشه به اصطلاح «طرحهای مرجع» را برای محصولات بر اساس تراشههای خود ارائه میکنند که سپس توسط چندین سازنده دستگاههای مختلف استفاده میشود و با نامهای مختلف محصول یا برند به فروش میرسد.
این مزایا و معایبی دارد. یک مزیت این است که یک درایور برای یک چیپست با تعداد زیادی محصولات مختلف از تولید کنندگان مختلف کار می کند، تا زمانی که محصول آنها بر اساس یک چیپ ست باشد. نقطه ضعف این است که همیشه آسان نیست که ببینیم کدام چیپست واقعی در یک محصول/برند خاص استفاده می شود. متأسفانه گاهی اوقات سازندگان دستگاه ها پایه سخت افزاری محصول خود را بدون تغییر نام محصول یا حداقل شماره نسخه محصول تغییر می دهند، به طوری که وقتی دو کالا با نام تجاری/محصول یکسان در زمان های مختلف خریداری می کنند، گاهی اوقات می توانند بر اساس دو محصول متفاوت باشند. چیپست ها و بنابراین از دو درایور مختلف استفاده می کنند یا ممکن است اصلاً درایوری برای یکی از آنها وجود نداشته باشد.
برای دستگاههای USB و PCI/PCI-Express/ExpressCard، یک راه خوب برای فهمیدن اینکه بر اساس کدام تراشه ساخته شدهاند این است که به شناسه دستگاه آنها نگاه کنید. همه دستگاههای USB/PCI/PCI-Express/ExpressCard دارای شناسههای «فروشنده» و «محصول» هستند و ترکیب این دو معمولاً برای هر محصولی که مبتنی بر چیپست یکسان است یکسان است.
در سیستم های لینوکس، دستگاه ها و شناسه های آنها را می توان با استفاده از:
• دستور lsusb برای دستگاه های USB
• دستور lspci -nn برای دستگاه های PCI-Express/PCIe
شناسه فروشنده و محصول معمولاً به شکل دو عدد هگزا دسیمال که با یک دونقطه از هم جدا شده اند، مانند "1d6b:0001" داده می شود.
یک مثال برای خروجی lsusb:
دستگاه 001 Bus 001: ID 1d6b: مرکز بنیاد 0002 Linux 2.0 مرکز اصلی
به این ترتیب 1d6b شناسه فروشنده و 0002 شناسه محصول است. مثالی برای خروجی lspci -nn برای یک کارت اترنت:
03:00.0 کنترلر اترنت [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06).
شناسه ها در سمت راست ترین براکت ها آورده شده اند، یعنی در اینجا 10ec فروشنده است و 8168 شناسه محصول است.
به عنوان مثال دیگر، یک کارت گرافیک می تواند خروجی زیر را بدهد:
04:00.0 کنترلر سازگار با VGA [0300]: دستگاه های میکرو پیشرفته [AMD] nee ATI RV710 [Radeon HD 4350] [1002:954f].
در سیستمهای ویندوز، شناسههای یک دستگاه را میتوان در مدیر دستگاه ویندوز در برگه «جزئیات» یافت، جایی که شناسه فروشنده با پیشوند VEN_ و شناسه محصول با پیشوند DEV_ است. در سیستمهای ویندوز 7، باید ویژگی «شناسههای سختافزار» را در تب جزئیات مدیر دستگاه انتخاب کنید تا در واقع شناسهها را ببینید، زیرا بهطور پیشفرض نمایش داده نمیشوند.
جستجو در اینترنت با شناسه فروشنده/محصول، "Linux" و "driver" به عنوان عبارات جستجو اغلب به اطلاعاتی در مورد وضعیت پشتیبانی راننده برای یک چیپست خاص منجر می شود. اگر جستجو برای شناسه فروشنده/محصول نتایج قابل استفاده به دست نیاورد، نام کد تراشه را جستجو کنید، که اغلب
ارائه شده توسط lsusb و lspci ("RTL8111"/"RTL8168B" در مثال کارت شبکه و "RV710" در مثال کارت گرافیک)، می تواند کمک کند.
3.4.3.1. تست سازگاری سخت افزار با Live-System