Localizar drivers ACPI corretos sem tentativa e erro

1

Meu sistema está rodando em uma configuração mínima do kernel (baseada em make defconfig ).

Agora, estou tentando descobrir quais drivers de dispositivo adicionais de acpi eu tenho que ativar para que tudo no meu sistema funcione. Para encontrar um driver correspondente, eu poderia ativá-lo, criar & reinicie, observe o dmesg. Esse é um processo tedioso e propenso a erros, e eu gostaria de poder escolher os drivers corretos com base nas informações do sistema.

Para dispositivos PCI ou USB, consegui utilizar lspci -nn e pesquisei o vendorId:deviceId em LKDDb .

Já vi entradas ACPI neste banco de dados também, mas não consigo descobrir como extrair informações do dispositivo ACPI do meu sistema.

    
por nyronium 11.06.2018 / 19:08

1 resposta

2

A solução é despejar e descompilar a ACPI DSDT (Tabela de descrição do sistema diferenciado) do BIOS. Isso inclui código para inicialização de dispositivo ACPI específico para o sistema usado e, portanto, também inclui os IDs de dispositivo necessários.

Decompile o DSDT com os seguintes comandos ( iasl deve ser instalado)

cp /sys/firmware/acpi/tables/DSDT dsdt.dat
iasl -d dsdt.dat

Em seguida, consulte o código descompilado para identificar o dispositivo

grep '_HID.*"' dsdt.dsl

A saída incluirá todas as linhas em que um dispositivo é declarado e os respectivos IDs de dispositivo. Finalmente, use LKDDb para encontrar os drivers acpi necessários para os dispositivos.

Para uma extração rápida das linhas relevantes, você pode usar isto:

wget https://cateee.net/sources/lkddb/lkddb.list
for i in $(grep '_HID.*"' dsdt.dsl | grep -o '"[A-Z0-9]*"'); do grep "$i" lkddb.list; done | sort -u > relevant

Além disso, liste todas as variáveis CONFIG_* da saída:

cat relevant | grep -o 'CONFIG[A-Z0-9_]*' | sort -u

Note que esta lista é apenas uma orientação e não garante estar livre de falsos positivos ou falsos negativos. Se você quiser ter certeza sobre o que está fazendo, investigue o dsdt.dsl .

    
por 13.06.2018 / 12:04