Ubuntu 19.04 doesn't detect my HDMI display

Please see this:
https://forums.developer.nvidia.com/t/ubuntu-18-04-second-monitor-couldnt-be-detected-using-nvidia-430-form-ppa/125606/3?u=generix

thanks for the pointers. if I use my nvidia gpu as the primary gpu (setting “PrimaryGPU” to “yes” in 10-nvidia.conf), do I still need a 5.6 kernel for the AMD gpu to work? (by the way, amd gpu does work if I set primary-select intel, but it also sees only 1 display).

@generix, I just installed the 5.6 kernel deb files, reinstalled nvidia-driver-440, and added PrimaryGPU yes in 10-nvidia.conf, added the two optimus.desktop files, rebooted several times, but I still have the same issue running this new kernel.

my updated log file is attached. any additional change I need to make?

nvidia-bug-report.log (1.0 MB)

Please remove ‘nomodeset’ kernel parameter, it turns off amdgpu.

yes, I previously had "nvidia-drm.modeset=1" in grub’s kernel parameter, however, after setting it to 0, I still can’t see other screens.

the updated log file is attached here.

nvidia-bug-report.log (979.8 KB)

You’re missing the amdgpu firmware:

[    3.778567] amdgpu 0000:05:00.0: Direct firmware load for amdgpu/renoir_gpu_info.bin failed with error -2
[    3.778570] amdgpu 0000:05:00.0: Failed to load gpu_info firmware "amdgpu/renoir_gpu_info.bin"
[    3.778576] amdgpu 0000:05:00.0: Fatal error during GPU init

Like mentioned in the other thread I linked to, it is not advisable to do this on 18.04. Besides having a compiler mismatch, you’ll have to copy over the missing renoir firmware files from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu
to /lib/firmware/amdgpu.

Afterwards, run
sudo update-initramfs -u

it works! all 3 displays are now usable. thank you @generix so much for your help!

I am wondering if you can comment on how I can set up the computer so that I use the AMD iGPU for graphics, while keeping the 2060 GPU for cuda programming as a dedicated device?

I’ve done this successfully using Intel’s iGPU+NVIDIA GPU on several of my desktops. Please see this thread: [SOLVED] Run CUDA on dedicated NVIDIA GPU while connecting monitors to Intel HD graphics, is this possible?

However, when I type prime-select intel and reboot, I see two problems:

  1. the amd gpu only sees two displays (eDP-1 and HDMI-1), but it does not see the display connected to DP-0.

  2. Moreover, nvidia-smi also complains that the nvidia device is not found. On my Intel+NVIDIA setup, I was able to see nvidia-smi outputs despite the graphics is handled by Intel’s iGPU.

again, much appreciated if you can share any comments.

here is the log when I boot with amd gpu:
nvidia-bug-report.log (788.7 KB)

The external connector DP-0 is hardwired to the nvidia gpu so is only available if the nvidia gpu is actively rendering. No way around it.
nvidia-smi sees no device because on intel profile the nvidia driver is blacklisted, you would have to manually load it.
sudo modprobe nvidia nvidia-modeset nvidia-drm nvidia-uvm
or just enable nvidia-persistenced
sudo systemctl enable nvidia-persistenced

thanks. now I finally understood why you said the HDMI has to pass through the AMD GPU - so, the HDMI ports is physically connected to the amd gpu, but the DP ports are physically connected to the nvidia gpu. this makes sense to me now.

it is interesting that when I run glmark2 benchmark, the AMD iGPU (RENOIR) gives a score of 9600 while RTX2060 has a score of 3000. I felt that 2060 is supposed to be beefier than the AMD iGPU from the specs. is this what you have expected?

just trying your commands to manually enable the nvidia modules, I got the below error messages, any further comment is appreciated.

fangq@invocation:~$ sudo modprobe nvidia nvidia-modeset nvidia-drm nvidia-uvm
[sudo] password for fangq: 
modprobe: ERROR: ../libkmod/libkmod-module.c:832 kmod_module_insert_module() could not find module by name='off'
modprobe: ERROR: could not insert 'off': Unknown symbol in module, or unknown parameter (see dmesg)

also, when running nvidia-persistenced, I also see a different error

fangq@invocation:~$ sudo systemctl enable nvidia-persistenced
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.

Also the internal screen is driven by the amdgpu.
ASUS built this notebook series in many different flavours, some have all external connectors wired to the amd gpu, some have all wired to the nvidia gpu and yours is a mixed one.

Running benchmarks on a hybrid gpu system is always tricky. If the benchmark runs at high fps, the dgpu will be slower because there’s a lot of overhead from copying the pixmaps from dgpu to igpu. You should use a fullscreen heavy benchmark like an Unigine demo to get the correct results.

