evdi: DKMS build fails to build evdi module with kernel 5.4.0-42 Ubuntu 18.04

Initially please make sure the problem hasn’t been already addressed:

Some information for baseline would help a lot:

  • Linux distribution and its version : Ubuntu 18.04 x86_64
  • Linux kernel version : 5.4.0-42
  • Xorg version (if used) : xserver-xorg-core-hwe-18.04 2:1.20.8-2ubuntu2.2~18.04.1
  • Desktop environment in use : Gnome

I was successfully using displaylink with kernel 5.3.0-62. At some point, my kernel got updated to 5.4.0-42 and the multiple displays connected to a Targus adapter stopped working.

It seems dkms fails to build the evdi module for the kernel 5.4.0-42 as given in the /var/lib/dkms/evdi/5.2.14/build/make.log file. At the very start, my distro was missing flex and bison which I installed; Then it complained about a missing /usr/src/linux-headers-5.4.0-42-generic/tools/build/Build.include . I applied the Makefile modification in here but that did not fix the issue, dkms build was still complaining about a missing Build.include. Then I simply “touch /usr/src/linux-headers-5.4.0-42-generic/tools/build/Build.include”. Then the compilation stopped with :

make[4]: *** No rule to make target '../../scripts/utilities.mak'.  Stop.
Makefile:54: recipe for target '/usr/src/linux-headers-5.4.0-42-generic/tools/objtool/libsubcmd.a' failed
make[3]: *** [/usr/src/linux-headers-5.4.0-42-generic/tools/objtool/libsubcmd.a] Error 2

For now, I enforce grub to start with kernel 5.3.0-62 with which evdi is working. The full make.log file is given below :

make.log

