ACPI: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
418. rida: 418. rida:
 
* io - 0x70 - 0x71
 
* io - 0x70 - 0x71
 
* driver - rtc_cmos
 
* driver - rtc_cmos
  +
  +
====Klassikaline serial port - COM1====
  +
  +
<pre>
  +
root@pm60-trt:~# systool -b pnp -v -d 00:03
  +
Bus = "pnp"
  +
  +
Device = "00:03"
  +
Device path = "/sys/devices/pnp0/00:03"
  +
id = "PNP0501"
  +
options = "Dependent: 00 - Priority preferred
  +
port 0x3f8-0x3f8, align 0x0, size 0x8, 16-bit address decoding
  +
irq 4 High-Edge
  +
dma <none> 8-bit compatible
  +
Dependent: 01 - Priority acceptable
  +
port 0x3f8-0x3f8, align 0x0, size 0x8, 16-bit address decoding
  +
irq 4 High-Edge
  +
dma <none> 8-bit compatible
  +
Dependent: 02 - Priority acceptable
  +
port 0x2f8-0x2f8, align 0x0, size 0x8, 16-bit address decoding
  +
irq 3 High-Edge
  +
dma <none> 8-bit compatible
  +
Dependent: 03 - Priority acceptable
  +
port 0x3e8-0x3e8, align 0x0, size 0x8, 16-bit address decoding
  +
irq 4 High-Edge
  +
dma <none> 8-bit compatible
  +
Dependent: 04 - Priority acceptable
  +
port 0x2e8-0x2e8, align 0x0, size 0x8, 16-bit address decoding
  +
irq 3 High-Edge
  +
dma <none> 8-bit compatible"
  +
resources = "state = active
  +
io 0x3f8-0x3ff
  +
irq 4
  +
dma disabled"
  +
uevent = "DRIVER=serial"
  +
</pre>
  +
  +
kus x86 arhitektuuril on praktilisel alati kasutusel sellised väärtused
  +
  +
* id - PNP0501
  +
* io - 0x3f8 - 0x3ff
  +
* driver - serial
  +
* option - pikk nimekiri nö võimalikest alternatiivsetest lähenemistest
   
 
===Kasulikud lisamaterjalid===
 
===Kasulikud lisamaterjalid===

Redaktsioon: 8. oktoober 2025, kell 01:01

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]

PnP - klassikaline

Nö klassikalised PnP seadmed asuvad pnp nimelisel siinil

root@pve-02:~# systool -b pnp
Bus = "pnp"

  Device = "00:00"
  Device = "00:01"
  Device = "00:02"
  Device = "00:03"
  Device = "00:04"
  Device = "00:05"

RTC CMOS

Klassikaline RTC CMOS seade

root@pve-02:~# systool -b pnp -v -d 00:01
Bus = "pnp"

  Device = "00:01"
  Device path = "/sys/devices/pnp0/00:01"
    id                  = "PNP0b00"
    options             =
    resources           = "state = active
io 0x70-0x71"
    uevent              = "DRIVER=rtc_cmos"

kus x86 arhitektuuril on praktilisel alati kasutusel sellised väärtused

  • id - PNP0b00
  • io - 0x70 - 0x71
  • driver - rtc_cmos

Klassikaline serial port - COM1

root@pm60-trt:~# systool -b pnp -v -d 00:03
Bus = "pnp"

  Device = "00:03"
  Device path = "/sys/devices/pnp0/00:03"
    id                  = "PNP0501"
    options             = "Dependent: 00 - Priority preferred
  port 0x3f8-0x3f8, align 0x0, size 0x8, 16-bit address decoding
  irq 4 High-Edge
  dma <none> 8-bit compatible
Dependent: 01 - Priority acceptable
  port 0x3f8-0x3f8, align 0x0, size 0x8, 16-bit address decoding
  irq 4 High-Edge
  dma <none> 8-bit compatible
Dependent: 02 - Priority acceptable
  port 0x2f8-0x2f8, align 0x0, size 0x8, 16-bit address decoding
  irq 3 High-Edge
  dma <none> 8-bit compatible
Dependent: 03 - Priority acceptable
  port 0x3e8-0x3e8, align 0x0, size 0x8, 16-bit address decoding
  irq 4 High-Edge
  dma <none> 8-bit compatible
Dependent: 04 - Priority acceptable
  port 0x2e8-0x2e8, align 0x0, size 0x8, 16-bit address decoding
  irq 3 High-Edge
  dma <none> 8-bit compatible"
    resources           = "state = active
io 0x3f8-0x3ff
irq 4
dma disabled"
    uevent              = "DRIVER=serial"

kus x86 arhitektuuril on praktilisel alati kasutusel sellised väärtused

  • id - PNP0501
  • io - 0x3f8 - 0x3ff
  • driver - serial
  • option - pikk nimekiri nö võimalikest alternatiivsetest lähenemistest

Kasulikud lisamaterjalid

  • TODO