Onde encontrar uma lista de drivers de dispositivos suportados pelo linux?

1

Eu li aqui que linux suporta um grande número de drivers de dispositivo e por extensão, ele também suporta um grande número de dispositivos conectados via USB port. Trecho desse site:

Linux today supports more hardware devices than any other operating system in the history of the world. It does this using a development model significantly different from the familiar Windows device driver model.

Existe uma lista de todos os dispositivos diferentes que são suportados por linux ? e / ou lista de dispositivos conectados via USB e suportados pelo linux '?

Isso é diferente de descobrir quais drivers de dispositivos são atualmente suportados em uma determinada distribuição usando os comandos lsmod , lspci e dmesg | grep <string> , pois os provedores de distribuição suportam apenas alguns drivers comuns de todos os drivers suportados. por linux .

    
por user2555595 16.07.2014 / 15:14

3 respostas

3

Os comandos lspci e lsusb apenas enumeram os dispositivos conectados a barramentos específicos. Eles lêem id do barramento e usam um arquivo especial para mapear esses ids para strings.

O lsmod mostra apenas uma lista de módulos do kernel do Linux . O módulo do kernel Linux faz parte do código do kernel do Linux, que é carregado dinamicamente - estes módulos não são drivers necessários, pode ser qualquer parte do código do kernel. Este mecanismo é usado para economizar memória e tempo de inicialização e não carrega todo o código na inicialização, para facilitar o desenvolvimento do kernel (você pode descarregar / modificar / carregar partes do kernel). Como o driver de dispositivo é uma das boas aplicações deste carregamento dinâmico - ele é usado na maioria dos drivers. O exemplo não-driver é iptables (o mecanismo de filtragem de rede), onde apenas partes são carregadas e são realmente solicitadas pelo usuário.

O dmesg é apenas um log de texto do kernel - geralmente o desenvolvedor cria algo lá no caso de inicialização, mas isso é totalmente voluntário - então o que você encontra lá e o formato é completamente aleatório.

Listas completas do hardware suportado são difíceis de obter. O Kernel consiste em partes muito diferentes feitas por pessoas diferentes e há muitos dispositivos similares com rótulos diferentes.

Normalmente, você pode tentar descobrir se seu dispositivo é compatível com páginas dedicadas:

  • as impressoras suportadas estão no banco de dados da impressora linux link
  • os scanners são uma página sã
  • placa de vídeo em link
  • e assim por diante

Isso ocorre principalmente porque a maioria das coisas não requer apenas o driver do kernel, mas também o tipo de camada do userspace e há um tipo de 'projeto' que faz as duas partes com a interface principal no espaço do usuário.

A lista mais avançada do suportado pode ser extraída do código do kernel - geralmente há uma lista de ids do pci / usb suportados para cada driver específico - existe uma maneira de extraí-lo: link . Mas se você tiver o módulo do kernel que tem um ID na lista, não significa que o dispositivo é totalmente suportado ou que você tem ferramentas de espaço do usuário que permitem usar este módulo ou que essas ferramentas de espaço de usuário existem em sua distribuição particular. >

Às vezes, os fornecedores de distribuição fornecem uma lista de dispositivos compatíveis, mas isso geralmente é um pequeno subconjunto.

Para o debian, há também uma lista de mapeamentos de módulos do kernel pciid- & gt ;, link .

Em relação aos dispositivos usb, muitas coisas, como câmeras, têm drivers tipo espaço de usuário através de câmeras tipo libusb ou não. Nesse caso, você não precisa de nenhum driver de kernel.

Além disso, não se esqueça que o Linux roda em quase 20 arquiteturas (imagine quantos drivers estão em bilhões de smartphones Android diferentes), cada um com um conjunto enorme de drivers - e você verá que o valor total será fácil bater todos os outros sabe OS.

    
por 16.07.2014 / 15:56
1

Acho que a resposta a esta pergunta é nebulosa! Se você está procurando uma lista de dispositivos que são suportados pelo kernel do Linux, isto é, peças específicas de hardware, tente A pesquisa do nó H

Os drivers de dispositivo são "Windows speak" realmente. O suporte ao dispositivo do kernel é embutido ou adicionado dinamicamente aos módulos do kernel, que é o mais próximo de um driver de dispositivo. O kernel provavelmente suporta com mais precisão certos chipsets que são encontrados nos próprios dispositivos.

Muitos dispositivos podem, na verdade, usar o mesmo chipset embaixo, e certos dispositivos, marcados com o mesmo código de ID de produto do fabricante, podem utilizar chipsets totalmente diferentes! (Como eu encontrei para meu aborrecimento !!)

    
por 16.07.2014 / 15:46
0

E sobre

find /lib/modules/'uname -r' -name "*usb*"
    
por 16.07.2014 / 15:50