it-swarm-pt.com

Comando Shell para ler registros de dispositivos?

Em um computador de placa única executando Linux, existe uma maneira de ler o conteúdo dos registros de configuração de dispositivos que controlam o hardware? Eu acho que seria um invólucro para inw().

Estou procurando por algo equivalente ao comando U-boot memory dump (md), para ser usado no contexto de depuração do driver.

18
pingswept

Se você souber o endereço físico do dispositivo, poderá usar o devmem2.

devmem2 <physical address> <size (b/h/w)> [value]
14
Eric

Não sei se você pode fazê-lo diretamente com um kernel Vanilla.

Mas deve ser bastante complicado escrever um driver simples que use um "arquivo" em/proc para exportar o conteúdo da memória que você gostaria de ver.

Então você pode ler seu "arquivo" com um script simples e ter acesso a essa memória.

3
Johan

Eu posso estar completamente e totalmente errado sobre isso, e me perdoe se estiver, mas se o comando md do uboot estiver apenas lendo endereços de memória mapeados para registros de dispositivos e devolvendo o conteúdo para você, você não poderia ler esses mesmos locais de memória com uso inteligente? do dd if=/dev/mem ...?

1
LawrenceC

busybox devmem

busybox devmem é minha versão preferida de devmem2 mencionado em: https://unix.stackexchange.com/a/134661/32558

devmem2 veio em várias versões diferentes de vários upstreams, principalmente o Buildroot http://free-electrons.com/pub/mirror/devmem2.c

Mas um utilitário Busybox é mais canônico, amplamente disponível e mantido.

Por exemplo,devmem2 foi rejeitado pelo Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (mas um pacote Ubuntu foi criado, mesmo assim).

Você pode obtê-lo no Ubuntu com:

Sudo apt-get install busybox

Uso: leia 4 bytes do endereço físico 0x12345678:

Sudo busybox devmem 0x12345678

Escrever 0x9abcdef0 para esse endereço:

Sudo busybox devmem 0x12345678 w 0x9abcdef0

Aqui estão algumas maneiras legais de testar a saída de devmem: https://stackoverflow.com/questions/12040303/accessing-physical-address-from-user-space/45127890#4512789

A configuração do dispositivo PCI está em/sys/bus/pci/devices/*/config de alguma ajuda?

0
user3487

Existe um utilitário chamado pcimem ( https://github.com/billfarrow/pcimem )

Você pode usá-lo para leitura e gravação de/para dispositivos pci.

0
simba