커널 내장 드라이버가 장치를 지원하는지 확인

커널 내장 드라이버가 장치를 지원하는지 확인

일부 시스템의 모든 하드웨어에 커널 모듈을 통해 또는 커널에 내장된 유효한 드라이버가 설치되어 있는지 정확하게 확인하는 방법을 찾으려고 합니다.

저는 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가 좋은 도우미라는 데 동의합니다. 그러나 이더넷 회선을 볼 때 이더넷이 작동하는지 확인하는 것이 더 간단할 수 있습니다. 이더넷인 경우하지 않았다작업을 하면 드라이버가 부족한지 확인할 수 있지만 시도하기 전에 드라이버를 확인할 필요는 없습니다.

나중에 정확한 드라이버가 무엇인지 기록하고 싶을 수도 있습니다. 잘 작동해서 기쁘고 다시 선택하기에 좋은 하드웨어라고 생각하기 때문입니다 :). 불행히도 vonbrand가 말했듯이 하드웨어 지원은 지뢰밭이 될 수 있으므로 이상적으로는아직귀하의 OS 또는 이에 상응하는 커뮤니티에 대한 인증을 원합니다. 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는 지옥처럼 불안정했습니다.

관련 정보