You are not logged in.

#1 2023-11-03 05:17:15

letian
Member
Registered: 2023-11-03
Posts: 4

[SOLVED] Second monitor not detected - nvidia GPU - sway

I'm trying to setup a second monitor over HDMI but no matter what I try, it is never detected. But it works perfectly fine on Windows.

Considering my system doesn't detect it at all, I'm not sure anymore what's the next thing I should try so your help is welcome.

Here's my current setup:

neofetch

OS: Arch Linux x86_64
Host: GS66 Stealth 10UG REV:1.0
Kernel: 6.5.8-arch1-1
Shell: fish 3.6.1
Resolution: 1920x1080
WM: sway
Terminal: alacritty
CPU: Intel i7-10750H (12) @ 5.000GHz
GPU: Intel CometLake-H GT2 [UHD Graphics]
GPU: NVIDIA GeForce RTX 3070 Mobile / Max-Q
Memory: 2084MiB / 31914MiB

UEFI Settings

Fast boot: disabled
Secure boot: disabled

swaymsg -t get_outputs

Output eDP-1 'AU Optronics 0x328E Unknown' (focused)
  Current mode: 1920x1080 @ 60.036 Hz
  Position: 0,0
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 1
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    1920x1080 @ 60.036 Hz
    1920x1080 @ 300.185 Hz

xrandr --listmonitors  (just in case)

Monitors: 1
 0: +eDP-1 1920/340x1080/190+0+0  eDP-1

lspci | rg VGA

00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104M [GeForce RTX 3070 Mobile / Max-Q] (rev a1)

glxinfo | rg 'OpenGL renderer'

OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)

prime-run glxinfo | rg "OpenGL renderer"

OpenGL renderer string: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2

nvidia-smi

Fri Nov  3 01:06:06 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.113.01             Driver Version: 535.113.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3070 ...    On  | 00000000:01:00.0 Off |                  N/A |
| N/A   36C    P0              N/A /  80W |      5MiB /  8192MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

dmesg | grep -E '(drm|dp|i915)'

[    0.541079] ACPI: bus type drm_connector registered
[    0.541512] [drm] Initialized simpledrm 1.0.0 20200625 for simple-framebuffer.0 on minor 0
[    0.549064] simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
[    0.965683] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[    0.965685] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
[    1.556387] systemd[1]: Created slice Slice /system/modprobe.
[    1.563056] systemd[1]: Starting Load Kernel Module drm...
[    1.572586] systemd[1]: Starting Coldplug All udev Devices...
[    2.899465] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    2.997973] i915 0000:00:02.0: vgaarb: deactivate vga console
[    2.998028] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    2.999758] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    3.000134] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[    3.001513] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[    3.048542] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 2
[    3.085677] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    3.088241] fbcon: i915drmfb (fb0) is primary device
[    4.218875] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[    4.557972] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input36
[    4.636483] logitech-hidpp-device 0003:046D:4085.000A: input,hidraw8: USB HID v1.11 Keyboard [Logitech G604 ] on usb-0000:00:14.0-2/input2:1
[  148.203525] logitech-hidpp-device 0003:046D:4085.000A: HID++ 4.2 device connected.

cat /etc/mkinitcpio.conf

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=(usbhid xhci_hcd nvidia nvidia_modeset nvidia_uvm nvidia_drm)

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
HOOKS=(base udev autodetect modconf keyboard keymap consolefont block filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"

cat /lib/modprobe.d/nvidia-open.conf (that's my only modprobe config)

options nvidia NVreg_OpenRmEnableUnsupportedGpus=1

cat /etc/environment

JDK_HOME=/home/ian/.asdf/installs/java/adoptopenjdk-18.0.2+9
_JAVA_AWT_WM_NONREPARENTING=1

If I forgot to share something useful, let me know.

Thanks for your help

Last edited by letian (2023-11-06 02:09:14)

Offline

#2 2023-11-03 07:58:48

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,635

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

The output is gonna be wired to the nvidia chip (that's common)
https://wiki.archlinux.org/title/Sway#Installation - do you run sway w/ --unsupported-gpu ?

xrandr and glxinfo have only very limited meaning in a wayland context, https://wiki.archlinux.org/title/Sway#Xwayland

Offline

#3 2023-11-03 08:46:04

letian
Member
Registered: 2023-11-03
Posts: 4

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

seth wrote:

The output is gonna be wired to the nvidia chip (that's common)
https://wiki.archlinux.org/title/Sway#Installation - do you run sway w/ --unsupported-gpu ?

Makes sense. That's what I was starting to understand about the output being wired to the nvidia chip.

And yes, I am running Sway with the `unsupported-gpu` flag. Here's how I start sway:

cat .config/fish/conf.d/sway.fish

set TTY1 (tty)
[ "$TTY1" = "/dev/tty1" ] && exec sway --unsupported-gpu

Offline

#4 2023-11-03 14:18:27

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,635

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

https://github.com/swaywm/sway/issues/6246 ?

export WLR_DRM_NO_MODIFIERS=1

Edit: the simpledrm device is in the dmesg, what means you also don't have https://wiki.archlinux.org/title/NVIDIA … de_setting !

Last edited by seth (2023-11-03 14:19:57)

Offline

#5 2023-11-04 01:56:26

letian
Member
Registered: 2023-11-03
Posts: 4

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

seth wrote:

the simpledrm device is in the dmesg, what means you also don't have https://wiki.archlinux.org/title/NVIDIA … de_setting !

Omg how could I miss this... By disabling simpledrm it is now working but only over USB-C (there's actually a flickering issue, but that's another story).
When I plug the monitor in HDMI, it's still completely unrecognized. Nothing appears no matter what command I use to display output info.

Thanks, at least I have a workaround now (USB-C).

Offline

#6 2023-11-04 08:03:08

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,635

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

I suspect that's semi unrelated and the USB/DP output is actually wired to the intel chip.
Run and post the output of

for OUT in /sys/class/drm/card0*; do echo $OUT; edid-decode $OUT/edid; echo "================="; done

Then plug it into the HDMI and run and post again.
You'll need https://aur.archlinux.org/packages/edid-decode-git

Offline

#7 2023-11-06 02:08:37

letian
Member
Registered: 2023-11-03
Posts: 4

Re: [SOLVED] Second monitor not detected - nvidia GPU - sway

So I replaced the `wlroots` package by the patched one for nvidia (`wlroots-nvidia`) to fix the flickering issues. After a reboot, I tried to plug it first in HDMI and turns out my second monitor is now working properly even using HDMI.

The only issue left is that I don't have a mouse cursor anymore when moving to the second screen. But that's again another issue. Edit: WLR_NO_HARDWARE_CURSORS=1 fixed the cursor issue.

Anyway, thanks a lot for you help! I'll mark my post as solved cool

Note: as the HDMI output is working now, I guess the edid-decode command is producing what you expected for the HDMI one. So I won't share the result for nothing.
Note 2: Setting WLR_DRM_NO_MODIFIERS=1 prevented my monitor to work. It was detected but marked as inactive and no matter what it wouldn't enable it. So I had to make sure this wasn't set.

Last edited by letian (2023-11-06 03:10:10)

Offline

Board footer

Powered by FluxBB