It used to be working fine, then I faced the same issue. But before facing this particular issue, the screens started not working AT ALL.
I switched to Xorg from Wayland because of the issue "Wayland: maximized windows extend under panels after screen blanking". I happened to have upgraded my Kernel at the same time. Hence, I am not sure what triggered what. It was working, then I installed the new Kernel, then I logged off and selected Xorg, and then it wouldn't work anymore. I tried rebooting and chosing Wayland again - wouldn't work. From experience, I presume the error started to occur after I upgraded the Kernel (I am on Debian bullseye - and I upgraded to 5.10.0.23-amd64
), it probably has nothing to do with the switch to Xorg.
How did I solve it?
First I noticed that evdi did not build correctly. It said something like:
Building module:
cleaning build area...
make -j16 KERNELRELEASE=5.10.0-23-amd64 all INCLUDEDIR=/lib/modules/5.10.0-23-amd64/build/include KVERSION=5.10.0-23-amd64 DKMS_BUILD=1...(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.10.0-23-amd64 (x86_64)
Consult /var/lib/dkms/evdi/1.13.1/build/make.log for more information.
ERROR: Failed to install evdi/5.10.0.23 to the kernel tree.
Then /var/lib/dkms/evdi/1.13.1/build/make.log
said:
ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
I tried reinstalling the header using sudo apt install --reinstall linux-headers-$(uname -r)
- but it didn't help at all.
I ended up doing:
cd /usr/src/linux-headers-5.10.0-23-amd64
sudo make oldconfig
sudo make prepare
Then I reinstalled displaylink, using the displaylink-debian project because I use Debian (use the official Ubuntu method in case you use Ubuntu):
git clone https://github.com/AdnanHodzic/displaylink-debian.git
cd displaylink-debian
sudo ./displaylink-debian.sh --install
I didn't see any error related to evdi during installation, like before. And running sudo ./displaylink-debian.sh --debug
showed that evdi was correctly installed correctly, and running!
But, I finally ran into the issue the OP experienced.
It turns out it was a configuration problem.
sudo ./displaylink-debian.sh --debug
was showing that evdi was installed correclty, but only 1 screen was detected.
I decided to do the following:
sudo rm /etc/X11/xorg.conf.d/20-displaylink.conf
Now, when doing sudo ./displaylink-debian.sh --debug
it detected 5 screens!
But it didn't show anything in the Displays
settings of Gnome! And the screen only turned on at the login page, like the OP!
Finally, it was easy. I followed instructions from displaylink-debian project (be careful, follow the instructions adapted to your own needs, I only copy-paste the one I used for my own use-case):
xrandr --listproviders
xrandr --setprovideroutputsource 3 0
xrandr --setprovideroutputsource 4 0
xrandr --listproviders
After the last xrandr --listproviders
, Provider 0
should show X associated providers
with X > 0 (X = 2 in my case).
And then the Displays
section in Gnome was showing the screens, I could just activate them!
When you reboot, the screens will not be detected and you will have to re-do the xrandr
association. To do it on startup, create /etc/X11/Xsession.d/45custom_xrandr_settings
with the following content (adapt to your specific needs):
xrandr --setprovideroutputsource 3 0
xrandr --setprovideroutputsource 4 0