Localizar driver (que não é instalado automaticamente) para um hardware específico

6

Existe alguma maneira geral para descobrir o nome do driver que eu tenho que instalar no meu sistema linux, dado apenas o nome do hardware? Talvez alguma página web ou aplicativo centralizado que ative todas as informações de hardware e seu diretório relacionado? Ou tudo o que posso fazer é pesquisá-lo em um navegador da web? O que você faz nesses casos?

Por exemplo, eu quero saber o nome do driver para o hardware "Controlador SATA Intel Corporation 82801HM / HEM (ICH8M / ICH8M-E)"

    
por aleixrocks 22.07.2013 / 17:39

1 resposta

6

LKDDb

Você pode procurar por drivers incluídos no Kernel do Linux aqui, link . A página principal está aqui, link .

About LKDDb
LKDDb is an attempt to build a comprensive database of hardware and protocols know by Linux kernels. The driver database includes numeric identifiers of hardware, the kernel configuration menu needed to build the driver and the driver filename. The database is build automagically from kernel sources, so it is very easy to have always the database updated.

Drivers não incluídos

Você normalmente tem que pesquisar pelo nome do hardware através do Kernel do Linux para ver se ele fornece um driver fora da caixa. Se não, então você precisa ir para o site do fabricante ou se é um projeto de referência feito pela Intel ou NVidia ou alguém, procure em seu site por drivers correspondentes.

Quais drivers eu estou usando?

Para ver quais drivers / módulos estão sendo usados pelo hardware que você já tem, você pode usar a ferramenta lspci -v .

Por exemplo:

$ lspci -v
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
    Subsystem: Lenovo Device 2193
    Flags: bus master, fast devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: agpgart-intel

00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Device 215a
    Flags: bus master, fast devsel, latency 0, IRQ 45
    Memory at f2000000 (64-bit, non-prefetchable) [size=4M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 1800 [size=8]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915
    Kernel modules: i915

Observe as linhas que dizem "Kernel driver in use" e "Kernel modules".

Quais drivers / módulos meu Kernel já carregou?

Você pode olhar para o sistema de arquivos /proc do Kernel para esta informação:

$ less /proc/modules
tcp_lp 2111 0 - Live 0xffffffffa00fc000
aesni_intel 12131 1 - Live 0xffffffffa0185000
cryptd 7111 1 aesni_intel, Live 0xffffffffa013c000
aes_x86_64 7758 1 aesni_intel, Live 0xffffffffa0128000
aes_generic 26908 2 aesni_intel,aes_x86_64, Live 0xffffffffa00f3000
fuse 61966 3 - Live 0xffffffffa030b000
cpufreq_powersave 1154 0 - Live 0xffffffffa00f0000
sunrpc 201569 1 - Live 0xffffffffa0580000
vboxpci 13918 0 - Live 0xffffffffa0576000
vboxnetadp 18145 0 - Live 0xffffffffa056c000
...

Você também pode usar o comando lsmod para obter essas informações em um formato mais bonito:

$ lsmod | less
Module                  Size  Used by
tcp_lp                  2111  0 
aesni_intel            12131  1 
cryptd                  7111  1 aesni_intel
aes_x86_64              7758  1 aesni_intel
aes_generic            26908  2 aesni_intel,aes_x86_64
fuse                   61966  3 
cpufreq_powersave       1154  0 
sunrpc                201569  1 
vboxpci                13918  0 
vboxnetadp             18145  0 
...

informações do módulo

Você pode usar o comando modinfo para saber mais sobre um módulo específico:

$ modinfo tcp_lp
filename:       /lib/modules/2.6.35.14-106.fc14.x86_64/kernel/net/ipv4/tcp_lp.ko
description:    TCP Low Priority
license:        GPL
author:         Wong Hoi Sing Edison, Hung Hing Lun Mike
srcversion:     8BFC408F81AB96C2D21A317
depends:        
vermagic:       2.6.35.14-106.fc14.x86_64 SMP mod_unload 

Quais drivers / módulos estão disponíveis para o meu kernel?

Você pode procurar por este diretório para ver todos os drivers / módulos do kernel que são fornecidos pelo seu sistema para uso com o seu kernel:

$ ls /lib/modules/'uname -r'
build   modules.alias      modules.builtin.bin  modules.drm          modules.modesetting  modules.pcimap       modules.usbmap
extra   modules.alias.bin  modules.ccwmap       modules.ieee1394map  modules.networking   modules.seriomap     source
kernel  modules.block      modules.dep          modules.inputmap     modules.ofmap        modules.symbols      updates
misc    modules.builtin    modules.dep.bin      modules.isapnpmap    modules.order        modules.symbols.bin  vdso

Você pode listá-los com este comando:

$ find /lib/modules/'uname -r' -type f | less
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.dep.bin
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.ieee1394map
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.networking
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.dep
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.isapnpmap
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.builtin
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.seriomap
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.usbmap
...

Referências

por 22.07.2013 / 19:35