GTX 1650 (Notebook) + Linux/GNU, HDMI port not working

I started this discussion on the Asus forums, here is the previous monologue:

Post 1:
I have a TUF FX705-DR7N8 with Debian Sid and Windows 10 in dual boot. Works great, aside from not being able to use the Debian partition while connected to my TV. As your typical Linux loving neckbeard, I hate using my Windows partition and it kills me that I must have Windows if I want to use this computer for gaming. Since I’ve not been able to get the hdmi port to work in linux, I’ve not done near the amount of development I would like to have with this laptop. I’ve tried using Windows for development, but that has thus far always ended with me further hating windows and cursing Bill Gates both aloud and in my head. After speaking with Asus technical support, they told me about it using optimus in windows, which made sense with my original suspicion of the GTX 1650 not being allowed access to the HDMI port, since it is thusly configured to use the integrated GPU by default, using the external GPU only when needed. On linux, I have it configured to use the Nvidia GPU by default, ignoring the Ryzen Integrated GPU. While it is using the built in display, it works fine, however it is not able to use the HDMI port.
I am curious if anyone else has input as to the source of my issue, I would like to hear it.
Have a day. It’s your choice if it’s good or bad.
EDIT:
While preforming a clean install of the Nvidia drivers on windows, the HDMI port stopped working temporarily after the previous driver was uninstalled, and the new driver was being installed. This tells me that the source of my issue is likely the Nouveau Drivers being used on linux. I have issues getting Nvidia’s proprietary drivers to install on linux, so if anyone has any information, I’m all ears.
EDIT:
This was not the source of my issue. After upgrading to the proprietary drivers, the HDMI port does not work still.

Post 2:
The connection status is being registered in the Nvidia settings panel, but not when I go to display configuration.
Disconnected:
https://i.ibb.co/QJySVsB/Screenshot-2020-08-11-08-32-32.png.
Connected:
https://i.ibb.co/CJFmyK7/Screenshot-2020-08-11-08-32-58.png

I’ve disabled secure boot to no avail. Please let me know what can be done to help remedy my issues.

Have you tried this?

I tried that this morning, and it seems the guide is written for systems using intel processors. I was unable to get the command for setting the nvidia GPU as the display output to work, so when I fiddled around with the command I ended up bricking Xorg. I will reinstall debian at some point, but do you know of any solution that would work with the AMD integrated GPU? I know that Optimus was developed in a partnership between Nvidia and Intel, but I believe Nvidia did most of the work on it and when calling Asus technical support, they said that the computer was infact designed to use Optimus despite the Ryzen 7.

Try with the following on /etc/X11/xorg.conf.d/optimus.conf (do not use /etc/X11/xorg.conf as the guide says) and what is the output of xrandr --listproviders?

Section “ServerLayout”
Identifier “layout”
Screen 0 “nvidia”
Inactive “amd”
EndSection

Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “”
EndSection

Section “Screen”
Identifier “nvidia”
Device “nvidia”
Option “AllowEmptyInitialConfiguration”
EndSection

Section “Device”
Identifier “amd”
Driver “amdgpu”
EndSection

Section “Screen”
Identifier “amd”
Device “amd”
EndSection

When I try to reboot with optimus.conf as you wrote it, I am taken to tty1 without lightdm. Here is the result of running startx:

Output of xrandr --listproviders
lou@debian:/etc/X11/xorg.conf.d$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x54 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 1 associated providers: 0 name:Unknown AMD Radeon GPU @ pci:0000:05:00.0
Provider 1: id: 0x1f7 cap: 0x2, Sink Output crtcs: 4 outputs: 1 associated providers: 0 name:NVIDIA-G0

Output of lspci | grep VGA
lou@debian:/etc/X11/xorg.conf.d$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso (rev c1)

Fix all the quotation marks (") on optimus.conf and delete the BusID line on nvidia Device Section and try again.

All sections have a quoted string, removed the busid line, nothing changed. Here is the latest Xorg.0.log

I think you copy and paste directly from the forum, and the quotation marks on the forum are different from the simple " needed in the file, please change all manually in the file.

That worked to set the hdmi display as default, however now when using the built in display alone, it remains blank, without displaying tty unless I switch to it. this means that if I nead to, I could clear the optimus.conf file when I’m not using a display, and use the builtin, but is there a better way of doing this, or a way that would automatically handle the display being open/cllosed or even just recognize and duplicate the display or allow dual monitor support if desired? I’m thinking about when I return to school, the possibility of using this to present in classes, or if I may wanbt dual monitor support although I havent liked using that in the past, and I don’t like using multiple workspaces so I doubt I will in the future…

What is the output of xrandr --listproviders now?
And yes, there are ways to use dual monitor setup.

  1. Use the Nvidia GPU as primary and the integrated AMD GPU to drive the built-in display (With the optimus.conf you have now, it remains a couple of steps to complete this).
  2. Use the AMD GPU as primary and the Nvidia GPU to drive the HDMI and offloading (Requires the 450 driver and I’m not sure if it will work).

lou@debian:~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x1b8 cap: 0x1, Source Output crtcs: 4 outputs: 1 associated providers: 0 name:NVIDIA-0
Provider 1: id: 0x1fe cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 1 associated providers: 0 name:Unknown AMD Radeon GPU @ pci:0000:05:00.0

I think I’d prefer option 1, but :
nvidia-driver is already the newest version (450.57-3).

Ok, what DE are you using, LightDM?
With your current configuration please check if running the following enables the built-in display:

$ xrandr --setprovideroutputsource 1 NVIDIA-0

$ xrandr --auto

My friend, you have fixed my problems. Thank you. I am now curious if say, I wanted to use the built in display with the 1650, would using bumblebee handle this if I were to start from console, or would the display, since the displays are rendering the same image, be rendered on the 1650, and the final frame just be sent to the integrated gpu to be displayed?

EDIT:
This only works once, and not for when I’ve restarted my pc. Would I edit xinit.rc if I wish to have this command run the moment xorg starts from lightdm, or would I edit a conf file in lightdm?

With the configuration we’ve just set, all is rendered on the Nvidia GPU always, regardless of whether or not there is an external display. What is rendered by the Nvidia GPU is then sent to the AMD GPU to be displayed on the laptop’s panel.
There is one remaining step and is making the changes permanent. From the Debian Wiki NVIDIA Optimus:

Create a display setup script /etc/lightdm/display_setup.sh with the following:

xrandr --setprovideroutputsource 1 NVIDIA-0
xrandr --auto

Make it executable:

$ sudo chmod +x /etc/lightdm/display_setup.sh

Configure lightdm to run the script by editing (or adding) the SeatDefaults section in /etc/lightdm/lightdm.conf:

[SeatDefaults]
display-setup-script=/etc/lightdm/display_setup.sh

Reboot.

1 Like

The solution is of the bag.

Thx, friend.

Actually, One last thing. The audio is still being routed to the built in speakers. How might I go about sending it to the hdmi audio?

I think you should better search how to do it on your DE or PulseAudio.

Hey! Did you manage to get the audio working through HDMI?

Yeah. I rightclicked the audio icon in dashboard and selected HDMI as output device. Didn’t even try looking for the solution when I asked lmao. Thanks for the help though, it feels great to be back in the linux environment.

@deltalejo Do you know if there is a way to make this work with wayland without using Xwayland? I’d like to try using wayfire, and attempt to distance myself from X11 for the sake of it being like 40 years old.