ACPI: erinevus redaktsioonide vahel
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
(→Misc) |
(→Misc) |
||
| 374. rida: | 374. rida: | ||
root@ubu2110:~# grep button /lib/modules/5.15.0-140-generic/modules.builtin |
root@ubu2110:~# grep button /lib/modules/5.15.0-140-generic/modules.builtin |
||
kernel/drivers/acpi/button.ko |
kernel/drivers/acpi/button.ko |
||
| + | |||
| + | root@ubu2110:~# dmesg | grep PWR |
||
| + | [ 0.323534] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2 |
||
| + | [ 0.323553] ACPI: button: Power Button [PWRF] |
||
</pre> |
</pre> |
||
Redaktsioon: 7. oktoober 2025, kell 10:05
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
Väited
- kernel saab hot plug puhul aru seadme id vms väärtuse
- kernel saadab uevent'i udevd osakonda
- udevd juhtimisel leitakse üles modalias süsteemi abil sobiv draiver
- udevd juhtimisel laaditakse draiver ja rakendatakse udevd rules (nt seadme nime vms omaduste kohendamiseks)
- lisatud seade on user-space programmidele kasutatav
- systemd juhib udevd osakonda
Misc
non-pci jms tüüpi seadmega seotud info leidmine, nt tpm moodul
root@ubu2110:~# systool -b platform
Bus = "platform"
Device = "ACPI0003:00"
Device = "Fixed MDIO bus.0"
Device = "LEN0068:00"
Device = "MSFT0101:00"
Device = "PNP0103:00"
Device = "PNP0800:00"
Device = "PNP0C04:00"
Device = "PNP0C09:00"
Device = "PNP0C0A:00"
Device = "PNP0C0D:00"
Device = "PNP0C0E:00"
Device = "PNP0C14:00"
Device = "PNP0C14:01"
Device = "PNP0C14:02"
Device = "alarmtimer.0.auto"
Device = "coretemp.0"
Device = "efivars.0"
Device = "eisa.0"
Device = "i8042"
Device = "intel_pmc_core.0"
Device = "intel_rapl_msr.0"
Device = "kgdboc"
Device = "microcode"
Device = "pcspkr"
Device = "reg-dummy"
Device = "regulatory.0"
Device = "rtc-efi.0"
Device = "rtsx_pci_sdmmc.0"
Device = "serial8250"
Device = "thinkpad_acpi"
Device = "thinkpad_hwmon"
Device = "vboxdrv.0"
root@ubu2110:~# find /sys/devices/ -name MSFT0101:00 -ls
9680 0 drwxr-xr-x 3 root root 0 okt 5 01:10 /sys/devices/platform/MSFT0101:00
8004 0 drwxr-xr-x 5 root root 0 okt 5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/MSFT0101:00
root@ubu2110:~# udevadm info -a -p /sys/devices/LNXSYSTM:00/LNXSYBUS:00/MSFT0101:00 | grep -A 3 "looking a"
looking at device '/devices/LNXSYSTM:00/LNXSYBUS:00/MSFT0101:00':
KERNEL=="MSFT0101:00"
SUBSYSTEM=="acpi"
DRIVER=="tpm_crb"
--
looking at parent device '/devices/LNXSYSTM:00/LNXSYBUS:00':
KERNELS=="LNXSYBUS:00"
SUBSYSTEMS=="acpi"
DRIVERS==""
--
looking at parent device '/devices/LNXSYSTM:00':
KERNELS=="LNXSYSTM:00"
SUBSYSTEMS=="acpi"
DRIVERS==""
kus
- saadakse teada, et tpm seadmega tegeleb driver tpm_crb
- seejuures ei kasutata praktiliselt modalias süsteemi kuna driaver on builtin
root@ubu2110:~# cat /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/MSFT0101\:00/modalias acpi:MSFT0101: root@ubu2110:~# grep tpm_crb /lib/modules/5.15.0-140-generic/modules.alias root@ubu2110:~# grep tpm_crb /lib/modules/5.15.0-140-generic/modules.builtin kernel/drivers/char/tpm/tpm_crb.ko
nt toitenupp
root@ubu2110:~# find /sys/devices/ -name PNP0C0D:00 -ls
8108 0 drwxr-xr-x 3 root root 0 okt 5 01:10 /sys/devices/platform/PNP0C0D:00
6170 0 drwxr-xr-x 5 root root 0 okt 5 01:10 /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00
root@ubu2110:~# udevadm info -a -p /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/PNP0C0D\:00 | grep -A 3 "looking at"
looking at device '/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00':
KERNEL=="PNP0C0D:00"
SUBSYSTEM=="acpi"
DRIVER=="button"
--
looking at parent device '/devices/LNXSYSTM:00/LNXSYBUS:00':
KERNELS=="LNXSYBUS:00"
SUBSYSTEMS=="acpi"
DRIVERS==""
--
looking at parent device '/devices/LNXSYSTM:00':
KERNELS=="LNXSYSTM:00"
SUBSYSTEMS=="acpi"
DRIVERS==""
root@ubu2110:~# cat /sys/devices/LNXSYSTM\:00/LNXSYBUS\:00/PNP0C0D\:00/modalias
acpi:PNP0C0D:
root@ubu2110:~# grep button /lib/modules/5.15.0-140-generic/modules.builtin
kernel/drivers/acpi/button.ko
root@ubu2110:~# dmesg | grep PWR
[ 0.323534] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[ 0.323553] ACPI: button: Power Button [PWRF]
Kasulikud lisamaterjalid
- TODO