1

I cannot get my new laptop to display the Ubuntu login screen when using NVIDIA proprietary drivers.

I have a new HP Pavilion 15 Gaming ec1001na with the following specs:

  • CPU: AMD Ryzen 5 4600H
  • GPU: NVIDIA GeForce GTX 1650
  • RAM: 8GB 3200MHz SODIMM DDR4 (2 x 4GB sticks)
  • Storage: Windows 10 on 256GB NVMe SSD, Ubuntu on 512GB Samsung EVO SSD
  • Bootloader: Grub on 512GB SSD, defaulting to Ubuntu, SecureBoot turned off

I can only get the laptop to boot into Ubuntu if I uninstall all NVIDIA drivers and activate (unblacklist) the open-source Nouveau driver. However, the frame rate with the Nouveau driver is diabolical (1-2fps) when running the Unigine Valley benchmark. (I also can't get Lutris to run Epic Games due to a Vulkan driver issue despite the drivers being installed.) So the Nouveau driver is just not good enough.

I have tried all the following drivers (taking care to uninstall the old drivers before trying a new one):

  • NVIDIA Linux 430.09 installed via the ubuntu graphics-drivers ppa
  • NVIDIA Linux 430.09 installed via the NVIDIA installable (NVIDIA-Linux-x86_64-430.09.run)
  • NVIDIA Linux 435.21 installed via the ubuntu graphics-drivers ppa
  • NVIDIA Linux 435.21 installed via the NVIDIA installable (NVIDIA-Linux-x86_64-435.21.run)
  • NVIDIA Linux 450.57 installed via the ubuntu graphics-drivers ppa
  • NVIDIA Linux 450.57 installed via the NVIDIA installable (NVIDIA-Linux-x86_64-450.57.run)

For each one, I have tried booting with nomodeset and without nomodeset in the Grub config.

I have tried using both these display managers with each:

  • gdm3
  • Lightdm

lspci | grep VGA shows:

01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f99 (rev a1)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c7)

I have tried disabling Wayland for gdm3:

cat /etc/gdm3/custom.conf

# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.

[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false

# Enabling automatic login
#  AutomaticLoginEnable = true
#  AutomaticLogin = user1

# Enabling timed login
#  TimedLoginEnable = true
#  TimedLogin = user1
#  TimedLoginDelay = 10

[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
# More verbose logs
# Additionally lets the X server dump core if it crashes
Enable=true

I have modified the X11 to directly address the NVIDIA graphics card:

cat /etc/X11/xorg.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 450.57


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    # My BusID Found by lspci | grep VGA
    BusID          "PCI:1:0:0"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    # Option         "SLI" "off"
    # Option         "MultiGPU" "off"
    # Option         "UseDisplayDevice" "DFP"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

With any of the proprietary drivers, I simply can't reach the login screen. I just see either a flashing horizontal cursor on the top left of the screen, or a completely black screen. I can access tty2 and I can SSH into the laptop.

My NVIDIA bug report output (I've removed repeated lines and the base64 log blocks to fit it in the size limit): https://paste.ubuntu.com/p/73MGTYhTh9/

How do I get the NVIDIA proprietary drivers working?

(Alternatively, how do I get Nouveau producing an actual sane usable frame rate in video rendering / gaming?)

Update 2020-07-30: When I thought the system was booting into the Ubuntu desktop environment on Nouveau, it was actually running on the AMD 4600H integrated graphics (amdgpu).

So any attempt to run on the nVidia GPU whether by Nouveau or by proprietary drivers seems to fail.

I'm able to return this laptop under RMA if you think it'll be impossible to get working?

1 Answer 1

0

I've managed to solve the issue:

TL:DR; If you're running a laptop with both a new AMD 4000 APU and an NVIDIA card, blacklist the drivers for the NVIDIA card, upgrade the Linux kernel to > 5.6, and then you can run your system on the integrated AMD graphics which performs well.

No combination of proprietary NVIDIA drivers would work. Every one (430, 435, 440, 450) caused a black screen on boot. The open-source Nouveau driver was also causing resume from suspend problems where I would resume to a black screen.

In the end, I read that the new Ryzen notebook APUs (Ryzen 4000 series) are only really supported well from Linux Kernel 5.6.

So I upgraded to kernel 5.7 using the instructions here: https://linuxconfig.org/how-to-upgrade-kernel-to-latest-version-on-ubuntu-20-04-focal-fossa-linux

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
sudo ./ubuntu-mainline-kernel.sh -i

I uninstalled proprietary NVIDIA drivers:

sudo apt-get purge '*nvidia-*' 

(if you installed them via the NVIDIA .run binaries, then you can uninstall them using that same .run file):

sudo ./NVIDIA-Linux-x86_64-XXX.YY.run --uninstall

I blacklisted nouveau:

sudo echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

I explicitly enabled AMDGPU in my grub config:

sudo nano /etc/default/grub

Changing the GRUB_CMDLINE_LINUX_DEFAULT to:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.vm_update_mode=3 amdgpu.ppfeaturemask=0xffffffff amdgpu.vm_fault_stop=0 amdgpu.vm_debug=1 amdgpu.gpu_recovery=1"

Updated my grub config:

sudo update-grub

And rebooted! Ubuntu booted properly, with the desktop environment rendering on the screen. I was able to install vulkan libraries to support gaming (see https://linuxconfig.org/install-and-test-vulkan-on-linux):

sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils

Games ran smoothly via Lutris. Grand Theft Auto 5 did complain about being below the minimum resources, that's because it couldn't see the system RAM as GPU RAM. In reality my 32GB of system RAM was more than enough to run the OS with plenty spare for graphics. I could run high detail 1080p at 30fps, or 60fps on medium detail.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .