ACPI 깨우기 4문자 코드는 무엇을 의미합니까?

ACPI 깨우기 4문자 코드는 무엇을 의미합니까?

나는 해야 한다특정 이벤트 비활성화데스크탑이 멈춘 후 즉시 깨어나는 것을 방지하기 위해 시행착오를 거쳤습니다(잘 작동했기 때문에 문제가 되지 않았습니다). 하지만 알고 싶습니다... 예를 들어 내 노트북에는 다음과 같은 긴 목록이 있습니다 /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
[...]

주변을 검색했지만 첫 번째 열에 있는 4자리 코드의 의미를 설명하는 목록을 찾을 수 없습니다. 나는 장치 이름 뒤에 오는 이벤트가 해당 장치에 의해 연결/생성되었다고 상상하지만 나머지 대부분은 추측을 뺀 나머지 부분에서는 손실이 발생합니다.

RP06예를 들어, 이벤트가 무엇인지 어떻게 알 수 있나요 ? 어딘가에 목록이 있나요? 아니면 이러한 코드는 공급업체마다 다르나요?

답변1

이러한 코드는 BIOS의 DSDT(차별화된 시스템 설명 테이블)에서 나옵니다. 이 "표"에서는 마더보드의 통합 장치, 해당 종속성 및 전원 관리 기능에 대해 설명합니다.

DSDT의 장치는 경로 구성 요소당 4자로 제한되는 트리로 정렬됩니다. 여기에 포함된 코드는 /proc/acpi/wakeup공급업체가 장치에 사용한 장치의 마지막 경로 구성 요소(이름이라고도 함)입니다.

공급업체는 원하는 대로 장치 이름을 지정할 수 있으므로 본질적으로 공급업체별로 다릅니다. 하지만 많은 벤더들 사이에서 공통적으로 사용되는 이름이 있거나 예시로 사용되기 때문에 몇 가지 이름이 있습니다.ACPI 사양또는 명백한 약어이기 때문에:

  • PS2K: PS/2 키보드
  • PS2M: PS/2 마우스
  • PWRB 또는 PBTN: 전원 버튼
  • SLPB: 수면 버튼
  • LID: 노트북 덮개
  • RP0x 또는 EXPx: PCIE 슬롯 #x(PCI Express 루트 포트 #x라고도 함)
  • EHCx 또는 USBx: USB 2.0(EHCI) 칩
  • XHC: USB 3.0(XHCI) 칩
  • PEGx: 그래픽 슬롯 #x용 PCI Express
  • GLAN 또는 IGBE: 기가비트 이더넷

답변2

PCI 장치에 대한 확실한 솔루션:

# cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
GP12      S4    *enabled   pci:0000:00:07.1
GP13      S4    *enabled   pci:0000:00:08.1 
XHC0      S4    *enabled   pci:0000:08:00.3
GPP0      S4    *enabled   pci:0000:00:01.1
GPP8      S4    *enabled   pci:0000:00:03.1
GPP1      S4    *enabled   pci:0000:00:01.2
PTXH      S4    *enabled   pci:0000:02:00.0
PT20      S4    *enabled   pci:0000:03:00.0
...

버스 번호로 검색:

# lspci | grep 08:00.3
08:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
# lspci | grep 02:00.0
02:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43ee

답변3

컴퓨터의 ACPI 테이블을 추출하고 디컴파일할 수 있습니다.

인텔의 ASL 컴파일러를 사용하면 시스템 DSDT 테이블을 소스 코드로 변환할 수 있습니다.

다음을 설치해야 합니다 acpica-tools.

  • 우분투:sudo apt-get install acpica-tools
  • 아치 리눅스:sudo pacman -S --needed acpica

다음과 같이 진행하세요:

  1. ACPI 테이블을 추출합니다(루트로):sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. 디컴파일: iasl -d dsdt.dat, 출력 파일을 얻습니다.dsdt.dsl
  3. 정의된 장치를 찾아서 /proc/acpi/wakeup비교하십시오.dsdt.dsl

인용하다

답변4

리눅스 커널acpi 네임스페이스에 대한 문서"Scope (RP03): PCI0 Power Scope"와 같이 이러한 약어가 무엇인지에 대한 감질나는 힌트를 제공합니다.커널 소스 코드/proc 파일에 이라고 나와 있지만 dev->pnp.bus_id도움이 되지 않습니다.

958페이지ACPI 사양 5.0재미 있지만 이름에도 도움이되지 않습니다.

관련 정보