Installing USB3 Monitor Driver

I bought a AOC 17in USB3 monitor. I tried to install the driver:
http://www.displaylink.com/downloads/ubuntu follwing this instruction: https://support.displaylink.com/knowledgebase/articles/684649-how-to-install-displaylink-software-on-ubuntu

However, it looks there might be an error with kernel that I should re-build the kernel or some. Yet, which element should I check for the kernel if it is due to the kernel.

I’d appreciate if anyone can share an insight!
Thanks

====================================================

The error says this:

DKMS make.log for evdi-4.1.9 for kernel 4.4.38-acm (aarch64)
Mon Jan 22 03:33:37 UTC 2018
make KBUILD_VERBOSE=1 SUBDIRS=/var/lib/dkms/evdi/4.1.9/build SRCROOT=/var/lib/dkms/evdi/4.1.9/build CONFIG_MODULE_SIG= -C /lib/modules/4.4.38-acm/build modules
make[1]: Entering directory ‘/usr/src/kernel/kernel-4.4’
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
echo >&2;
echo >&2 " 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 ;
/bin/false)
mkdir -p /var/lib/dkms/evdi/4.1.9/build/.tmp_versions ; rm -f /var/lib/dkms/evdi/4.1.9/build/.tmp_versions/*
make -f ./scripts/Makefile.build obj=/var/lib/dkms/evdi/4.1.9/build
gcc -Wp,-MD,/var/lib/dkms/evdi/4.1.9/build/.evdi_drv.o.d -nostdinc -isystem /usr/lib/gcc/aarch64-linux-gnu/5/include -I./arch/arm64/include -Iarch/arm64/include/generated/uapi -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1 -fno-pic -mpc-relative-literal-loads -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -I./…/t18x/include -I./…/nvhost/include -I./…/display/include -I./…/nvmap/include -I./…/nvgpu/include -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Iinclude/drm -DMODULE -mcmodel=large -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(evdi_drv)" -D"KBUILD_MODNAME=KBUILD_STR(evdi)" -c -o /var/lib/dkms/evdi/4.1.9/build/evdi_drv.o /var/lib/dkms/evdi/4.1.9/build/evdi_drv.c
gcc -Wp,-MD,/var/lib/dkms/evdi/4.1.9/build/.evdi_modeset.o.d -nostdinc -isystem /usr/lib/gcc/aarch64-linux-gnu/5/include -I./arch/arm64/include -Iarch/arm64/include/generated/uapi -Iarch/arm64/include/generated -Iinclude -I./arch/arm64/include/uapi -Iarch/arm64/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-tegra/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1 -fno-pic -mpc-relative-literal-loads -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -I./…/t18x/include -I./…/nvhost/include -I./…/display/include -I./…/nvmap/include -I./…/nvgpu/include -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Iinclude/drm -DMODULE -mcmodel=large -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(evdi_modeset)" -D"KBUILD_MODNAME=KBUILD_STR(evdi)" -c -o /var/lib/dkms/evdi/4.1.9/build/evdi_modeset.o /var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c: In function ‘evdi_sched_page_flip’:
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:150:3: error: implicit declaration of function ‘drm_send_vblank_event’ [-Werror=implicit-function-declaration]
drm_send_vblank_event(dev, 0, event);
^
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c: In function ‘evdi_crtc_cursor_set’:
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:259:31: warning: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Wincompatible-pointer-types]
obj = drm_gem_object_lookup(crtc->dev, file, handle);
^
In file included from /var/lib/dkms/evdi/4.1.9/build/evdi_drv.h:23:0,
from /var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:21:
include/drm/drm_gem.h:241:24: note: expected ‘struct drm_file *’ but argument is of type ‘struct drm_device *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:259:42: warning: passing argument 2 of ‘drm_gem_object_lookup’ makes integer from pointer without a cast [-Wint-conversion]
obj = drm_gem_object_lookup(crtc->dev, file, handle);
^
In file included from /var/lib/dkms/evdi/4.1.9/build/evdi_drv.h:23:0,
from /var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:21:
include/drm/drm_gem.h:241:24: note: expected ‘u32 {aka unsigned int}’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:259:9: error: too many arguments to function ‘drm_gem_object_lookup’
obj = drm_gem_object_lookup(crtc->dev, file, handle);
^
In file included from /var/lib/dkms/evdi/4.1.9/build/evdi_drv.h:23:0,
from /var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:21:
include/drm/drm_gem.h:241:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c: At top level:
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:399:15: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
.fb_create = evdi_fb_user_fb_create,
^
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:399:15: note: (near initialization for ‘evdi_mode_funcs.fb_create’)
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c: In function ‘evdi_modeset_init’:
/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:430:2: error: implicit declaration of function ‘drm_dev_set_unique’ [-Werror=implicit-function-declaration]
drm_dev_set_unique(dev, “%s”, dev_name(dev->dev));
^
cc1: some warnings being treated as errors
scripts/Makefile.build:261: recipe for target ‘/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.o’ failed
make[2]: *** [/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.o] Error 1
Makefile:1414: recipe for target ‘module/var/lib/dkms/evdi/4.1.9/build’ failed
make[1]: *** [module/var/lib/dkms/evdi/4.1.9/build] Error 2
make[1]: Leaving directory ‘/usr/src/kernel/kernel-4.4’
Makefile:22: recipe for target ‘all’ failed
make: *** [all] Error 2

Hi el101001,

I need to address that I don’t know whether tegra is able to run this kind of display or not.

However, I just read the installation guide from EVDI 4.1.9

http://assets.displaylink.com/live/downloads/release-notes/f1088_DisplayLink+USB+Graphics+Software+for+Ubuntu+4.1-Release+Notes.txt

This line:
EVDI does not compile with Linux Kernel newer than 4.14.

My kernel version is 4.4.38. I guess it’s probably because of the cpu.

I don’t think it is just because of cpu… Most of the compilation error is due to incompatible function of DRM. DRM is not directly related to cpu.

For example, below error

/var/lib/dkms/evdi/4.1.9/build/evdi_modeset.c:259:9: error: too many arguments to function ‘drm_gem_object_lookup’
obj = drm_gem_object_lookup(crtc->dev, file, handle);

This is a kernel 3.18 function and thus cannot compile on kernel 4.4.38 directly.
below reference for you.
https://elixir.free-electrons.com/linux/v3.18.65/source/drivers/gpu/drm/drm_gem.c#L547
https://elixir.free-electrons.com/linux/v4.14/source/include/drm/drm_gem.h#L304