For those who wonder what an OEM like Lenovo actually ships in their uEFI firmware, and what Microsoft Windows simply works around and helps them hide, take a gander at the Linux kernel’s log below.
Linux works around the bugs too, but Windows actually hides them from you!
Here’s an Ubuntu bug and what a Ubuntu developer has to say about at least some of this. (The person in question has a Lenovo Legion Y540-15IRH according to his DMI Decode dump. Which suggests these errors affect more than one of their product lines.)
But they slapped an Ubuntu Certified label on this ThinkBook 15 Gen2 ITL model I use, and other than this damned mess I had to sort out with the AX210 Wifi chip, it’s an okay laptop.
I just wish it wouldn’t shove all of this garbage in my face every time I boot it up. It appears right before the Debian bootsplash, and although LOL NO VO Ubuntu Certified this thing with some sort of Linux 5.6-OEM kernel that Ubuntu 20.04 autodetects, I can’t imagine that it could work very well with that kernel. The Wifi is still touch and go and you have to put it in AC only mode and cherry pick Linux 5.10.70 out of Debian-Proposed (or wait until Debian 11.1 to install it, but you can probably make it work okay until you can cherry pick the newer kernel. Just remember to turn off fast boot in Windows and shut the system down to fully clear the Windows driver out of the chipset’s memory first!).
Now, I will directly quote the Ubuntu developer, Alex Hung:
“There are two types of ACPI errors observed: AE_ALREADY_EXISTS and AE_NOT_FOUND
The former, AE_ALREADY_EXISTS, usually happens
1) when BIOS loads multiple SSDTs (in /sys/firmware/acpi/tables) that contains the objects with the same names (and usually the same functions too). Naming conflicts prevent kernel to load all of them correctly.
2) BIOS’s ACPI methods are not serialized and multiple calls the same methods occur.
I would guess we are seeing scenario 1 here. They are usually harmless because a copy of working SSDT is loaded while duplicated ones are discarded.
The later, AE_NOT_FOUND, is the opposite. This occurs when BIOS does NOT load SSDTs and therefore kernel is not able to get information and perform accordingly.
Neither types of error messages can be fixed without BIOS fixes.
Fortunately, all of the failing ACPI methods are optional, and there are good chances that Linux / Ubuntu will work without them. There are three types of devices *might* be affected according to the error messages:
1. USB (\_SB.PCI0.XHC.RHUB…)- but USB ports and devices should just-work without BIOS code, which are usually for OEM customization.
2. Touchpad (\_SB.PCI0.I2Cx…) – error messages are reported for i2c-2 and i2c-3, but it is likely the touchpad is connected to i2c-1. Please check whether you are experience problems with your touchpad.
3. Switchable graphics (\_SB.PCI0.PEG0…)- but error messages are “AE_ALREADY_EXISTS”. lspci also shows no discrete VGA present on this system, and nothing to worry about.”
In other words:
Lenovo has made a damned mess, but left it there because of reasons, including the fact that operating systems don’t generally use uEFI drivers for anything because operating systems have their own, they perform better, and if I’m remembering the gist of this, once you exit boot services, you can’t use the ones from the system firmware anyway. Everything on this laptop works fine, including the HDMI port. The only exception is the fingerprint scanner built into the power button, but who cares?
Errors for touchpad devices that don’t even exist where it’s printing the error message for? My touchpad works fine. So, whatever I guess. I use a bluetooth mouse anyway.
"Regardless, I think Techrights needs to add this to why uEFI is no good."Switchable (hybrid) graphics errors. I don’t have hybrid graphics on this system. In fact, when laptops usually ship with that, they tend to use an Nvidia “card” for the high performance chip, and I’ve had enough of Nvidia’s proprietary driver for 10 life times already. In fact, there _may_ be a BIOS option regarding hybrid graphics in my firmware setup. I may look there at some point and see if I can shut it up. Lenovo may have just left the setting on/off for laptops they ship like that?
Of course, some people on Gigabyte motherboards, as well as Dell and Acer laptops, seem to have these problems and some that actually affect the operation of the computer. So I guess Lenovo isn’t the absolute worst.
Regardless, I think Techrights needs to add this to why uEFI is no good. These are the same class of problems, and then some, that the buggiest of Legacy PC BIOS systems were known to sometimes have, and we were lied to and told that Microsoft and Intel would clean up that mess with uEFI, and they obviously didn’t. Windows is just the fridge that the equally proverbial cockroaches hide under.
However harmless some of these errors are, in practice, to a person who didn’t know better, they make Linux appear broken when it’s not.
But this behavior isn’t new at Microsoft.
What the user is supposed to do is feel uncomfortable, and when he has bugs, suspect that the problem is [the competitor’s product], and then go buy [our product].
Former Microsoft Senior Vice President Brad Silverberg
Regardless, here’s the eyesore I get to read about on my screen when my system is booting. Thanks, Lenovo. ⬆
[ 0.175571] ACPI: Added _OSI(Module Device)
[ 0.175571] ACPI: Added _OSI(Processor Device)
[ 0.175571] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.175571] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.175571] ACPI: Added _OSI(Linux-Dell-Video)
[ 0.175571] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 0.175571] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
[ 0.223165] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS01._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223171] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223173] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223174] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS01._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223177] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223178] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223180] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS02._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223183] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223184] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223185] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS02._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223187] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223188] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223190] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS03._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223192] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223194] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223195] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS03._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223197] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223198] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223200] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS04._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223202] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223204] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223205] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.TXHC.RHUB.SS04._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223207] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223208] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223210] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS01._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223212] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223213] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223214] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS01._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223217] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223218] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223337] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS02._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223340] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223341] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223342] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS02._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223344] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223346] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223347] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS03._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223349] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223351] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223352] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS03._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223354] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223355] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223407] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS04._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223409] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223411] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223412] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS04._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223414] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223415] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223417] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS05._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223419] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223421] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223422] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS05._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223424] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223425] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223427] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS06._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223429] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223430] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223431] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS06._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223433] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223435] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223436] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS07._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223438] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223440] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223441] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS07._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223443] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223444] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223446] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS08._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223448] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223450] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223450] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS08._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223453] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223454] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223572] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS09._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223574] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223576] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223577] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS09._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223579] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223580] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223698] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS10._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223700] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223702] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223703] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.HS10._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223705] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223706] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223824] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS01._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223826] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223827] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223828] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS01._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223830] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223832] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223833] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS02._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223836] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223837] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223838] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS02._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223840] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223842] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223843] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS03._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223845] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223847] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223848] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS03._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223850] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223851] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223853] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS04._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223855] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223856] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223857] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS04._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223859] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223861] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223862] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS05._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223864] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223866] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223867] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS05._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223869] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223870] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223872] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS06._UPC], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223874] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223875] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.223876] ACPI BIOS Error (bug): Failure creating named object [_SB.PC00.XHCI.RHUB.SS06._PLD], AE_ALREADY_EXISTS (20200925/dswload2-326)
[ 0.223878] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-220)
[ 0.223880] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0014)
[ 0.224477] ACPI BIOS Error (bug): Could not resolve symbol [_SB.PC00.I2C0.TPD0], AE_NOT_FOUND (20200925/dswload2-162)
[ 0.224480] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200925/psobject-220)
[ 0.224481] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0010)
[ 0.224500] ACPI BIOS Error (bug): Could not resolve symbol [_SB.PC00.I2C0.TPL1], AE_NOT_FOUND (20200925/dswload2-162)
[ 0.224502] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200925/psobject-220)
[ 0.224503] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0010)
[ 0.225016] ACPI BIOS Error (bug): Could not resolve symbol [_SB.PCI0], AE_NOT_FOUND (20200925/dswload2-162)
[ 0.225018] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200925/psobject-220)
[ 0.225020] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x0010)
[ 0.225234] ACPI: 19 ACPI AML tables successfully acquired and loaded
[ 0.225830] ACPI Error: AE_NOT_FOUND, While resolving a named reference package element – ^SPI1.SPFD.CVFD (20200925/dspkginit-438)
[ 0.225833] ACPI Error: AE_NOT_FOUND, While resolving a named reference package element – ^SPI1.SPFD.CVFD (20200925/dspkginit-438)
[ 0.225836] ACPI Error: AE_NOT_FOUND, While resolving a named reference package element – ^XHCI.RHUB.HS04.VI2C (20200925/dspkginit-438)
[ 0.225845] ACPI Error: AE_NOT_FOUND, While resolving a named reference package element – ^XHCI.RHUB.HS04.VI2C (20200925/dspkginit-438)