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.