ACPI

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 7. oktoober 2025, kell 09:46 kasutajalt Imre (arutelu | kaastöö) (→‎Kasulikud lisamaterjalid)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

TODO

Mõisted

  • ACPI - advanced configuration and power interface
  • AML - acpi machine language
  • EC - embedder controller
  • SMBus - system management bus
  • GPIO - General Purpose I/O
  • KCS - Keyboard Controller Style

Tööpõhimõte

TODO

  • ACPI - supervisor
  • EC/SMBus/KCS - worker

Misc

Lenovo T460p - Ubuntu

OSI

root@ubu2110:~# dmesg -T | grep Added
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Module Device)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Processor Device)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(3.0 _SCP Extensions)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Processor Aggregator Device)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Linux-Dell-Video)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[P sept  21 10:38:30 2025] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)

acpi aml tabelite (koodi) laadimine (ehk nn acpi-driverid)

[P sept  21 10:38:30 2025] ACPI: 11 ACPI AML tables successfully acquired and loaded

bus tüübid

root@ubu2110:~# dmesg -T | grep "ACPI: " | grep regist
[P sept  21 10:38:30 2025] ACPI: bus type PCI registered
[P sept  21 10:38:30 2025] ACPI: bus type USB registered

üsna tüüpiline viga

root@ubu2110:~# dmesg -T | grep "ACPI: " | grep Bug
[P sept  21 10:38:30 2025] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored

millega saaks tegeleda nt linux kernel ütleb, et ta on windows, iseasi kas see on praktiliselt vajalik

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi='Windows 2015'"

acpitool abil suhtlemine acpi osakonnaga

root@ubu2110:~# acpitool -c
  CPU type               : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
  Min/Max frequency      : 800/3500 MHz
  Current frequency      : 799 MHz
  Frequency governor     : powersave
  Freq. scaling driver   : intel_pstate
  Cache size             : 2600.000 KB
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Bogomips               : 5199.98
  Function Show_CPU_Info : could not read directory /proc/acpi/processor/
  Make sure your kernel has ACPI processor support enabled.

aku

root@ubu2110:~# acpitool -B
  Battery #1     : present
    Remaining capacity : 15680 mWh, 100.0%
    Design capacity    : 71280 mWh
    Last full capacity : 15680 mWh, 22.00% of design capacity
    Capacity loss      : 78.00%
    Present rate       : 0 mW
    Charging state     : Full
    Battery type       : Li-ion
    Model number       : 45N1777
    Serial number      : 2616

wake up seadmed

root@ubu2110:~# acpitool -w
   Device	S-state	  Status   Sysfs node
  ---------------------------------------
  1. LID	  S4	*enabled   platform:PNP0C0D:00
  2. SLPB	  S3	*enabled   platform:PNP0C0E:00
  3. IGBE	  S4	*enabled   pci:0000:00:1f.6
  4. PXSX	  S4	*disabled  pci:0000:03:00.0
  5. PXSX	  S4	*disabled
  6. PXSX	  S4	*disabled
  7. PXSX	  S4	*disabled
  8. PXSX	  S4	*disabled  pci:0000:04:00.0
  9. 		*disabled  platform:rtsx_pci_sdmmc.0
  10. PXSX	  S4	*disabled
  11. XHCI	  S3	*enabled   pci:0000:00:14.0

root@ubu2110:~# lspci | grep 00:1f.6
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)

root@ubu2110:~# dmesg | egrep "PNP0C0D|PNP0C0E"
[    0.323518] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    0.323573] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1

Lenovo T460p - OpenBSD

TODO

Arvuti käivitumine

Väited, ACPI root

root@ubu2110:~# ls -ld "/sys/devices/LNXSYSTM:00/"*
-r--r--r--  1 root root 4096 okt    7 09:03 /sys/devices/LNXSYSTM:00/hid
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:00
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:01
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:02
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:03
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:04
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:05
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:06
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXCPU:07
drwxr-xr-x  5 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXPWRBN:00
drwxr-xr-x 23 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:01
-r--r--r--  1 root root 4096 okt    7 09:03 /sys/devices/LNXSYSTM:00/modalias
-r--r--r--  1 root root 4096 okt    7 09:03 /sys/devices/LNXSYSTM:00/path
drwxr-xr-x  2 root root    0 okt    6 19:53 /sys/devices/LNXSYSTM:00/power
lrwxrwxrwx  1 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/subsystem -> ../../bus/acpi
-rw-r--r--  1 root root 4096 okt    5 01:10 /sys/devices/LNXSYSTM:00/uevent

