如何查找特定 acpi 设备的 acpi 驱动程序/解决内核暂停错误

如何查找特定 acpi 设备的 acpi 驱动程序/解决内核暂停错误

我正在跟进https://wiki.ubuntu.com/DebuggingKernelSuspend它说我必须重新启动系统

sudo sh -c "sync && echo 1 > /sys/power/pm_trace && pm-suspend"

hash matches并在重启后在 dmesg 中找到显示的行(这是什么意思?)

嗯,我发现了两个:

[    3.583591] ima: Allocated hash algorithm: sha1
[    3.593050] input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
[    3.638808]   Magic number: 0:929:176
[    3.638867] acpi device:39: hash matches
[    3.638893] acpi device:0c: hash matches
[    3.639073] rtc_cmos 00:01: setting system clock to 2016-01-01 12:09:51 UTC (1451650191)

看起来问题出在这两个 acpi 设备上。文章没有说明在这种情况下该怎么做。如果问题出在 PCIe 设备上,我可以简单地卸载其模块,但在这种情况下我该怎么办?acpi 设备有模块吗?如果有,如何找到它的模块?哈希匹配是什么意思?

更新:

这是我的lspci

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
3b:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961

更新:

[lz@dom0 tmp]$ lspci -t
-[0000:00]-+-00.0
           +-02.0
           +-14.0
           +-14.2
           +-15.0
           +-15.1
           +-16.0
           +-1c.0-[01]----00.0
           +-1c.4-[02-3a]--
           +-1d.0-[3b]----00.0
           +-1e.0
           +-1f.0
           +-1f.2
           +-1f.3
           \-1f.4

更新:

dmesg | grep -i acpi

