Obtém o endereço base e o tamanho de um módulo do kernel carregado?

1

Como posso obter o endereço base e o tamanho de um módulo de kernel carregado?

    
por user 04.04.2015 / 21:54

2 respostas

2

Acho que você pode usar /proc/modules . Ele contém informações sobre todos os módulos atualmente carregados no kernel. Por exemplo:

cat /proc/modules | grep i8k

O resultado pode ser:

i8k 14696 0 - Live 0xffffffffa03b8000

Onde:

  1. A primeira coluna contém o nome do módulo.
  2. A segunda coluna refere-se ao tamanho da memória do módulo, em bytes.
  3. A terceira coluna lista quantas instâncias do módulo estão atualmente carregadas. Um valor zero representa um módulo descarregado.
  4. A quarta coluna informa se o módulo depende de outro módulo para estar presente, a fim de funcionar, e lista esses outros módulos.
  5. A quinta coluna lista em que estado de carregamento o módulo está: Live , Loading ou Unloading .
  6. Endereço de memória base para um módulo no espaço de endereço virtual do kernel.

Se você executar:

awk '$1 ~ /i8k/ { print $1, $2, $6 }' /proc/modules

O resultado pode ser os valores de que você precisa:

i8k 14696 0xffffffffa03b8000
    
por 05.04.2015 / 02:53
0

Tamanho em /sys

Eu gosto dessa alternativa, pois ela fornece apenas um valor:

cat /sys/module/<module-name>/coresize

Carregar endereço em pr_debug

Se você habilitar pr_debug , essa informação estará presente, e isso poderá ser útil se o módulo entrar em pânico em init_module .

Detalhes em: Como obter o endereço de um módulo do kernel que foi inserido usando o insmod? | Estouro de pilha

    
por 14.04.2018 / 23:39