Looks like the gpu-manager is hard-disabling the nvidia modules by aliasing them to ‘off’. So you would have to also find the alias/blacklist file in either /etc/modprobe.d/* or /lib/modprobe.d/* and delete it before modprobing.

great insights!

I am wondering if nvidia’s driver supports DP data “pass-through” to the amdgpu like the HDMI-port pass-through done by the amd driver? I know you already said “No way around it”, but just want to check.

I am not a gamer, but a cuda developer, so, ideally, I would like to let the amd gpu take care of the graphics so I can run cuda codes on the 2060 without the watchdog time limit, but do want to use both of my external monitors (they are both 1080p 60hz monitors, so it is not a big load to either of the gpus).

No, that’s not possible.

Hello! I’m also facing problem with detection of HDMI display. Could you please help me finding solution?

nvidia-bug-report.log (1.0 MB)

You have a very new AMD/Nvidia combo, Please see this:
https://forums.developer.nvidia.com/t/ubuntu-18-04-second-monitor-couldnt-be-detected-using-nvidia-430-form-ppa/125606/3
Otherwise, it’s the same model as @FangQ

To help people having the same problem, here are the steps I did following @generix’s pointers.

My laptop has an AMD Ryzen 4800H (with an iGPU) with NVIDIA RTX2060 dGPU. I installed Xubuntu 18.04.4. Initially, I could not get to the login window, after installing the nvidia-driver-440, select nvidia from prime-select, and backlist the nouveau kernel module, I was able to login but I can only see 1 (connect to DP) out of the 3 screens.

Here are the steps to fixes (I am retracing my steps, but if any of these are unneeded, let me know)

  1. according to @generix, Ubuntu 20.04 may work better but I managed to get 18.04 to work, so either will apply
  2. after a fresh installation and reboot, system won’t show the login window, press ctrl+alt+F2 to get a tty terminal, login with your account, and run
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-440
  1. blacklist nouveau module by typing sudo nano /etc/modprobe.d/disable-nouveau.conf and add
blacklist nouveau
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0
  1. now if you do a reboot, you should be able to see the log-in window (only 1 display is on), but the below steps can still be completed in a terminal window in case graphics is still not working.
  2. go to this post by @generix (GeForce GTX 1650 Ti and Linux Mint 19.3), and download the kernel 5.6 linux kernel deb files, and install them by
sudo dpkg -i linux-*.deb
  1. not sure it is needed, but I did a reboot, and then reinstalled nvidia driver by
sudo apt-get install --reinstall nvidia-driver-440
  1. type
sudo prime-select nvidia

in the command line to set nvidia as the primary gpu
8. type sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf, replacing Driver "amdgpu" by Driver "modesetting"
9. type sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf, insert

Option "PrimaryGPU" "Yes"

inside the OutputClass section (the only section).
10. create optimus.desktop file by

sudo nano /etc/xdg/autostart/optimus.desktop

and insert the below content

[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
  1. copy optimus.desktop to /usr/share/gdm/greeter/autostart/ by
sudo cp  /etc/xdg/autostart/optimus.desktop /usr/share/gdm/greeter/autostart/
  1. see @generix’s post above, go to https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu and download all .bin files starting with “renoir”, and then in the terminal,
sudo cp -a renoir*.bin /lib/firmware/amdgpu
  1. type sudo update-initramfs -u to add the new renoir module
  2. now do a reboot, you should now see all screens,
    xrandr -q should also list all screens
    nvidia-smi should show the gpu info
    glmark2 should print the nvidia opengl driver is in use

if I miss any steps, or the orders of these are misplaced, please feel free to let me know and I can edit.

nvidia-bug-report.log (486.3 KB)
Hi. My monitor doesn’t work on max 1280x1024 resolution. Ubuntu 18.04.4 LTS What can be done?
Screen 0: minimum 8 x 8, current 1280 x 720, maximum 8192 x 8192
DVI-I-0 connected primary 1280x720+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00 +
1600x900 59.82
1400x900 59.88
1368x768 59.88 59.85
1360x768 59.96 59.80
1280x800 59.91 59.81
1280x720 59.86* 59.74

Everything reports it’s set to 1280x720
primary 1280x720
1280x720 59.86* 59.74
or do you get a black screen at that resolution?

Furthermore, the EDID checksum of the monitor is broken. Please set

Option "IgnoreEDIDChecksum" "DVI-I-0"

in the device section of /etc/X11/xorg.conf
to override.

Thank you for helping.

'or do you get a black screen at that resolution?"
I have 1280x1024 on windows and on Ubuntu from Ubuntu 16. After update or reinstall (several months ago) I am unable to switch to a normal mode. It is locked to 16:9 proportion instead of old 4:3. There is no this resolution in the dropdown menu.
Should I restart to apply changes?