我正在嘗試找到一種方法來準確地確定某個系統上的所有硬體是否都通過核心模組或內建到核心中安裝了有效的驅動程式。
我正在 Dell Optiplex 990 上使用 RHEL 5.5。
我知道 lspci 是一個很好的起點,但它並不可靠,因為它可以手動更新,而新驅動程式並不總是更新它。我知道我可以查看 /lib/modules/$(uname -r)/modules.pcimap 來根據 ID 查找設備是否有驅動程式模組,但是內建驅動程式呢?我已經安裝了一個新內核,並且正在嘗試找出內建 agpgart-intel 模組是否支援供應商:裝置 ID 8086:0100 的主機橋。
另外,更新核心時是否有更新 pci.ids 清單的正確過程?我知道我可以使用 update-pciids 或從互聯網下載清單來更新所有內容,但僅包含當前安裝支援的 ID 不是更有意義嗎?
答案1
亞歷克斯回答你的問題。比較lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation QM57 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
02:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
結果是ls -l pci*/*:*/driver
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:00.0/driver -> ../../../bus/pci/drivers/agpgart-intel
lrwxrwxrwx. 1 root root 0 May 21 09:34 pci0000:00/0000:00:02.0/driver -> ../../../bus/pci/drivers/i915
lrwxrwxrwx. 1 root root 0 May 21 09:06 pci0000:00/0000:00:16.0/driver -> ../../../bus/pci/drivers/mei_me
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:19.0/driver -> ../../../bus/pci/drivers/e1000e
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1a.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1b.0/driver -> ../../../bus/pci/drivers/snd_hda_intel
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.0/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.3/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.4/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1d.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.0/driver -> ../../../bus/pci/drivers/lpc_ich
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.2/driver -> ../../../bus/pci/drivers/ahci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.3/driver -> ../../../bus/pci/drivers/i801_smbus
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.6/driver -> ../../../bus/pci/drivers/intel ips
它不一定涵蓋“所有硬體”。特別是可以透過 ACPI 存取功能。不過,對於手動探索來說,這太過分了。
另一個選擇是開始在您嘗試使用系統時建立基本的功能清單。這對我來說是一種更積極的方法,因為 Linux 通常不支援我的系統上的某些功能,但我很高興地使用 Linux,而不需要該功能:)。
我同意 lspci 是個很好的幫手。然而,它可能更簡單,例如當您看到乙太網路線路時,只需確認您有工作的乙太網路。如果是以太網沒有工作時,我可以檢查是否缺少驅動程序,但在嘗試之前不需要檢查驅動程式。
我還可能想要記錄確切的驅動程式是什麼,因為我很高興它運作良好,並且我認為它是再次選擇的良好硬體:)。不幸的是,正如馮布蘭德所說,硬體支援可能是一個雷區,所以理想情況下你會仍然想要獲得您的作業系統或同等社群的認證:Google 中有很多「對我來說非常有用」的報告。
我想知道你是否想使用 agp ? RHEL 5 是 gnome3 之前的版本,因此如果需要,您可以在沒有任何 3D 加速的情況下開啟終端模擬器。如果你做需要 3D 加速,您還需要一個 GL 函式庫。為什麼不嘗試您可能想要使用的要求最高的圖形應用程序,並檢查它們是否運行?
判斷性能有點煩人。它不僅僅是一個複選框,但它仍然可能是由一種離散的可能性引起的,例如使用通用驅動程式而不是特定於硬體的驅動程式。在函數清單中尋找快速基準並記錄結果作為參考點可能會很有用。例如,Gnome Disks 是一個非常方便的基準測試工具,預設安裝在該桌面的最新版本(咳嗽)上。
當您發現某個系統出現效能故障(例如 Gnome 3 不穩定)時,您可以將其記為潛在的檢查表項。即,在新系統上,您可能會注意到 Gnome 3 並不總是不穩定,因此它通過了該特定測試。
答案2
如果您知道所需驅動程式的 Kbuild 符號,您可以檢查/proc/config.gz
或任何其他可用的核心配置來源(發行版通常將配置放在/boot
核心旁邊,或者您可以使用核心原始碼scripts/extract-ikconfig
樹從核心中提取配置 - 前提是當然,配置已編譯到核心)。
答案3
您必須根據 RHEL 支援的設備清單尋找為計算機列出的設備。是的,可能有些碰巧有效,但沒有人費心去檢查/證明它們有效。
請注意,有時名稱相似的裝置(例如,某些名為 SC-423+ 的乙太網路卡是完全地與表面上相同的 SC-423 不同;有一次我們被型號完全相同但完全不同的卡片咬傷了)。相反,來自不同提供者的完全不同的設備是在相同的部件上建構的。但同時也讓製造商 A 堅如磐石,而 B 則搖搖欲墜。