0.000000] Xen: [mem 0x000000006e503000-0x000000006e503fff] ACPI NVS
[    0.000000] Xen: [mem 0x000000007a3d9000-0x000000007a444fff] ACPI data
[    0.000000] Xen: [mem 0x000000007a445000-0x000000007abfefff] ACPI NVS
[    0.000000] efi:  ESRT=0x7b226f18  ACPI=0x7a3ee000  ACPI 2.0=0x7a3ee000  SMBIOS=0x7b210000  SMBIOS 3.0=0x7b20f000 
[    1.069765] ACPI: Early table checksum verification disabled
[    1.069772] ACPI: RSDP 0x000000007A3EE000 000024 (v02 ALASKA)
[    1.069782] ACPI: XSDT 0x000000007A3EE0B0 0000E4 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069821] ACPI: FACP 0x000000007A414898 000114 (v06 ALASKA A M I    01072009 AMI  00010013)
[    1.069889] ACPI: DSDT 0x000000007A3EE228 02666B (v02 ALASKA A M I    01072009 INTL 20160422)
[    1.069903] ACPI: FACS 0x000000007ABE6C40 000040
[    1.069916] ACPI: APIC 0x000000007A4149B0 000084 (v03 ALASKA A M I    01072009 AMI  00010013)
[    1.069930] ACPI: FPDT 0x000000007A414A38 000044 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069943] ACPI: MCFG 0x000000007A414A80 00003C (v01 ALASKA A M I    01072009 MSFT 00000097)
[    1.069957] ACPI: FIDT 0x000000007A414AC0 00009C (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.069970] ACPI: MSDM 0x000000007A414B60 000055 (v03 ALASKA A M I    01072009 AMI  00010013)
[    1.069984] ACPI: SSDT 0x000000007A414BB8 003154 (v02 SaSsdt SaSsdt   00003000 INTL 20160422)
[    1.070007] ACPI: HPET 0x000000007A417D10 000038 (v01 INTEL  KBL-ULT  00000001 MSFT 0000005F)
[    1.070021] ACPI: SSDT 0x000000007A417D48 000E3B (v02 INTEL  Ther_Rvp 00001000 INTL 20160422)
[    1.070034] ACPI: SSDT 0x000000007A418B88 0006BB (v02 INTEL  xh_OEMBD 00000000 INTL 20160422)
[    1.070048] ACPI: UEFI 0x000000007A419248 000042 (v01 INTEL  EDK2     00000002      01000013)
[    1.070062] ACPI: SSDT 0x000000007A419290 000EDE (v02 CpuRef CpuSsdt  00003000 INTL 20160422)
[    1.070075] ACPI: LPIT 0x000000007A41A170 000094 (v01 INTEL  KBL-ULT  00000000 MSFT 0000005F)
[    1.070089] ACPI: WSMT 0x000000007A41A208 000028 (v01 INTEL  KBL-ULT  00000000 MSFT 0000005F)
[    1.070102] ACPI: SSDT 0x000000007A41A230 00029F (v02 INTEL  sensrhub 00000000 INTL 20160422)
[    1.070116] ACPI: SSDT 0x000000007A41A4D0 003002 (v02 INTEL  PtidDevc 00001000 INTL 20160422)
[    1.070130] ACPI: DBGP 0x000000007A41D4D8 000034 (v01 INTEL           00000002 MSFT 0000005F)
[    1.070143] ACPI: DBG2 0x000000007A41D510 000054 (v00 INTEL           00000002 MSFT 0000005F)
[    1.070157] ACPI: BGRT 0x000000007A41D568 000038 (v01 ALASKA A M I    01072009 AMI  00010013)
[    1.070171] ACPI: RMAD 0x000000007A41D5A0 000114 (v01 INTEL  KBL      00000001 INTL 00000001)
[    1.070185] ACPI: SSDT 0x000000007A41D6B8 00054D (v01 TbtGfx TbtGfx   00001000 INTL 20160422)
[    1.070198] ACPI: TPM2 0x000000007A41DC08 000034 (v03        Tpm2Tabl 00000001 AMI  00000000)
[    1.070212] ACPI: ASF! 0x000000007A41DC40 0000A0 (v32 INTEL   HCG     00000001 TFSM 000F4240)
[    1.070249] ACPI: Local APIC address 0xfee00000
[    2.173665] ACPI: PM-Timer IO Port: 0x1808
[    2.173672] ACPI: Local APIC address 0xfee00000
[    2.173707] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    2.173708] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    2.173710] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    2.173711] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    2.173762] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    2.173765] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    2.173769] ACPI: IRQ0 used by override.
[    2.173771] ACPI: IRQ9 used by override.
[    2.173780] Using ACPI (MADT) for SMP configuration information
[    2.173784] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    2.352646] ACPI: Core revision 20180810
[    2.371112] ACPI BIOS Warning (bug): Incorrect checksum in table [BGRT] - 0xDC, should be 0x84 (20180810/tbprint-177)
[    2.379908] PM: Registering ACPI NVS region [mem 0x6e503000-0x6e503fff] (4096 bytes)
[    2.379908] PM: Registering ACPI NVS region [mem 0x7a445000-0x7abfefff] (8101888 bytes)
[    2.380709] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    2.380710] ACPI: bus type PCI registered
[    2.459664] ACPI: Added _OSI(Module Device)
[    2.459664] ACPI: Added _OSI(Processor Device)
[    2.459665] ACPI: Added _OSI(3.0 _SCP Extensions)
[    2.459666] ACPI: Added _OSI(Processor Aggregator Device)
[    2.459667] ACPI: Added _OSI(Linux-Dell-Video)
[    2.459667] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    2.499998] ACPI: 8 ACPI AML tables successfully acquired and loaded
[    2.505360] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    2.511690] ACPI: Dynamic OEM Table Load:
[    2.511696] ACPI: SSDT 0xFFFF88818180E800 0006F6 (v02 PmRef  Cpu0Ist  00003000 INTL 20160422)
[    2.512125] ACPI: \_PR_.CPU0: _OSC native thermal LVT Acked
[    2.513777] ACPI: Dynamic OEM Table Load:
[    2.513781] ACPI: SSDT 0xFFFF888180CE5C00 0003FF (v02 PmRef  Cpu0Cst  00003001 INTL 20160422)
[    2.514667] ACPI: Dynamic OEM Table Load:
[    2.514671] ACPI: SSDT 0xFFFF888180F43800 00065C (v02 PmRef  ApIst    00003000 INTL 20160422)
[    2.515347] ACPI: Dynamic OEM Table Load:
[    2.515351] ACPI: SSDT 0xFFFF888180D50600 00018A (v02 PmRef  ApCst    00003000 INTL 20160422)
[    2.516841] ACPI: EC: EC started
[    2.516842] ACPI: EC: interrupt blocked
[    2.516872] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as first EC
[    2.516873] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x50, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    2.516874] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions
[    2.516875] ACPI: Interpreter enabled
[    2.516908] ACPI: (supports S0 S3 S5)
[    2.516909] ACPI: Using IOAPIC for interrupt routing
[    2.516948] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    2.518072] ACPI: Enabled 7 GPEs in block 00 to 7F
[    2.521961] ACPI: Power Resource [WRST] (on)
[    2.522316] ACPI: Power Resource [WRST] (on)
[    2.522680] ACPI: Power Resource [WRST] (on)
[    2.523031] ACPI: Power Resource [WRST] (on)
[    2.523381] ACPI: Power Resource [WRST] (on)
[    2.523735] ACPI: Power Resource [WRST] (on)
[    2.524082] ACPI: Power Resource [WRST] (on)
[    2.524542] ACPI: Power Resource [WRST] (on)
[    2.524902] ACPI: Power Resource [WRST] (on)
[    2.525259] ACPI: Power Resource [WRST] (on)
[    2.525610] ACPI: Power Resource [WRST] (on)
[    2.525970] ACPI: Power Resource [WRST] (on)
[    2.526323] ACPI: Power Resource [WRST] (on)
[    2.526633] ACPI: Power Resource [WRST] (on)
[    2.526983] ACPI: Power Resource [WRST] (on)
[    2.527330] ACPI: Power Resource [WRST] (on)
[    2.527684] ACPI: Power Resource [WRST] (on)
[    2.529007] ACPI: Power Resource [WRST] (on)
[    2.529360] ACPI: Power Resource [WRST] (on)
[    2.529716] ACPI: Power Resource [WRST] (on)
[    2.542041] ACPI: Power Resource [FN00] (off)
[    2.542129] ACPI: Power Resource [FN01] (off)
[    2.542211] ACPI: Power Resource [FN02] (off)
[    2.542294] ACPI: Power Resource [FN03] (off)
[    2.542378] ACPI: Power Resource [FN04] (off)
[    2.543548] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    2.543553] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    2.543596] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[    2.562396] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562462] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 *10 11 12 14 15)
[    2.562525] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562588] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562655] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562718] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562779] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.562841] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 14 15)
[    2.563595] ACPI: EC: interrupt unblocked
[    2.563621] ACPI: EC: event unblocked
[    2.563639] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x50, EC_CMD/EC_SC=0x66, EC_DATA=0x62
[    2.563640] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions and events
[    2.563765] ACPI: bus type USB registered
[    2.580383] PCI: Using ACPI for IRQ routing
[    2.627863] pnp: PnP ACPI init
[    2.628141] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.628280] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[    2.628317] system 00:02: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    2.629513] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.629566] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.629937] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.631187] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.632238] pnp: PnP ACPI: found 7 devices
[    3.392469] ACPI: AC Adapter [AC0] (on-line)
[    3.392539] ACPI: Lid Switch [LID0]
[    3.392581] ACPI: Sleep Button [SLPB]
[    3.392621] ACPI: Power Button [PWRB]
[    3.392663] ACPI: Power Button [PWRF]
[    3.455097] ACPI: Thermal Zone [TZ00] (28 C)
[    3.455324] ACPI: Thermal Zone [TZ01] (30 C)
[    3.461779] hpet_acpi_add: no address or irqs in _CRS
[    3.566006] battery: ACPI: Battery Slot [BAT0] (battery present)
[    3.644076] acpi LNXCPU:06: hash matches
[    5.082551] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   16.887708] xen_acpi_processor: Uploading Xen processor PM info

