Determine se o driver interno do kernel suporta um dispositivo

1

Estou tentando encontrar uma maneira de determinar com precisão se todo o hardware de algum sistema tem um driver válido instalado por meio de um módulo do kernel ou embutido no kernel.

Estou trabalhando com o RHEL 5.5 em um Dell Optiplex 990.

Eu sei que o lspci é um bom ponto de partida, mas não é confiável porque pode ser atualizado manualmente e novos drivers nem sempre o atualizam. Eu sei que posso olhar em / lib / modules / $ (uname -r) / modules.pcimap para descobrir se existe um módulo de driver para a base do dispositivo no ID, mas e os drivers internos? Eu instalei um novo kernel e estou tentando descobrir se o módulo interno agpgart-intel suporta a ponte de host com o fornecedor: ID de dispositivo 8086: 0100.

Além disso, existe um procedimento adequado para atualizar a lista pci.ids ao atualizar o kernel? Eu sei que poderia atualizar tudo usando o update-pciids ou baixando a lista da internet, mas não faz mais sentido incluir apenas os IDs suportados pela instalação atual?

    
por deuberger 26.04.2013 / 22:31

3 respostas

1

Alex responde sua pergunta. Comparar 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)

com o resultado de 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

Não cobrirá necessariamente "todo o hardware". Em particular, pode haver funcionalidade acessada através da ACPI. Isso seria muito para spelunk manualmente embora.

Uma alternativa seria iniciar criando uma lista de verificação básica de funções conforme você tenta usar o sistema. É uma abordagem mais positiva para mim, em que o Linux muitas vezes não suporta alguma função no meu sistema, mas eu uso o Linux felizmente sem precisar dessa função:).

Concordo que o lspci seja um bom ajudante. No entanto, poderia ser mais simples, e. quando você vê a linha Ethernet, apenas para confirmar que você está trabalhando em ethernet. Se a Ethernet não funcionasse , posso verificar a falta de um driver, mas não preciso verificar o driver antes de testá-lo.

Eu também posso querer um registro do que o driver exato é mais tarde porque estou feliz que funcionou bem e eu acho que é um bom hardware para escolher novamente :). Infelizmente, como vonbrand diz que o suporte de hardware pode ser um campo minado, então idealmente você ainda quer ter certificação para seu sistema operacional ou o equivalente da comunidade: muitos relatórios "funciona muito bem para mim" no Google. / p>

Gostaria de saber se o agp é algo que você queria usar? O RHEL 5 é pré-gnome3, então você pode abrir seus emuladores de terminal sem qualquer aceleração 3D se precisar. Se você precisar de aceleração 3D, também precisará de uma biblioteca GL. Por que não experimentar os aplicativos gráficos mais exigentes que você deseja usar e verificar se eles são executados?

O desempenho é um pouco mais chato para julgar. É mais do que uma caixa de seleção, mas ainda pode ser causada por uma possibilidade discreta como ter um driver genérico em vez de um driver específico do hardware. Pode ser útil procurar comparações rápidas em sua lista de funções e observar os resultados como um ponto de referência. Por exemplo. O Gnome Disks é uma ferramenta de benchmark muito conveniente que é instalada por padrão em versões recentes (tosse) dessa área de trabalho.

Quando você perceber uma falha de desempenho em um de seus sistemas (por exemplo, o Gnome 3 sendo irregular), você poderá observá-lo como um possível item de lista de verificação. Ou seja em um novo sistema, você pode observar que o Gnome 3 não é o tempo todo, então passou por aquele teste em particular.

    
por 21.05.2016 / 23:46
0

Se você conhece os símbolos Kbuild para os drivers desejados, você pode verificar /proc/config.gz ou qualquer outra fonte de configuração do kernel disponível (distribuições normalmente colocam config em /boot ao lado do kernel, ou você pode extrair a configuração do kernel com scripts/extract-ikconfig da árvore fonte do kernel - desde que a configuração tenha sido compilada no kernel, é claro).

    
por 14.09.2013 / 18:37
0

Você teria que procurar os dispositivos listados para a máquina em uma lista de dispositivos suportados pelo RHEL. Sim, pode haver algumas que funcionem, mas ninguém se incomodou em verificar / certificar que elas funcionam.

Tenha cuidado, às vezes dispositivos com nomes semelhantes (por exemplo, uma placa Ethernet chamada SC-423 + era uma besta completamente diferente da SC-423 superficialmente idêntica; e uma vez que somos mordidos por cartões com exatamente o mesmo número de modelo que eram bem diferentes). E o contrário, dispositivos completamente diferentes de provedores separados foram construídos nas mesmas peças. Mas também para que o fabricante A fosse sólido, enquanto B era esquisito como o inferno.

    
por 29.01.2016 / 03:11