ASUS Tuf A15 4900H with 1660TI Type-c Display issue's

Hello All,

I'm new to garuda (arch in general), have been trying out Garuda and really loved the smooth desktop environment.
I used to use popos 20 On My TUF15 which works great but Im having trouble sorting out the type-c Display.

My setup: Garuda KDE ultimate
TUF15 | Ryzen 4900H | GTX 1660TI| 64GB RAM | 1TB NVME | 256GB NVME | 256GB SSD
My laptop HDMI is connected to one monitor and type-c to a dock which is connected to 2 monitors.
from what I know
HDMI and laptop screen runs on AMD GPU
the type-c display Runs on nvidia Graphic card (observation when i had windows running a while ago)

it was easy to get this working on popos (just install nvidia drivers and they where up and running)
in Garuda, The out of the box install appears to have installed the drivers.

nvidia-smi returns results as expected.
display config shows 2 monitor (laptop screen and HDMI monitor), but the drop down under device shows me all 4 monitor. But when i click on enable and ok nothing happens.

xrandr --listproviders also does appear to be listing the two graphic cards.
xrandr --query shows me 4 monirors, the once under type-c (nvidia) have resolution set to 1920x1080

Tried installing prime and mode switch as per https://wiki.archlinux.org/index.php/NVIDIA_Optimus but now I no longer see the monitors.

the question is, How to i set up my pc to use both the graphic cards (all 4 display) at the same time similar to the way it worked back in popos?

TY
Nithin

2020-12-15_20-46 ???

and

:slight_smile:

2 Likes

Does glxinfo | grep vendor show the AMD GPU as the display GPU? You can try:

  • Install optimus-manager and optimus-manager-qt.
  • Run sudo systemctl enable --now optimus-manager
  • Open Optimus Manager QT from the start menu (an icon will appear in the tray)
  • Right click -> Settings
  • Under Optimus choose switching method nouveau and Startup Mode Nvidia.
  • Reboot

Now the Nvidia GPU will be used by default for everything. Maybe there is a better way to do this but I'm too much of a noob to know. :slight_smile:

2 Likes

This is a complicated setup (for Linux), although PopOS use custom utilities and methods, including hardware.
Do what @Qushy suggested and report back.
Before you start, backup your current /var/log/Xorg.0.log, so we can compare with your new one, if first attempt is not perfect.
When you have news and need advice on a failure, post backed-up copy of Xorg.0.log and the new one to Garuda Pastebin . There maybe more log files, with a different digit, like Xorg.0.log, Xorg.1.log, etc. Better ask here before posting, to see which ones are relevant.

2 Likes

Thank you for the recommendations Qushy and Petsam.
I ended up restoring the snapshot (kinda broke stuff that i was not suppose to XD)

I've installed optimus-manager and optimus-manager-qt, Enabled it as per the post above but optimums manager does not launch

❯  optimus-manager-qt                                                            100%  ─╯
Unable to detect GPU
zsh: abort (core dumped)  optimus-manager-qt

same after a reboot.

the xorg log before installing optimus manager is xorg.0.log.bak and the one after installing is xorg.0.log.
i've garbed all xorg logs along with few screenshots and have put it in my nextcloud
https://share.ntitta.in/apps/files/?dir=/Garuda_logs&fileid=542

1 Like

Install optimus-manager-git
And optimus-manager-qt-git

1 Like

For your info... your NextCloud link is not public... :face_with_head_bandage:

4 Likes

Better put it in bin.garudalinux.org - its there for this exact reason :wink:

3 Likes

Sorry about the next cloud link Guys!, I was sure it worked. Im just too lazy with the mouse :smiley:

logs posted to pastebin:

before: install (monitors detect, no display)

After optimus-manager: (monitors do not detect)

.org.old (from the time of vanilla install )

after installing optimus-manager-git And optimus-manager-qt-git from AUR, optimus-manager service starts now., I can see the Icon on the task bar. i switch to nvidia/hybrid and reboot, went into display configuration and tried to enable the monitor but no luck.
The the dock is connected to 2 Samsung monitors (mini dp and vGA) both monitor's do not show any display,

new logs:

1 Like

Post:

