Xorg not detecting monitors connected to Lenovo docking station

Good day everyone!

I'm having an interesting problem that I cannot seem to solve on my own.

I have an ASUS ROG Strix G15 which I've managed to get displaying both on its internal screen as well as to an external monitor connected via HDMI. The ROG Strix has two gpus, which was causing some headaches during the initial setup. That was a bit of a challenge, but I made it work.

However, since I had extras I have been trying to get a 3 monitor setup going on. My goal is to mimic my windows setup: 1 external monitor connected to the laptop's HDMI out, and the other 2 external monitors connected to it via a docking station (the laptop screen is usually turned off with this setup).

I connected my laptop to a Lenovo USB-C Gen 2 Docking station and plugged in two monitors, one through the docking station's HDMI out and the other through it's display port out. Based on what I read in the manual, I configured both acpi_dock(4) and udl(4) in /boot/loader.conf. The two additional monitors have detected a signal, but display black. The desktop does not expand to them, and I cannot get a wallpaper or drag a window from the working screens to two new screens. The XFCE4 cannot detect them in display settings, nor I cannot detect them with xrandr.

When I run xrandr I get the following output:
Code:
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384
eDP connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080    144.00*+  60.00 
   1680x1050    144.00 
   1280x1024    144.00 
   1440x900     144.00 
   1280x800     144.00 
   1280x720     144.00 
   1024x768     144.00 
   800x600      144.00 
   640x480      144.00 
HDMI-A-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x1080     60.00*+  50.00    59.94 
   1600x1200     60.00 
   1680x1050     59.88 
   1400x1050     59.95 
   1600x900      60.00 
   1280x1024     75.02    60.02 
   1440x900      59.90 
   1280x960      60.00 
   1280x800      60.00 
   1152x864      75.00 
   1280x720      60.00    50.00    59.94 
   1024x768      75.03    70.07    60.00 
   832x624       74.55 
   800x600       72.19    75.00    60.32    56.25 
   720x576       50.00 
   720x480       60.00    59.94 
   640x480       75.00    72.81    66.67    60.00    59.94 
   720x400       70.08


However, I can drag my mouse across my desktop to both of them. It seems to me that my desktop environment is sending the signal to them, as the mouse cursor is the one specific to the desktop environment. In fact, if I hover the mouse cursor over something so that it changes (for example over a hyperlink), hold the left mouse button down and drag it to the right onto the other two screens it will display the mouse cursor specific for hyperlinks.

To me at least, it indicates that that the desktop environment is displaying to them, even if it not properly loading a desktop on them. I am assuming it is an issue configuring them correctly in Xorg as I had to manually configure the settings before in order to use the monitor connected to the laptop's HDMI. However, I am not sure what configuration settings I would need to put into Xorg to manually configure the additional monitors, nor do I know where to find system information on the monitor's plugged into the docking station.

Does anyone know what information I would have to put into Xorg's config files to get the two monitors connected via the docking station to be detected by xorg and allow for a desktop?
Since FreeBSD is letting me drag my mouse cursor across over to them, I am assuming that it is able to detect them and provide information on the two monitors. Does anyone know where I could find this information?

I have attached a copy of the following to this post:

The driver.conf file I had to create for Xorg to this message (uploaded as driver.conf.txt)
My /etc/rc.conf file (uploaded as rc.conf.txt)
The contents of dmesg (uploaded as dmesg.txt)
the contents of pciconf -lv (uploaded as pciconf.txt)

My system information is as follows:
FreeBSD 14.0-RELEASE amd64
DE: Xfce 4.18
CPU: AMD Ryzen 9 5900HX with Radeon Graphics (16) @ 3.293 GHz
GPU: Cezanne [Radeon Vega Series / Radeon Vega Mobile Series]

Laptop: ROG Strix G15 G513 which has two GPUs: 1) an integrated GPU in the AMD Ryzen 9 5900HX and 2) a GeForce RTX 3050 Mobile
Docking Station: Lenovo ThinkPad USB-C Gen 2. I believe that unlike other docking stations, the ThinkPad USB-C Gen 2 uses displayport alt-mode rather than displaylink (although I don't really know the specifics as to what that means).



I don't know if it is related, but when the system boots up it will display the boot information on both the laptops internal screen and the external monitor plugged into the HDMI outlest. The two monitors plugged into the docking port do not appear to receive a signal until after I have logged in and the desktop environment has started. has started.

I'm still a noob to *nix system, but I am loving FreeBSD and learning about it. I appreciate everyone's help in this matter.

Edit: I noticed in rc.conf.txt I had a line stating "$kld_list="amdgpu fusefs". This was a typo and it should have been a # instead of a $. It didn't have any effect on the monitor situation.
 

Attachments

  • driver.conf.txt
    4.9 KB · Views: 55
  • rc.conf.txt
    427 bytes · Views: 37
  • dmesg.txt
    24.1 KB · Views: 50
  • pciconf.txt
    8.8 KB · Views: 41
As long as I know Xorg should detect the monitor as soon at it gets plugged in without any extra file configuration.
Did you try with each one directly, I mean, without docking station?
 
Hello rmomota!

I solved the problem!

I can't have both amdgpu and nvidia-modeset both in kld_list in rc.conf.

The laptop has the two GPUs and each one appears to be responsible for different things. he amdgpu is responsible for the HDMI out in the laptop, where as the nvidia gpu is responsible for other things, including communicating with the docking station.

What I did was install nvidia-drm-515-kmod and removed the packages it suggested.
Next I went into rc.conf and removed amdgpu. When rebooted the computer, one of the laptops plugged into the docking station displayed the login screen. I was able to log in, and then run nvidia-settings. From here I was able to configure the screens as I wanted. All three are working correctly now!
 
Back
Top