DKMS make.log for evdi-5.2.14 for kernel 5.4.0-42-generic (x86_64)
vendredi 24 juillet 2020, 21:11:31 (UTC+0200)
make KBUILD_VERBOSE=1 SUBDIRS=/var/lib/dkms/evdi/5.2.14/build SRCROOT=/var/lib/dkms/evdi/5.2.14/build CONFIG_MODULE_SIG= -C /lib/modules/5.4.0-42-generic/build modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-42-generic'
make -f ./scripts/Makefile.build obj=arch/x86/entry/syscalls all
make -f ./scripts/Makefile.build obj=scripts/basic
set -e; mkdir -p include/config/; trap "rm -f include/config/.kernel.release.tmp" EXIT; { echo "5.4.44$(sh ./scripts/setlocalversion .)"; } > include/config/.kernel.release.tmp; if [ ! -r include/config/kernel.release ] || ! cmp -s include/config/kernel.release include/config/.kernel.release.tmp; then : '  UPD     include/config/kernel.release'; mv -f include/config/.kernel.release.tmp include/config/kernel.release; fi
make -f ./scripts/Makefile.asm-generic obj=arch/x86/include/generated/uapi/asm \
generic=include/uapi/asm-generic
set -e; mkdir -p include/generated/uapi/linux/; trap "rm -f include/generated/uapi/linux/.version.h.tmp" EXIT; { 	echo \#define LINUX_VERSION_CODE 328748; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; } > include/generated/uapi/linux/.version.h.tmp; if [ ! -r include/generated/uapi/linux/version.h ] || ! cmp -s include/generated/uapi/linux/version.h include/generated/uapi/linux/.version.h.tmp; then : '  UPD     include/generated/uapi/linux/version.h'; mv -f include/generated/uapi/linux/.version.h.tmp include/generated/uapi/linux/version.h; fi
mkdir -p ./tools
make -f ./scripts/Makefile.modbuiltin obj=init
make -f ./scripts/Makefile.modbuiltin obj=usr
make LDFLAGS= MAKEFLAGS=" -j --jobserver-fds=3,4" O=/usr/src/linux-headers-5.4.0-42-generic subdir=tools -C ./tools/ objtool
make -f ./scripts/Makefile.modbuiltin obj=arch/x86
rm -f include/linux/version.h
make -f ./scripts/Makefile.modbuiltin obj=kernel
make -f ./scripts/Makefile.modbuiltin obj=certs
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.modbuiltin obj=mm
  DESCEND  objtool
(for m in ; do echo $m; done;	\
cat /dev/null ) > init/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > usr/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs
make -f ./scripts/Makefile.modbuiltin obj=ipc
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/crypto
(for m in ; do echo $m; done;	\
cat /dev/null ) > certs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/entry
(for m in mm/zpool.ko mm/zbud.ko mm/zsmalloc.ko; do echo $m; done;	\
cat /dev/null ) > mm/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/events
make -f ./scripts/Makefile.modbuiltin obj=fs/configfs
(for m in ; do echo $m; done;	\
cat /dev/null ) > ipc/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/crypto
make -f ./scripts/Makefile.modbuiltin obj=kernel/bpf
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/entry/vdso
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/events/amd
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/entry/vsyscall
(for m in fs/configfs/configfs.ko; do echo $m; done;	\
cat /dev/null ) > fs/configfs/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/bpf/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/crypto/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/cgroup
make -f ./scripts/Makefile.modbuiltin obj=kernel/debug
make -f ./scripts/Makefile.modbuiltin obj=fs/debugfs
make -C /usr/src/linux-headers-5.4.0-42-generic/tools/build CFLAGS= LDFLAGS= /usr/src/linux-headers-5.4.0-42-generic/tools/objtool/fixdep
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/events/amd/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/entry/vsyscall/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/events/intel
make -f ./scripts/Makefile.modbuiltin obj=kernel/dma
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/cgroup/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/debug/kdb
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/ia32
(for m in ; do echo $m; done;	\
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/debugfs/modules.builtin
cat /dev/null ) > kernel/dma/modules.builtin
make -C /usr/src/linux-headers-5.4.0-42-generic/tools/lib/subcmd/ OUTPUT=/usr/src/linux-headers-5.4.0-42-generic/tools/objtool/
(for m in arch/x86/events/intel/intel-uncore.ko; do echo $m; done;	\
cat /dev/null ) > arch/x86/events/intel/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/devpts
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/events/amd/modules.builtin arch/x86/events/intel/modules.builtin) > arch/x86/events/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/ecryptfs
make -f ./scripts/Makefile.modbuiltin obj=security
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/debug/kdb/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/ia32/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null kernel/debug/kdb/modules.builtin) > kernel/debug/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=crypto
Makefile:3: ../../scripts/utilities.mak: No such file or directory
(for m in fs/ecryptfs/ecryptfs.ko; do echo $m; done;	\
cat /dev/null ) > fs/ecryptfs/modules.builtin
(for m in arch/x86/crypto/crc32c-intel.ko; do echo $m; done;	\
cat /dev/null ) > arch/x86/crypto/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/events
make[4]: *** No rule to make target '../../scripts/utilities.mak'.  Stop.
Makefile:54: recipe for target '/usr/src/linux-headers-5.4.0-42-generic/tools/objtool/libsubcmd.a' failed
make[3]: *** [/usr/src/linux-headers-5.4.0-42-generic/tools/objtool/libsubcmd.a] Error 2
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/devpts/modules.builtin
Makefile:67: recipe for target 'objtool' failed
make[2]: *** [objtool] Error 2
Makefile:1834: recipe for target 'tools/objtool' failed
make[1]: *** [tools/objtool] Error 2
make[1]: *** Waiting for unfinished jobs....
make -f ./scripts/Makefile.modbuiltin obj=kernel/irq
make -f ./scripts/Makefile.modbuiltin obj=fs/efivarfs
make -f ./scripts/Makefile.modbuiltin obj=kernel/livepatch
make -f ./scripts/Makefile.modbuiltin obj=security/apparmor
make -f ./scripts/Makefile.modbuiltin obj=kernel/locking
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/entry/vdso/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/entry/vdso/modules.builtin arch/x86/entry/vsyscall/modules.builtin) > arch/x86/entry/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/events/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel
(for m in fs/efivarfs/efivarfs.ko; do echo $m; done;	\
cat /dev/null ) > fs/efivarfs/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/irq/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/livepatch/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/locking/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/apparmor/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/exportfs
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/mm
make -f ./scripts/Makefile.modbuiltin obj=security/integrity
make -f ./scripts/Makefile.modbuiltin obj=security/keys
make -f ./scripts/Makefile.modbuiltin obj=fs/ext4
make -f ./scripts/Makefile.modbuiltin obj=kernel/power
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/acpi
(for m in fs/exportfs/exportfs.ko; do echo $m; done;	\
cat /dev/null ) > fs/exportfs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=security/integrity/evm
(for m in fs/ext4/ext4.ko; do echo $m; done;	\
cat /dev/null ) > fs/ext4/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=security/keys/encrypted-keys
make -f ./scripts/Makefile.modbuiltin obj=security/integrity/ima
make -f ./scripts/Makefile.modbuiltin obj=fs/fat
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/power/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/printk
(for m in security/keys/encrypted-keys/encrypted-keys.ko; do echo $m; done;	\
cat /dev/null ) > security/keys/encrypted-keys/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/acpi/modules.builtin
(for m in security/keys/trusted.ko; do echo $m; done;	\
cat /dev/null security/keys/encrypted-keys/modules.builtin) > security/keys/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/apic
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/integrity/evm/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/mm/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/cpu
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/fpu
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/integrity/ima/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/kprobes
(for m in fs/fat/fat.ko fs/fat/vfat.ko; do echo $m; done;	\
cat /dev/null ) > fs/fat/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/fuse
(for m in ; do echo $m; done;	\
cat /dev/null security/integrity/evm/modules.builtin security/integrity/ima/modules.builtin) > security/integrity/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=crypto/asymmetric_keys
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/printk/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/kprobes/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/rcu
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/apic/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=security/lockdown
make -f ./scripts/Makefile.modbuiltin obj=kernel/sched
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/fpu/modules.builtin
(for m in fs/fuse/fuse.ko; do echo $m; done;	\
cat /dev/null ) > fs/fuse/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=kernel/time
make -f ./scripts/Makefile.modbuiltin obj=security/safesetid
make -f ./scripts/Makefile.modbuiltin obj=fs/hugetlbfs
(for m in crypto/asymmetric_keys/public_key.ko crypto/asymmetric_keys/x509_key_parser.ko crypto/asymmetric_keys/pkcs7_message.ko; do echo $m; done;	\
cat /dev/null ) > crypto/asymmetric_keys/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/rcu/modules.builtin
(for m in crypto/crypto.ko crypto/crypto_algapi.ko crypto/aead.ko crypto/crypto_blkcipher.ko crypto/seqiv.ko crypto/crypto_hash.ko crypto/akcipher.ko crypto/kpp.ko crypto/dh_generic.ko crypto/rsa_generic.ko crypto/crypto_acompress.ko crypto/cryptomgr.ko crypto/hmac.ko crypto/crypto_null.ko crypto/md5.ko crypto/sha1_generic.ko crypto/sha256_generic.ko crypto/sha512_generic.ko crypto/gf128mul.ko crypto/ecb.ko crypto/cbc.ko crypto/cts.ko crypto/xts.ko crypto/ctr.ko crypto/gcm.ko crypto/aes_generic.ko crypto/deflate.ko crypto/crc32c_generic.ko crypto/crct10dif_common.ko crypto/crct10dif_generic.ko crypto/lzo.ko crypto/lzo-rle.ko crypto/rng.ko crypto/drbg.ko crypto/jitterentropy_rng.ko crypto/ghash-generic.ko; do echo $m; done;	\
cat /dev/null crypto/asymmetric_keys/modules.builtin) > crypto/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/cpu/mce
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/lockdown/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/iomap
make -f ./scripts/Makefile.modbuiltin obj=security/selinux
make -f ./scripts/Makefile.modbuiltin obj=fs/jbd2
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/sched/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/hugetlbfs/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/safesetid/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/time/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/cpu/microcode
make -f ./scripts/Makefile.modbuiltin obj=kernel/trace
make -f ./scripts/Makefile.modbuiltin obj=security/smack
make -f ./scripts/Makefile.modbuiltin obj=fs/kernfs
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/cpu/mce/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/cpu/mtrr
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/iomap/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/selinux/modules.builtin
(for m in fs/jbd2/jbd2.ko; do echo $m; done;	\
cat /dev/null ) > fs/jbd2/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/kernel/cpu/resctrl
make -f ./scripts/Makefile.modbuiltin obj=security/tomoyo
make -f ./scripts/Makefile.modbuiltin obj=fs/nfs_common
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/cpu/microcode/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > kernel/trace/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/smack/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/cpu/mtrr/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null kernel/bpf/modules.builtin kernel/cgroup/modules.builtin kernel/debug/modules.builtin kernel/dma/modules.builtin kernel/events/modules.builtin kernel/irq/modules.builtin kernel/livepatch/modules.builtin kernel/locking/modules.builtin kernel/power/modules.builtin kernel/printk/modules.builtin kernel/rcu/modules.builtin kernel/sched/modules.builtin kernel/time/modules.builtin kernel/trace/modules.builtin) > kernel/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/nls
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/kernfs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=security/yama
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/net
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform
make -f ./scripts/Makefile.modbuiltin obj=fs/notify
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/kernel/cpu/resctrl/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/tomoyo/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/nfs_common/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/proc
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/kernel/cpu/mce/modules.builtin arch/x86/kernel/cpu/microcode/modules.builtin arch/x86/kernel/cpu/mtrr/modules.builtin arch/x86/kernel/cpu/resctrl/modules.builtin) > arch/x86/kernel/cpu/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/pvh
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/kernel/acpi/modules.builtin arch/x86/kernel/apic/modules.builtin arch/x86/kernel/cpu/modules.builtin arch/x86/kernel/fpu/modules.builtin arch/x86/kernel/kprobes/modules.builtin) > arch/x86/kernel/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/net/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/purgatory
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/realmode
(for m in ; do echo $m; done;	\
cat /dev/null ) > security/yama/modules.builtin
(for m in fs/nls/nls_base.ko fs/nls/nls_cp437.ko; do echo $m; done;	\
cat /dev/null ) > fs/nls/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/atom
make -f ./scripts/Makefile.modbuiltin obj=fs/notify/dnotify
make -f ./scripts/Makefile.modbuiltin obj=fs/notify/fanotify
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/proc/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/pvh/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null security/apparmor/modules.builtin security/integrity/modules.builtin security/keys/modules.builtin security/lockdown/modules.builtin security/safesetid/modules.builtin security/selinux/modules.builtin security/smack/modules.builtin security/tomoyo/modules.builtin security/yama/modules.builtin) > security/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/atom/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/realmode/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/purgatory/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/notify/inotify
make -f ./scripts/Makefile.modbuiltin obj=fs/pstore
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/ce4100
make -f ./scripts/Makefile.modbuiltin obj=fs/quota
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/xen
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/notify/dnotify/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/ramfs
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/efi
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/notify/fanotify/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/notify/inotify/modules.builtin
(for m in fs/pstore/pstore.ko; do echo $m; done;	\
cat /dev/null ) > fs/pstore/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/ce4100/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/squashfs
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/quota/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null fs/notify/dnotify/modules.builtin fs/notify/fanotify/modules.builtin fs/notify/inotify/modules.builtin) > fs/notify/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/sysfs
make -f ./scripts/Makefile.modbuiltin obj=fs/tracefs
make -f ./scripts/Makefile.modbuiltin obj=fs/unicode
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/efi/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/geode
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/ramfs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=fs/verity
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/goldfish
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/tracefs/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/xen/modules.builtin
(for m in fs/squashfs/squashfs.ko; do echo $m; done;	\
cat /dev/null ) > fs/squashfs/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/sysfs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/intel
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/intel-mid
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/intel-quark
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/unicode/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/geode/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/iris
(for m in ; do echo $m; done;	\
cat /dev/null ) > fs/verity/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/olpc
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/scx200
(for m in fs/binfmt_script.ko fs/mbcache.ko; do echo $m; done;	\
cat /dev/null fs/configfs/modules.builtin fs/crypto/modules.builtin fs/debugfs/modules.builtin fs/devpts/modules.builtin fs/ecryptfs/modules.builtin fs/efivarfs/modules.builtin fs/exportfs/modules.builtin fs/ext4/modules.builtin fs/fat/modules.builtin fs/fuse/modules.builtin fs/hugetlbfs/modules.builtin fs/iomap/modules.builtin fs/jbd2/modules.builtin fs/kernfs/modules.builtin fs/nfs_common/modules.builtin fs/nls/modules.builtin fs/notify/modules.builtin fs/proc/modules.builtin fs/pstore/modules.builtin fs/quota/modules.builtin fs/ramfs/modules.builtin fs/squashfs/modules.builtin fs/sysfs/modules.builtin fs/tracefs/modules.builtin fs/unicode/modules.builtin fs/verity/modules.builtin) > fs/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/sfi
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/goldfish/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/ts5500
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/intel-mid/modules.builtin
(for m in arch/x86/platform/intel/iosf_mbi.ko; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/intel/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/intel-quark/modules.builtin
make -f ./scripts/Makefile.modbuiltin obj=arch/x86/platform/uv
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/iris/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/olpc/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/scx200/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/sfi/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/ts5500/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null ) > arch/x86/platform/uv/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/platform/atom/modules.builtin arch/x86/platform/ce4100/modules.builtin arch/x86/platform/efi/modules.builtin arch/x86/platform/geode/modules.builtin arch/x86/platform/goldfish/modules.builtin arch/x86/platform/intel/modules.builtin arch/x86/platform/intel-mid/modules.builtin arch/x86/platform/intel-quark/modules.builtin arch/x86/platform/iris/modules.builtin arch/x86/platform/olpc/modules.builtin arch/x86/platform/scx200/modules.builtin arch/x86/platform/sfi/modules.builtin arch/x86/platform/ts5500/modules.builtin arch/x86/platform/uv/modules.builtin) > arch/x86/platform/modules.builtin
(for m in ; do echo $m; done;	\
cat /dev/null arch/x86/crypto/modules.builtin arch/x86/entry/modules.builtin arch/x86/events/modules.builtin arch/x86/ia32/modules.builtin arch/x86/kernel/modules.builtin arch/x86/mm/modules.builtin arch/x86/net/modules.builtin arch/x86/platform/modules.builtin arch/x86/platform/pvh/modules.builtin arch/x86/purgatory/modules.builtin arch/x86/realmode/modules.builtin arch/x86/xen/modules.builtin) > arch/x86/modules.builtin
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-42-generic'
Makefile:22: recipe for target 'all' failed
make: *** [all] Error 2

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 3
  • Comments: 24 (6 by maintainers)

