When booting up Ubuntu 22.04 (kernel 5.15.0-25), I get the following error in the kernel log:
apr 18 13:22:25 dottie kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_TZ.ETMD], AE_NOT_FOUND (20210730/psargs-330)
apr 18 13:22:25 dottie kernel:
apr 18 13:22:25 dottie kernel: No Local Variables are initialized for Method [_OSC]
apr 18 13:22:25 dottie kernel:
apr 18 13:22:25 dottie kernel: Initialized Arguments for Method [_OSC]: (4 arguments defined for method invocation)
apr 18 13:22:25 dottie kernel: Arg0: 00000000fb231197 <Obj> Buffer(16) 5D A8 3B B2 B7 C8 42 35
apr 18 13:22:25 dottie kernel: Arg1: 0000000025d9a193 <Obj> Integer 0000000000000001
apr 18 13:22:25 dottie kernel: Arg2: 0000000078b55545 <Obj> Integer 0000000000000002
apr 18 13:22:25 dottie kernel: Arg3: 00000000bf92f763 <Obj> Buffer(8) 00 00 00 00 05 00 00 00
apr 18 13:22:25 dottie kernel:
apr 18 13:22:25 dottie kernel: ACPI Error: Aborting method \_SB.IETM._OSC due to previous error (AE_NOT_FOUND) (20210730/psparse-529)
I think this indicates a bug in the ACPI tables (so BIOS?).
I wondered if this might be a bug in Linux instead, but looking at the ACPI tables themselves, it indeed seems like _TZ.ETMD
is declared as external and (in the failing _SB.IETM._OSC
method) written to, but never actually defined:
# acpidump > tables.dump
# acpixtract -a tables.dump
# iasl -d *.dat
# grep ETMD *.dsl
dsdt.dsl: External (_TZ_.ETMD, IntObj)
ssdt2.dsl: External (_TZ_.ETMD, IntObj)
ssdt2.dsl: \_TZ.ETMD = Zero
ssdt2.dsl: \_TZ.ETMD = One
ssdt2.dsl: \_TZ.ETMD = One
I am not entirely sure what the impact of this failure is. I could not find any documentation on this failing _SB.IETM
object using the name or the INTC1040 _HID, but looking around the kernel code, it seems that this _HID loads the int3400_thermal.c
driver, so it is some thermal-related thing. But looking at the code, it seems the failing _OSC
method handles a UUID (b23ba85d-c8b7-3542-88de-8de2ffcfd698) that is not listed in the kernel driver, and I also cannot find the “IDSP” object that the kernel seems to use to detect which UUIDs are supported, so I’m not quite sure about any of this.
Any Framework devs or other users that can shed some light on this?