Ubuntu – Can’t install Ubuntu 20.04 on ASUS Tuf a15 (ACPI?)

20.04acpibootdriverskernel

TL;DR: Trying Ubuntu from pendrive works just fine. Installing it, don't. getting a black screen or lacking funcionality.

I've tried installing ubuntu on my new laptop (Asus tuf A15 with nvidia rtx2060) about 23 times, so first, pretty frustrated.

When I boot the pendrive and check "Try Ubuntu", everything works fine. Wifi, trackpad, graphic drivers. But after installation it doesn't.

Had many troubles with nvidia drivers and getting kernel panics (which at this point I just gave up on nvidia drivers, goodbye Tensorflow). The closest thing to a working Ubuntu was:

After installing, before booting, I have to turn off the ACPI on the grub bootloder options (press e on Ubuntu and add acpi=off)

With this, I have no trackpad functionality or battery % showing, and some keyboard functions.
This is the dmesg output I could retrive when not working and login into some tty pressing fn+f2

Tried a a bunch of acpi options (acpi_osi=linux, acpi=stric, acpi=oldboot or whatever) and only acpi=off works

[    2.404697] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length 96/32 exceeds size of target Buffer (96 bits) (20190816/dsopcode-198)
[    2.404729] No Local Variables are initialized for Method [WMNB]
[    2.404733] Initialized Arguments for Method [WMNB]:  (3 arguments defined for method invocation)
[    2.404735]   Arg0:   000000008e11445c <Obj>           Integer 0000000000000000
[    2.404747]   Arg1:   00000000fce64be6 <Obj>           Integer 0000000054494E49
[    2.404753]   Arg2:   000000000ded1ebb <Obj>           Buffer(12) 00 00 00 00 00 00 00 00
[    2.404769] ACPI Error: Aborting method \_SB.ATKD.WMNB due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-529)
[    2.404854] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length 96/32 exceeds size of target Buffer (96 bits) (20190816/dsopcode-198)
[    2.404865] No Local Variables are initialized for Method [WMNB]
[    2.404868] Initialized Arguments for Method [WMNB]:  (3 arguments defined for method invocation)
[    2.404869]   Arg0:   000000000ded1ebb <Obj>           Integer 0000000000000000
[    2.404876]   Arg1:   00000000fce64be6 <Obj>           Integer 0000000043455053
[    2.404881]   Arg2:   000000008e11445c <Obj>           Buffer(12) 00 00 00 00 09 00 00 00
[    2.404895] ACPI Error: Aborting method \_SB.ATKD.WMNB due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-529)
[    2.404970] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length 96/32 exceeds size of target Buffer (96 bits) (20190816/dsopcode-198)
[    2.404981] No Local Variables are initialized for Method [WMNB]
[    2.404984] Initialized Arguments for Method [WMNB]:  (3 arguments defined for method invocation)
[    2.404985]   Arg0:   000000008e11445c <Obj>           Integer 0000000000000000
[    2.404991]   Arg1:   00000000fce64be6 <Obj>           Integer 000000004E554653
[    2.404997]   Arg2:   000000000ded1ebb <Obj>           Buffer(12) 00 00 00 00 00 00 00 00
[    2.405010] ACPI Error: Aborting method \_SB.ATKD.WMNB due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-529)
[    2.405030] asus-nb-wmi asus-nb-wmi: Detected ATK, not ASUSWMI, use DSTS
[    2.405034] asus-nb-wmi asus-nb-wmi: Detected ATK, enable event queue
[    2.405170] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length 96/32 exceeds size of target Buffer (96 bits) (20190816/dsopcode-198)
[    2.405180] No Local Variables are initialized for Method [WMNB]
[    2.405184] Initialized Arguments for Method [WMNB]:  (3 arguments defined for method invocation)
[    2.405185]   Arg0:   000000000ded1ebb <Obj>           Integer 0000000000000000
[    2.405191]   Arg1:   00000000fce64be6 <Obj>           Integer 0000000053564544
[    2.405197]   Arg2:   000000002a7c2a21 <Obj>           Buffer(12) 03 00 01 00 00 00 00 00
[    2.405210] ACPI Error: Aborting method \_SB.ATKD.WMNB due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-529)
[    2.405285] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [IIA3] at bit offset/length 96/32 exceeds size of target Buffer (96 bits) (20190816/dsopcode-198)
[    2.405295] No Local Variables are initialized for Method [WMNB]
[    2.405298] Initialized Arguments for Method [WMNB]:  (3 arguments defined for method invocation)
[    2.405300]   Arg0:   000000002a7c2a21 <Obj>           Integer 0000000000000000
[    2.405306]   Arg1:   00000000fce64be6 <Obj>           Integer 0000000053545344
[    2.405312]   Arg2:   000000000ded1ebb <Obj>           Buffer(12) 18 00 11 00 00 00 00 00
[    2.405325] ACPI Error: Aborting method \_SB.ATKD.WMNB due to previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-529)

Apparently this is a bad ACPI implementation compatible for win only blablabla. My BIOS is the latest one out there.

While trying ouy the uname -a output is
Linux ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

THE QUESTION:
Why does it work while trying out but not after installation? I mean, the functionality is there and works, what is it breaking it?

I need this new notebook to work, don't make me work on windows please!! save a 10 years ubuntu user.

EDIT:
The only way to get it to a working state without ACPI, is installing in compatibility mode, installing 3rd party graphics and updates. Logging in Ubuntu (which glitches all over), getting into a tty, purge all nvidia-* packages and then boot with the acpi=off. No trackpad, battery %, keyboard fn functions (like increase bightness).

There should be something that has to be installed to work…It can't work only in the "Try Ubuntu" phase…

Best Answer

It looks like you need to pass the nomodeset parameter to the Linux kernel. If GRUB works and the menu appears, select the menu entry for Ubuntu (probably the first one) and press e . An editor screen will appear, then find the line starting with linux (just ignore whitespaces), then go to the end of the line and append nomodeset to the line. Now press Ctrl + x or F10 to boot. It should boot properly. After it successfully boots, we need to make these changes permanent. To do that, open a terminal window and execute the following:

gedit admin:///etc/default/grub

After the Text Editor window opens, it will prompt for your password (maybe twice), enter your password (not root password), you'll see the file contents. Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT= and add nomodeset to the value like this:

// Taken from my /etc/default/grub file
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

After you are done, save it and exit. Then execute the following in the terminal:

sudo update-grub

You can restart your PC and everything will be fine. :)

Related Question