ACPI wakeup significado de código de 4 letras?

11

Eu tenho que desabilitar algum evento para evitar um despertar imediato após a suspensão em minha máquina desktop, e eu fiz isso por tentativa e erro (funciona bem, então isso não é um problema). Mas eu me pergunto ... por exemplo, no meu laptop eu tenho uma longa lista em /proc/acpi/wakeup :

[...]
RP03      S4    *disabled
PXSX      S4    *disabled
RP04      S4    *disabled  pci:0000:00:1c.3
PXSX      S4    *enabled   pci:0000:03:00.0
RP06      S4    *disabled
[...]

Eu pesquisei por aí e não consigo encontrar um lugar onde uma lista com o significado do código de quatro letras na primeira coluna seja explicada. Eu imagino que os eventos com um nome de dispositivo após eles são vinculados / gerados por esse dispositivo, mas eu estou em uma perda com a maioria do resto ... menos suposições selvagens.

Como posso saber o que, por exemplo, o evento RP06 é? Existe algum lugar em uma lista? Ou esses códigos são específicos do fornecedor?

    
por Rmano 14.10.2015 / 17:48

3 respostas

15

Os códigos vêm da DSDT (Tabela de Descrição de Sistema Diferenciada) do seu BIOS. Esta "tabela" descreve os dispositivos integrados na sua placa-mãe, suas dependências e funções de gerenciamento de energia.

Os dispositivos no DSDT são organizados em uma árvore e cada componente do caminho é limitado a 4 caracteres. Os códigos em /proc/acpi/wakeup são os últimos componentes do caminho (também conhecidos como nomes) dos dispositivos que o fornecedor usou para os dispositivos.

Eles são inerentemente específicos do fornecedor, pois o fornecedor pode nomear qualquer dispositivo como desejar. Mas há alguns nomes que são comuns entre muitos fornecedores, seja porque são usados como exemplos na especificação da ACPI ou porque são abreviações óbvias:

  • PS2K: teclado PS / 2
  • PS2M: mouse PS / 2
  • PWRB: Botão liga / desliga
  • TAMPA: tampa do laptop
  • RP0x ou EXPx: slot #x do PCIE (também conhecido como porta raiz PCI Express #x)
  • EHCx ou USBx: chip USB 2.0 (EHCI)
  • XHC: chip USB 3.0 (XHCI)
  • PEGx: PCI Express para slot de gráficos #x
por 18.12.2015 / 12:21
2

A documentação do kernel linux no namespace acpi fornece algumas dicas tentadoras sobre o que essas abreviaturas pode ser, por exemplo, "Escopo (RP03): o escopo de potência PCI0" e a fonte do kernel para o arquivo / proc diz que é um dev->pnp.bus_id , mas isso não ajuda.

A página 958 acpi spec 5.0 é muito interessante, mas também não há ajuda sobre esses nomes.

    
por 15.10.2015 / 20:22
2

Você pode extrair e descompilar a tabela ACPI para o seu computador.

Usando o compilador ASL da Intel, você pode transformar a tabela DSDT do seu sistema em código-fonte.

Você precisará instalar o acpica-tools :

  • Ubuntu: sudo apt-get install acpica-tools
  • Arch Linux: sudo pacman -S --needed acpica

Aqui estão os passos:

  1. Extrai tabelas ACPI (como root): # cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. Decompilar: iasl -d dsdt.dat , obtemos o arquivo de saída dsdt.dsl
  3. Localize o dispositivo definido em /proc/acpi/wakeup e compare-o com dsdt.dsl

Referências

por 29.10.2018 / 07:52