安装后无法启动,ACPI 错误

Par*_*dhu 13 boot dual-boot acpi

我最近尝试在我的华硕 VivoBook Pro N580GD 上安装了 Windows 10 的情况下设置双启动 Ubuntu 18.04 LTS。

我试过多次重新安装,但每次都出现一堆错误:

[  0.055631] ACPI Error: [_SB_.PCIO.RPO5.PXSX] Namespace lookup failure, AE_NOT_FOUND (20170831/dswload2-191)
[  0.055639] ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (20170831/psobject-252)
[  0.055614] ACPI Error: Method parse/execution failed \_SB_.PCIO.RP04.PXSX, AE_NOT_FOUND (20170831/psparse-550)
[  0.055957] ACPI Error: [_SB_.PCIO.RPO9.PXSX] Namespace lookup failure, AE_NOT_FOUND (20170831/dswload2-191)
[  0.055963] ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (20170831/psobject-252)
[  0.922265] Couidn't get size: 0x800000000000000e
[  0.92228] MODSIGN: COuldn't get UEFI db list

tpm tpm0: A TPM error (378) occured get tpm pcr allocation

genirq: Setting trigger mode 1 for irq 131 failed (intel_gpio_irq_type+0x0/0x140)
Run Code Online (Sandbox Code Playgroud)

正如一些网站所建议的那样,我尝试通过acpi=off在末尾添加一个来修改启动参数,然后出现以下错误:

Couldn't get size: 0x800000000000000e
MODSIGN: Couldn't get UEFI db list
Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
    - Check rootdelay = (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALert! UUID=831a57-400f-4926-97eb-c55a61696e3d does not exist. Dropping to a shell!
Run Code Online (Sandbox Code Playgroud)

此外,当我尝试运行实时 Ubuntu USB 时,我无法在不按下电源按钮的情况下关闭计算机。

我可以从 Grub 启动到恢复模式。

如果您需要任何信息来帮助我解决问题,请告诉我。我对 Linux 没有太多经验,所以我大多无法理解发生了什么。

mar*_*com 7

为了帮助所有人,

首先解释为什么在 Linux 中会出现 ACPI 错误,以及为什么它通常可以被忽略

其次,如果像我的 Hp OmenX Bleeding Edge 笔记本电脑一样在启动时发生数百个错误,我将向您展示一个让 Grub(启动加载程序)忽略它们并正常启动的技巧

第三,我在刚刚升级内核时发布此消息,并且我所有的“错误:引用:ACPI:3400 不受支持的事件”都消失了,我将向您展示如何升级内核。

ACPI错误 - 微软的错!!

  • 它应该是任何操作系统都可以正确实施的标准。但是,在典型的 Microsoft 方式中,MS 操作系统不遵循或正确实施 ACPI 标准。相反,MS 为主板制造商提供了他们自己不正确实施的 ACPI 代码,以包含在主板 BIOS/UEFI 中。该代码在 MS Windows 上运行良好,但对于其他操作系统(如 linux)可能会出现问题。

    由于 MS 的市场主导地位,MS 错误的 ACPI 实现已成为事实上的行业标准。因此,Linux 和其他非 MS 操作系统必须从 MS 对有缺陷的 ACPI 实现进行逆向工程。这就是为什么您可以在 Linux 中看到与 ACPI 相关的功能(如挂起到 RAM、休眠等)的问题。

  • 显然,某些较新的 Linux 内核中的 ACPI 相关代码在某些主板上的典型 BIOS/UEFI ACPI 实现中存在问题,这就是我们收到这些错误消息的原因。即使我在启动过程开始时收到这些错误消息,我也没有遇到挂起/恢复或任何其他与 ACPI 相关的问题。

  • 我已经看到建议不要通过禁用 UEFI 在 BIOS 传统模式下运行,而是在 UEFI 模式下运行,而不是禁用安全启动。我自己并没有为此烦恼,因为我已经安装了几个带有 BIOS 传统模式的操作系统,如果我想切换到 UEFI 模式,我必须重新安装所有东西。(UEFI 模式非常适合我的安装)

惠普/ACPI 错误

ACPI - 高级配置和电源接口

为避免看到错误“acpi int3400 unsupported event”错误...

在文件中 /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"将参数添加到行中 acpi=offnoacpi acpi=strict

因此,在您编辑之后,它看起来像这样

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=strict"
Run Code Online (Sandbox Code Playgroud)

对我来说,acpi=strict效果最好。您也可以尝试acpi=force,并pnpacpi=off为其他 HP Spector 用户工作。

要编辑文件,您需要使用 root 权限打开它,例如通过运行

sudo -H gedit /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

编辑后,通过运行更新配置

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

并重新生成 initrd:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

然后重启看看效果

最新的内核 4.19.5 消除了我所有有问题的 acpi:3400 错误

安装 UKUU:

UKUU - Ubuntu 内核更新实用程序:管理和安装最新的 Bleeding Edge 内核

sudo add-apt-repository ppa:teejee2008/ppa
sudo apt update && sudo apt install ukuu
Run Code Online (Sandbox Code Playgroud)

在运行 UKUU 之后,它会提供安装或卸载任何最新的(稳定的或不太稳定的)内核。

如果新内核不能像您希望的那样工作,它总是会保留您最后一个工作内核作为备份。


Par*_*dhu 3

如果有人仍然遇到这个问题,问题出在我的显卡驱动程序(Nouveau)上。我使用禁用它modprobe,整个事情开始工作。

在 grub 屏幕上,按e并在“Linux”行末尾添加以下内容:

modprobe.blacklist=nouveau 
Run Code Online (Sandbox Code Playgroud)