DisplayLink / evdi

Extensible Virtual Display Interface
MIT License
702 stars 183 forks source link

Cannot compile on Debian 12 kernel 6.1.0-23: errors in Card.h #487

Open AngelBlue01 opened 1 month ago

AngelBlue01 commented 1 month ago

When I attempt to run make from the latest release version I get the following output:

FLAGS="-isystem./include -isystem./include/uapi -Werror -Wextra -Wall -Wno-error=missing-field-initializers -Werror=sign-compare -Wmissing-prototypes -Wstrict-prototypes -Werror=discarded-qualifiers " make -C module make[1]: Entering directory '/home/thomas/downloads/evdi-1.14.5/module' make -C /lib/modules/6.1.0-23-amd64/build M=$PWD make[2]: Entering directory '/usr/src/linux-headers-6.1.0-23-amd64' MODPOST /home/thomas/downloads/evdi-1.14.5/module/Module.symvers make[2]: Leaving directory '/usr/src/linux-headers-6.1.0-23-amd64' make[1]: Leaving directory '/home/thomas/downloads/evdi-1.14.5/module' CFLAGS="-I../module -Werror -Wextra -Wall -Wno-error=missing-field-initializers -Werror=sign-compare -Wmissing-prototypes -Wstrict-prototypes -Werror=discarded-qualifiers " make -C library make[1]: Entering directory '/home/thomas/downloads/evdi-1.14.5/library' make[1]: Nothing to be done for 'default'. make[1]: Leaving directory '/home/thomas/downloads/evdi-1.14.5/library' CXXFLAGS="-I../module -I../library -Werror -Wextra -Wall -Wno-error=missing-field-initializers -Werror=sign-compare " make -C pyevdi make[1]: Entering directory '/home/thomas/downloads/evdi-1.14.5/pyevdi' g++ -I../library $(python3 -m pybind11 --includes) -std=c++20 -fPIC -fvisibility=hidden -I../module -I../library -Werror -Wextra -Wall -Wno-error=missing-field-initializers -Werror=sign-compare -c Card.cpp In file included from Card.h:11, from Card.cpp:6: Stats.h:25:26: error: ‘chrono’ is not a member of ‘std’ 25 | std::vector grabPixelStats; | ^~ Stats.h:25:46: error: template argument 1 is invalid 25 | std::vector grabPixelStats; | ^ Stats.h:25:46: error: template argument 2 is invalid Stats.h:25:14: error: ‘’ in namespace ‘std’ does not name a type 25 | std::vector grabPixelStats; | ^~~~~~~~~ Stats.h:26:26: error: ‘chrono’ is not a member of ‘std’ 26 | std::vector bufferStats; | ^~ Stats.h:26:46: error: template argument 1 is invalid 26 | std::vector bufferStats; | ^ Stats.h:26:46: error: template argument 2 is invalid Stats.h:26:14: error: ‘’ in namespace ‘std’ does not name a type 26 | std::vector bufferStats; | ^~~~~~~~~ make[1]: [Makefile:33: Card.o] Error 1 make[1]: Leaving directory '/home/thomas/downloads/evdi-1.14.5/pyevdi' make: [Makefile:19: pyevdi] Error 2

Debian 12 (Bullseye) kernel version: 6.1.0-23-amd64 (64-bit) X11 version number: 11.0 X.Org version: 1.21.1.7 KDE Plasma: 5.27.5 NVIDIA GeForce GT 710 with proprietary drivers

HanSyt commented 3 weeks ago

There seems to bee something wrong with the latest evdi version and debian. However.. add the synaptic repo to your system. Be aware not to install apt install evdi at this moment, the compiled version here has a problem with Debian (even 12.6 bookworm). Instead do this; sudo apt install evdi=1.14.6-10 (= forces the version)

Do not forget sudo apt-mark hold evdi to avoid evdi upgrading to the faulty version.

This will work in debian and you will be able to install displaylink-driver as well from this repo.

brandon1024 commented 3 days ago

I ran into a similar problem @AngelBlue01 , but forcing version 1.14.6-10 as recommended by @HanSyt wasn't possible because this version isn't available in the synaptics repo. The closest available version for me was 1.14.5-93 and it installed correctly.

# apt install evdi=1.14.5-93
# apt-mark hold evdi