Ubuntu – Why won’t the HP Envy x360 laptop with Ryzen 7 3700U boot Ubuntu live CD

amd-ryzenboothpsystem-installation

I recently bought an HP Envy x360 with a

  • Ryzen 7 3700U processor,
  • 16GB of RAM and a
  • 512GB NVME SSD.

I want to install Linux on it, but both Ubuntu, Manjaro, and plain Arch linux won't boot. I can get to the grub menu, but once I select the option to boot, the screen goes black and nothing happens.

By the way, I'm trying to boot Ubuntu 19.04, Manjaro 18.04, and Arch 08.01.2019 and yes, I've disabled Secure Boot already.

Any ideas?
Is it possibly an issue with the kernel version? Or maybe a boot argument I need to pass through grub?

Best Answer

[The below is valid as of Aug 2019. It seems it is valid for systems with the new Ryzen 3000U (not to be confused with various probems on systems with Ryzen 2000U). New HP, DELL and probably Lenovo devices are affected by this BIOS bug. This is bug in BIOS, not Linux kernel. This might be fixed with kernels coming with Ubuntu 19.10]

Yes, I had the same problem with brand new HP ENVY x360 with Ryzen 7 3700U. Thanks to HP ingenious engineering, the BIOS has messed-up ACPI configuration tables.

Note: DO NOT delete pre-installed windows. You will need them to extract ACPI tables from your notebook's BIOS. Because Ubuntu in non-ACPI mode cannot see ACPI tables in BIOS, thus cannot extract them.

1) Simple solution: Boot ubuntu with turned off LAPIC and ACPI support (for me, olny Ubuntu 18.04.0 worked, no other version can boot as it seems. You can try other distro versions with other kernel versions):

  • In your BIOS, enable "Legacy support"
  • With your USB drive, interrupt POST process during HP logo by pressing F9. You should get to the blue Boot BIOS boot devices screen
  • Select "USB Device - 0.00" ( so no UEFI!)
  • You should now get booted to the violet Ubuntu boot screen, with a keyboard icon at the bottom. This is legacy (no UEFI) boot screen.
  • In Ubuntu boot menu, press F6 and change your boot paramenetrs to "nolapic acpi=off i8042.nopnp"

This should boot (and also install) Ubuntu, but "half" of the HW support (including CPU multicore support) is disabled with these settings. Still, it should get your Ubuntu booted and installed at least...

2) Complicated - but preferred and long term - solution (simplified): boot kernel with modified ACPI configuration in order to enable ACPI mode in Ubuntu:

  • In Windows, extract your ACPI tables from BIOS and store them somewhere safe
  • Decompile extracted FACP ACPI config table, modify value "reduced hardware support" from 1 to 0
  • Recompile your modified FACP table back to binary FACP.AML format
  • Create CPIO archive with this FACP.aml and provide it to your initrd kernel.

This should make your kernel boot with modified ACPI configuration, and full ACPI enabled. This is required to use a full potential of the laptop. This trick will also work on kernels 5.x.

It is ok to go for option 1), then once installed on SSD, you can try option 2) and update your installed kernel(s) with modified ACPI configs and remove the "nolapic acpi=off" boot modifiers to see if it worked :)

In detail, the above is discussed here: https://bugzilla.kernel.org/show_bug.cgi?id=203431

Note1: It seems that (probably all?) kernels 5.x have already attached cpio archive with "AuthenticAMD.bin" firmware. This file must be preserved within cpio archive together with you modified FACP.aml, otherwise kernels 5.x will crash booting even with modified FACP.aml.

Note2: Touchscreen and (almost) full ACPI support works on my device ONLY when I have "Legacy support = Enabled" in BIOS and Ubuntu is installed (and booted) in UEFI mode.

Note3: Kernels 5.2.x and newer boot with these modifications too, but RealTek wifi driver support is being re-worked in new kernels now, so not working on these new HP ENVY devices for now...

What works: Almost everything: Ryzen on 4c/8t, temperature monitoring, CPU power governors, touchpad, keyboard, BlueTooth, Wifi, webcam, sound speakers, mic, 3D HW acceleration (yes - gaming!), HDMI video+audio out, HDMI out via USB-C,touchsreen...

What does not work: internal motion sensors (kernel driver is promised by AMD during August), suspend&resume -> ACPI needs more work. I' using hibernation to disk instead...

Let me know if you have issues or need help, I will try to help directly.

(Written from HP Envy x360 15-ds0005 6WE51EA :) )

Related Question