ACPI BIOS Error (bug) Could not resolve symbol
On certain systems, error messages appear during the boot process of the Linux kernel ACPI BIOS Error (bug) Could not resolve symbol that can also be called up via dmesg. In this article, we show background information and approaches how to solve problems of the ACPI table.
Example of error messages in dmesg
The following output is taken from a test system with N5105 CPU (system is running under Debian 11 with test kernel 5.18:
root@debian-11:~# dmesg | grep -C 1 "ACPI BIOS" [ 0.212498] ACPI: Enabled 6 GPEs in block 00 to 7F [ 0.226451] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 0.226461] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.HS03._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) [ 0.226520] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 0.226526] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.HS04._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) [ 0.227178] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 0.227184] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.SS01._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) [ 0.227309] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 0.227315] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.SS02._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) -- [ 1.407003] hub 1-0:1.0: 8 ports detected [ 1.407515] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 1.407545] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.HS03._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) [ 1.407610] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 1.407631] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.HS04._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) -- [ 1.409096] hub 2-0:1.0: 6 ports detected [ 1.409162] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 1.409185] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.SS01._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529) [ 1.409251] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.UBTC.RUCC], AE_NOT_FOUND (20211217/psargs-330) [ 1.409552] ACPI Error: Aborting method \_SB.PC00.XHCI.RHUB.SS02._PLD due to previous error (AE_NOT_FOUND) (20211217/psparse-529)
DSDT and SSDT

DSDT (Differentiated System Description Table) is a part of the ACPI-specification, a concrete part of the system fixed description. The DSDT consists of a "system description table header", followed by data in "Definition Block format". DSDT provides information on supported power supply events in a certain system. ACPI-tables are provided by the manufacturers of the hardware.
The SSDT (Secondary System Description Table) is a continuation of the DSDT: There may be more SSDTs available. After OSPM has loaded the DSDT to create the ACPI-namespace, every SSDT that is stated in a clear OEM-table-ID is loaded in the stated RSDT/XSDT order. Additional tables can only add data, but cannot overwrite data from former tables. Additional tables can only add data; they cannot overwrite data from previous tables. This allows the OEM to provide basic support in one table and add minor system options in other tables.
Adjust DSDT
Perform the following steps for adjusting the DSDT. [2]
Extract the binary ACPI-tables:
# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
Divide the ACPI-table in a .dsl-file:
$ iasl -d dsdt.dat
Try to create a Hex-AML-table (in C) out of the .dsl-file:
$ iasl -tc dsdt.dsl
Perform then the required adjustments. (Hint: Adjustments for the above shown example are not yet shown here. This paragraph is still in progress.)
Increase the OEM-version. Otherwise, the kernel will not use the changed ACPI-table. For example, before the OEM-version gets increased: DefinitionBlock ("DSDT.aml", "DSDT", 2, "INTEL ", "TEMPLATE", 0x00000000)
- or:
DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072009)
After increasement of OEM-version:
DefinitionBlock ("DSDT.aml", "DSDT", 2, "INTEL ", "TEMPLATE", 0x00000001)
- or in the second example:
DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072010)
Recreate the Hex-AML-table, after you have corrected all mistakes and increased the OEM-version:
$ iasl -tc dsdt.dsl
Usage of the changed code with CPIO archive
Hints:
- After every BIOS-update, you have to repair/adjust the DSDT again and reperform those steps!
- For this method, the kernel configuration ACPI_TABLE_UPGRADE=y must be activated (see /boot/config...).
Create the following folder structure:
$ cp dsdt.aml ssdt1.aml kernel/firmware/acpi
In the same folder where the newly created kernel/ folder is located, run the following command:
$ find kernel | cpio -H newc --create > acpi_override
This creates the CPIO archive containing the fixed ACPI tables. Copy the archive to the boot directory.
# cp acpi_override /boot
Add the following entry under # cp acpi_override /boot in the /etc/default/grub file:
GRUB_EARLY_INITRD_LINUX_CUSTOM=acpi_override
Update the Grub configuration:
# update-grub
Verify, if the new DSDT is used
Perform a restart and verify if the adjusted DSDT version is displayed, for example:
root@debian-11:~# dmesg | grep DSDT [ 0.018759] ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x46898] [ 0.018868] ACPI: Table Upgrade: override [DSDT-ALASKA- A M I ] [ 0.018870] ACPI: DSDT 0x00000000746D8000 Physical table override, new table: 0x0000000071A3C000 [ 0.018873] ACPI: DSDT 0x0000000071A3C000 046898 (v02 ALASKA A M I 01072010 INTL 20200925) [ 0.018949] ACPI: Reserving DSDT table memory at [mem 0x71a3c000-0x71a82897]
The increased version number 01072010 confirms that the adjusted DSDT is used.
More information
- Upgrading ACPI tables via initrd (docs.kernel.org/admin-guide/acpi)
- How to identify the Windows version in ACPI by using _OSI (docs.microsoft.com)
- Finding the ACPI path (dortania.github.io/Getting-Started-With-ACPI)
- More articles about ACPI notifications:
- ACPI errors during boot (forums.linuxmint.com)
- ACPI Error _CPC not found (bugs.launchpad.net)
- Bug 216390 - Could not resolve symbol [\_SB.PCI0.LPC0.EC0.AC._PSR.AFN4, AE_NOT_FOUND (20220331/psargs-330)] (bugzilla.kernel.org)
References
Einzelnachweise
- ↑ ACPI and UEFI Specifications (uefi.org)
- ↑ DSDT (wiki.archlinux.org)
|
Author: Werner Fischer Werner Fischer, working in the Knowledge Transfer team at Thomas-Krenn, completed his studies of Computer and Media Security at FH Hagenberg in Austria. He is a regular speaker at many conferences like LinuxTag, OSMC, OSDC, LinuxCon, and author for various IT magazines. In his spare time he enjoys playing the piano and training for a good result at the annual Linz marathon relay.
|
|
Translator: Alina Ranzinger Alina has been working at Thomas-Krenn.AG since 2024. After her training as multilingual business assistant, she got her job as assistant of the Product Management and is responsible for the translation of texts and for the organisation of the department.
|


