ACPI
Allikas: Imre kasutab arvutit
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 system root node'
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
ACPI system bus
/sys/devices/LNXSYSTM:00/LNXSYBUS:00
ACPI PCI Root Bridge
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, 'kernel-level PCI device tree'
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 modalias abil seadmega seotud draiveri abil seadme kindlakstegemine
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