pcie root

root@ubu2110:~# dmesg | grep _OSC
[    0.233413] ACPI: \_PR_.CPU0: _OSC native thermal LVT Acked
[    0.258815] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
[    0.258963] acpi PNP0A08:00: _OSC: platform does not support [SHPCHotplug PCIeCapability LTR DPC]
[    0.259032] acpi PNP0A08:00: _OSC: not requesting control; platform does not support [PCIeCapability]
[    0.259037] acpi PNP0A08:00: _OSC: OS requested [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
[    0.259041] acpi PNP0A08:00: _OSC: platform willing to grant [PCIeHotplug PME AER]
[    0.259044] acpi PNP0A08:00: _OSC: platform retains control of PCIe features (AE_SUPPORT)

root@ubu2110:~# ls -ld "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00"/*
-r--r--r--  1 root root 4096 okt    7 09:06 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/adr
drwxr-xr-x 15 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01
drwxr-xr-x  7 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:03
drwxr-xr-x  9 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:05
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:18
drwxr-xr-x  5 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:19
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1b
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1d
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1f
drwxr-xr-x  5 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:21
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:23
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:25
drwxr-xr-x 12 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:26
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2f
drwxr-xr-x  9 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:30
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:49
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:4a
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:4b
-r--r--r--  1 root root 4096 okt    7 09:06 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/hid
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXPOWER:01
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXPOWER:02
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXPOWER:03
drwxr-xr-x 22 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01
-r--r--r--  1 root root 4096 okt    7 09:06 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/modalias
-r--r--r--  1 root root 4096 okt    7 09:06 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/path
lrwxrwxrwx  1 root root    0 okt    7 09:06 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node -> ../../../pci0000:00
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C02:01
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C02:02
drwxr-xr-x  2 root root    0 okt    6 19:53 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/power
lrwxrwxrwx  1 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/subsystem -> ../../../../bus/acpi
-rw-r--r--  1 root root 4096 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/uevent
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/wakeup

pci root teises vaates

root@ubu2110:~# ls -ld /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/PNP0A08\:00/physical_node/*
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:00.0
drwxr-xr-x  7 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:01.0
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:01.2
drwxr-xr-x 10 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:02.0
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:14.0
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:14.2
drwxr-xr-x 22 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:16.0
drwxr-xr-x  9 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:17.0
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1c.0
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1c.4
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.0
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.2
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.3
drwxr-xr-x  4 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.4
drwxr-xr-x  8 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.6
lrwxrwxrwx  1 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/firmware_node -> ../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00
drwxr-xr-x  3 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/pci_bus
drwxr-xr-x  2 root root    0 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/power
-rw-r--r--  1 root root 4096 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/uevent
-r--r--r--  1 root root 4096 okt    5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/waiting_for_supplier

ja konkreetne pcie seade

root@ubu2110:~# udevadm info -a -p /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/physical_node/0000:00:1f.6 | grep -A 3 "looking a"
  looking at device '/devices/pci0000:00/0000:00:1f.6':
    KERNEL=="0000:00:1f.6"
    SUBSYSTEM=="pci"
    DRIVER=="e1000e"
--
  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
root@ubu2110:~#

ning

root@ubu2110:~# cat /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/PNP0A08\:00/physical_node/0000\:00\:1f.6/modalias
pci:v00008086d000015B7sv000017AAsd00005050bc02sc00i00
root@ubu2110:~# grep v00008086d000015B7sv /lib/modules/5.15.0-140-generic/modules.alias | grep e100
alias pci:v00008086d000015B7sv*sd*bc*sc*i* e1000e

Kasulikud lisamaterjalid

  • TODO