systemctl status acpid
ls /var/run/*.socket
cat /etc/X11/xorg.conf.d/*.conf

❯ systemctl status acpid  42%  ─╯

Unit acpid.service could not be found.

    ~   1.35   4%   55.65G   0B   at 11:49:20 AM  ─╮
❯ ls /var/run/*.socket  41%  ─╯

/var/run/snapd-snap.socket /var/run/snapd.socket

    ~   1.42   4%   55.65G   0B   at 11:49:32 AM  ─╮
❯ cat /etc/X11/xorg.conf.d/*.conf  41%  ─╯

Read and parsed by systemd-localed. It's probably wise not to edit this file

manually too freely.

Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "in"
Option "XkbVariant" "eng"
EndSection
Section "Device"
Identifier "amd"
Driver "modesetting"
BusID "PCI:6:0:0"
Option "DRI" "3"
EndSection

Basically, try with another kernel, <=5.9
Also, install acpid and enable acpid.service. Reboot.

1 Like

Hi Guys! I'm having a similar issue, I installed Garuda because on the official website says there is a GUI settings for optimus laptops but I cannot find it, is that limited to an specific desktop environment? I'm using GNOME version. Also I'm trying to do the same thing, as ntitta, trying to make the Nvidia work on the Type C and AMD on HDMI and laptop screen, is this even possible?

Thanks

1 Like

kernel 5.9 is an option i could try but older kernel has known issues with the AMD graphic chip that is used for onboard and HDMI display, basically the display flickers with older kernel's.

in my research the problem is here:

[  1265.233] randr: failed to create shared pixmap
[  1265.233] (EE) NVIDIA(G0): Failed to configure Reverse PRIME on output DP-1-0.2.

this is due to an AMD driver bug:
The NVIDIA driver currently cannot be used as an output sink when the output source driver is xf86-video-amdgpu.

i have had some luck getting only the type-c dock-monitors working. but doing so, I lost the laptop on-screen and HDMI display :frowning:

here's what I did to get the type-c dock monitor's working:
Create /etc/X11/xorg.conf.d/10-render-offload.conf with contents:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "amd"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "amd"
    Driver "amdgpu"
    BusID "PCI:5:0:0"
EndSection

Section "Screen"
    Identifier "amd"
    Device "amd"
EndSection

sadly the whole KDE desktop experience is slower than I would expect it to be.

i am no expert with the xorg config files, Looking online for a config/samples so that I can try re-writing the above with both AMD and nvidia driver (fingers crossed)

and after poking around with several configuration/ binaries below is a buggy workaround. but hey! it works!!

tested after re-imaging my pc. The only thing i had to do was correct the config from my previous post.

Section "Device"
Identifier "amd"
Driver "amdgpu"
BusID "PCI:5:0:0"
EndSection

in my pc, i found my AMD GPU to be at hardware ID 6, I used the below script to determine it

shopt -s nullglob 
for d in /sys/kernel/iommu_groups/*/devices/*; do
    n=${d#*/iommu_groups/*}; n=${n%%/*}
    printf 'IOMMU Group %s ' "$n"
    lspci -nns "${d##*/}"
done; 

now, my /etc/X11/xorg.conf.d/10-render-offload.conf looks like:

Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "amd"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection

Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
Identifier "amd"
Driver "amdgpu"
BusID "PCI:6:0:0"
EndSection

Section "Screen"
Identifier "amd"
Device "amd"
EndSection

reboot, went back into display manager and enabled the monitors and it now works!!

one observation i have noticed is, sometimes when powering on the laptop, it does not boot into KDE environment. and xorg crashes with below:

