搭载Ubuntu系统的华硕主板PRIME Z790-P WIFI的BUG“acpi bios error: failure creating name object“的修复

情况介绍

在华硕主板PRIME Z790-P WIFI下运行ubuntu服务器的时候,出现以下bug:
[ 2160.271294] acpi bios error: failure creating name object [_SB.PCOO.PEG1.PEGP, DSM,USRG], AE_ALREADY_EXISTS(20230628/dsfield-184)
[ 2160.271298]ACPI ErrOr: AE_ALREADY_EXISTS, CreateBufferField failure(20230628/dsw1oad2-477)
2160.271311]ACPI Error: Aborting method _SB.PCOO.PEG1.PEGP._DSM due to previous error (AE _ALREADY_EXISTS)(20230628/psparse-529)

问题根源定位

ACPI BIOS Error (AE_ALREADY_EXISTS)
触发路径: _SB.PC00.PEG1.PEGP._DSM.USRG

硬件关联: PEG1 对应主板第一个 PCIe x16 插槽(通常用于显卡),PEGP 可能关联 PCIe 设备(如显卡/NVMe SSD)的电源管理

本质原因: BIOS 的 ACPI 表定义存在重复对象,与 Linux 内核解析逻辑冲突

分阶段修复方案

阶段 1:紧急修复(抑制错误)
目标: 快速消除日志干扰,确保系统稳定性

  1. 调整内核启动参数
    编辑 GRUB 配置:
sudo vim /etc/default/grub

修改此行(追加参数):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer acpi_mask_gpe=0x6F"

更新 GRUB 并重启:

sudo update-grub && sudo reboot

阶段 2:BIOS 和固件更新
目标: 根除 ACPI 错误,修复硬件兼容性
更新华硕主板 BIOS
当前版本: 1641 → 最新版本(截至 2024.03,最新为 2802)

官网下载: ASUS PRIME Z790-P WIFI BIOS

升级步骤:

将 BIOS 文件(如 PRIME-Z790-P-WIFI-ASUS-2802.CAP)放入 FAT32 U 盘

开机按 Del 进入 BIOS → Advanced Mode → Tool → EZ Flash

选择 U 盘中的文件执行升级

阶段 3:内核与驱动优化
目标: 确保软硬件兼容性

  1. 升级 Linux 内核至 6.5+
sudo apt install linux-image-generic-hwe-22.04-edge
sudo reboot
  1. 手动编译 ACPI 补丁(高级用户)
    若 BIOS 更新后 ACPI 错误仍存在,需修改内核源码:
    下载内核源码:
apt source linux-source-$(uname -r)

修改 drivers/acpi/acpica/dsfield.c,在 acpi_ds_create_buffer_field 函数中添加容错逻辑:

if (status == AE_ALREADY_EXISTS) {
    acpi_os_printf("ACPI: Ignored AE_ALREADY_EXISTS\n");
    return AE_OK;  // 修改为返回成功
}

编译并安装内核:

make -j$(nproc) && sudo make modules_install && sudo make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值