Most upvoted comments

I had the same problem with the 5.4.0-80-generic kernel.

My solution was:

  1. Download and extract the displaylink driver from https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu
  2. sudo displaylink-installer uninstall
  3. Reboot in a tty without any X-server running
  4. sudo dkms remove evdi/5.2.14 --all -q
  5. sudo apt install --reinstall linux-headers-$(uname -r)
  6. sudo displaylink-driver-5.4.0-55.153.run
  7. reboot and login

Not sure if I know more about dkm than anyone here 😉

DisplayLinkManager is shipped now with evdi sources snapshot. module is build with dkms install ${PATH_TO_EVDI}/module and library with just a make. (just for some clarity maybe how it’s working)

So, after a while (sorry, been on late holidays 😉 )

Have everyone somehow resolved the problem or do we see still some instance of this issue?

Hi, I tried this morning on 5.4.0-47 with a fresh git clone and it worked successfully (see below).

Can it be related to the way dkms is building the module ? Interestingly, the relocs_32 error raised by @cement-head reminds me a kernel module compilation error I got recently (see here that I solved by replacing the compilation of the module from “sudo make” into “sudo su; make”

Successfull compilation from the git repo on a 5.4.0-47

git clone --depth 1 https://github.com/DisplayLink/evdi.git
➜  evdi git:(devel) make
cat: /etc/redhat-release: No such file or directory
CFLAGS="-Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers" make -C module
make[1]: Entering directory '/home/fix_jer/GIT/evdi/module'
make -C /lib/modules/5.4.0-47-generic/build M=$PWD
make[2]: Entering directory '/usr/src/linux-headers-5.4.0-47-generic'
  AR      /home/fix_jer/GIT/evdi/module/built-in.a
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_drv.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_modeset.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_connector.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_encoder.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_main.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_fb.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_gem.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_painter.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_params.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_cursor.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_debug.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_i2c.o
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi_ioc32.o
  LD [M]  /home/fix_jer/GIT/evdi/module/evdi.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC [M]  /home/fix_jer/GIT/evdi/module/evdi.mod.o
  LD [M]  /home/fix_jer/GIT/evdi/module/evdi.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-47-generic'
make[1]: Leaving directory '/home/fix_jer/GIT/evdi/module'
CFLAGS="-I../module -Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers " make -C library
make[1]: Entering directory '/home/fix_jer/GIT/evdi/library'
cc -I../module -std=gnu99 -fPIC -I../module -Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers    -c -o evdi_lib.o evdi_lib.c
cc evdi_lib.o -shared -Wl,-soname,libevdi.so.0 -o libevdi.so.1.8.0 -lc -lgcc
cp libevdi.so.1.8.0 libevdi.so
make[1]: Leaving directory '/home/fix_jer/GIT/evdi/library'
➜  evdi git:(devel) uname -a
Linux stollen 5.4.0-47-generic #51~18.04.1-Ubuntu SMP Sat Sep 5 14:35:50 UTC 2020 x86_64 x86_64
x86_64 GNU/Linux

@cement-head /bin/sh: 1: flex: not found flex is missing. Is it installed? sudo apt install flex on Ubuntu. But this seems to be something different than @bbros-dev sees.

Also broken on On Ubuntu 18.04 kernel 5.4.0-47-generic:

git clone --depth 1 https://github.com/DisplayLink/evdi.git
cd evdi
make

Shows

cat: /etc/redhat-release: No such file or directory
CFLAGS="-Werror -Wextra -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-error=missing-field-initializers" make -C module 
make[1]: Entering directory '/tmp/evdi/module'
make -C /lib/modules/5.4.0-47-generic/build M=$PWD
make[2]: Entering directory '/usr/src/linux-headers-5.4.0-47-generic'
make[3]: *** No rule to make target '/tmp/evdi/module/evdi_drv.o', needed by '/tmp/evdi/module/evdi.o'.  Stop.
Makefile:1734: recipe for target '/tmp/evdi/module' failed
make[2]: *** [/tmp/evdi/module] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-47-generic'
Makefile:71: recipe for target 'module' failed
make[1]: *** [module] Error 2
make[1]: Leaving directory '/tmp/evdi/module'
Makefile:13: recipe for target 'all' failed
make: *** [all] Error 2