[     6.039] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     6.052] (EE) 
[     6.052] (EE) Backtrace:
[     6.052] (EE) 0: /usr/lib/Xorg (xorg_backtrace+0x53) [0x561eade91f63]
[     6.052] (EE) 1: /usr/lib/Xorg (0x561eadd4b000+0x151da5) [0x561eade9cda5]
[     6.052] (EE) 2: /usr/lib/libc.so.6 (0x7fab24001000+0x3d6a0) [0x7fab2403e6a0]
[     6.052] (EE) 3: /usr/lib/libc.so.6 (gsignal+0x145) [0x7fab2403e615]
[     6.052] (EE) 4: /usr/lib/libc.so.6 (abort+0x116) [0x7fab24027862]
[     6.052] (EE) 5: /usr/lib/libc.so.6 (0x7fab24001000+0x26747) [0x7fab24027747]
[     6.052] (EE) 6: /usr/lib/libc.so.6 (0x7fab24001000+0x35bf6) [0x7fab24036bf6]
[     6.052] (EE) 7: /usr/lib/Xorg (dixRegisterPrivateKey+0x0) [0x561eadde0870]
[     6.052] (EE) 8: /usr/lib/xorg/modules/libglamoregl.so (glamor_init+0xc9) [0x7fab1e8a9fb9]
[     6.052] (EE) 9: /usr/lib/xorg/modules/drivers/modesetting_drv.so (0x7fab1e9db000+0x140fd) [0x7fab1e9ef0fd]
[     6.052] (EE) 10: /usr/lib/Xorg (AddGPUScreen+0x10e) [0x561eaddc440e]
[     6.053] (EE) 11: /usr/lib/Xorg (0x561eadd4b000+0x185eb9) [0x561eaded0eb9]
[     6.053] (EE) 12: /usr/lib/Xorg (0x561eadd4b000+0x1bb288) [0x561eadf06288]
[     6.053] (EE) 13: /usr/lib/Xorg (0x561eadd4b000+0x1bb52b) [0x561eadf0652b]
[     6.053] (EE) 14: /usr/lib/Xorg (InitInput+0xf5) [0x561eadeb6435]
[     6.053] (EE) 15: /usr/lib/Xorg (0x561eadd4b000+0x39798) [0x561eadd84798]
[     6.053] (EE) 16: /usr/lib/libc.so.6 (__libc_start_main+0xf2) [0x7fab24029152]
[     6.053] (EE) 17: /usr/lib/Xorg (_start+0x2e) [0x561eadd855de]
[     6.053] (EE) 
[     6.053] (EE) 
Fatal server error:
[     6.053] (EE) Caught signal 6 (Aborted). Server aborting
[     6.053] (EE) 
[     6.053] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[     6.053] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.

and sometimes it just boots and all 4 display's show up like nothing was even wrong.

xorg log here (crash): Garuda's PrivateBin

5 Likes

You have some good skills! Welcome to Garuda. I am very impressed with your work and your problem solving.

gary

1 Like

Excellent work! Well done!

You could have used lspci or inxi -Gx

Do you mean SDDM or it actually crashes after login to KDE? If it is SDDM, I think there was a way/setting to make it wait for graphical, but I cannot find it now.

Could you post a succesfull Xorg log? Something is noted about modsetting not possible.
Also confirm both GPU modules are in MODULES array in /etc/mkinitcpio.conf.

grep ^MODULES /etc/mkinitcpio.conf
3 Likes

OT, but most use zsh here, I think.
After changing to bash it work, or?

grep ^MODULES /etc/mkinitcpio.conf
grep: Bilder: Ist ein Verzeichnis
grep: Blender: Ist ein Verzeichnis
grep: Dokumente: Ist ein Verzeichnis
grep: Downloads: Ist ein Verzeichnis
grep: GitHub: Ist ein Verzeichnis
grep: Gitlab: Ist ein Verzeichnis
grep: hdri: Ist ein Verzeichnis
grep: Musik: Ist ein Verzeichnis
grep: neofetch: Ist ein Verzeichnis
grep: Öffentlich: Ist ein Verzeichnis
grep: openbox: Ist ein Verzeichnis
grep: Programme: Ist ein Verzeichnis
grep: Schreibtisch: Ist ein Verzeichnis
grep: speed: Ist ein Verzeichnis
grep: Videos: Ist ein Verzeichnis
grep: Vorlagen: Ist ein Verzeichnis
grep: whoogle-search: Ist ein Verzeichnis

[email protected]   ~                                                                                                                                     
❯ grep MODULES /etc/mkinitcpio.conf 
# MODULES
#     MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
##   This setup specifies all modules in the MODULES setting above.

[email protected]   ~                                                                                                                                     
❯ bash         
[[email protected] ~]$ grep ^MODULES /etc/mkinitcpio.conf
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

I know. It's in my $TODO list to learn and use zsh, although I might prefer fish. I found fish is used in Alacrity (in my Garuda system), although I use Konsole with bash.

Maybe in time... You have to correct my posts, when I post zsh-breaking code :laughing:

4 Likes

Great!

I'm facing a similar problem, just using 3 screens on a similar laptop ASUS TUF 15 (RTX 2060) with AMD 4900H CPU/iGPU.

Did you run nvidia-config in order to generate the 10-render-offload.conf file because I don't have that file in that location.

Are you running Nvidia card for all the screens?

thanks in advance!