更新:

wifi/以太网有问题?没有

你的电池/电源运行正常吗?非常好

您是否连接了外部 USB 设备?没有

你有没有注意到其他问题?什么都没有

你的 BIOS 有更新吗?我要安装 Windows 并检查,这需要一段时间

答案1

问题是什么?

输出中有一行dmesg非常引人注目。即:

[    2.543596] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM

主动状态电源管理或高级物理治疗师是挂起过程所依赖的省电功能所必需的。此问题已报告这里. 以下引文来自发射台几乎就是您需要知道的内容。

当内核运行固件中的根 PCI 桥 _OSC 控制方法时,会出现此错误消息,并且执行失败,这可能是由于固件中的错误或可能不存在。因此,内核无法确定设备支持的功能或提供的功能(由固件指定),因此必须禁用 PCIe ASPM(活动状态电源管理)。

不启用主动状态电源管理的缺点是机器的电源效率较低,但是,可以使用内核启动参数“pcie_aspm=force”强制启用此功能,但强制启用此功能可能会导致系统锁定。


您为什么会遇到这个问题?

您的笔记本电脑似乎是为使用 Windows 操作系统而制造的,尽管 Ubuntu 和其他 Linux 发行版会模仿 Windows 操作系统对 BIOS 的调用,但有时此交易在另一端会失败,从而发生此类问题。

由此引起的问题可能包括暂停问题、WiFi、以太网、电池、硬盘、SSD 等。因此,我在上面发表了评论:

您的 wifi/以太网有问题吗?您的电池/电源是否正常?您是否连接了外部 USB 设备?您是否注意到其他问题?

其中一些问题在某些 Linux 内核中出现,而在其他内核中消失。它们可能有所不同,但除非系统 BIOS 和内核之间的通信得到修复,否则不太可能完全消失。理想的修复方法是更新 BIOS 来解决 ASPM。


如何解决这个问题?

我建议按以下顺序采取以下解决方案,直到解决此问题:

  1. 将你的 Ubuntu 更新到较新的版本。较新的内核可能对你的 BIOS 有更好的支持。
  2. 更新您的 BIOS。较新的 BIOS 版本可能能够更好地与您的操作系统进行通信。
  3. 在 GRUB 启动菜单中按e并尝试内核启动参数pcie_aspm=force。请参阅这个答案关于如何添加启动参数。

答案2

我的系统有一个 Intel Thunderbolt 控制器,与您的一个 acpi 匹配相同:

$ lspci | grep 39
39:00.0 USB controller: Intel Corporation DSL6340 USB 3.1 Controller [Alpine Ridge]

大约一年前,我的暂停/恢复功能坏了,所以我不得不创建这个脚本:

#!/bin/bash

# Original script was using /bin/sh but shellcheck reporting warnings.

# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once

# DATE: Oct 28 2018.

# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998

TMPLIST=/tmp/xhci-dev-list

# Original script was: case "${1}" in hibernate|suspend)

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac

使用以下方式创建文件:sudo -H gedit /lib/systemd/system-sleep/custom-xhci_hcd

将上述代码复制并粘贴到文件中,保存文件并退出gedit

使用将其标记为可执行sudo chmod a+x /lib/systemd/system-sleep/custom-xhci_hcd

重启。

相关内容