DisplayLink / evdi

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

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

Open jeremyfix opened 4 years ago

jeremyfix commented 4 years ago

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

Some information for baseline would help a lot:

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
ApiumJacob commented 4 years ago

I have the same issue here. Came in Monday morning with a reboot and Display Link Stopped working. Rebooted to 5.3.0-62-generic and I was able to get it working again.

I have the same setup as described above that doesn't work:

uname -a
in 5.3.0-62-generic #56~18.04.1-Ubuntu SMP Wed Jun 24 16:17:03 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

dpkg --list | grep linux-image
rc  linux-image-5.3.0-28-generic               5.3.0-28.30~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.3.0-62-generic               5.3.0-62.56~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-42-generic               5.4.0-42.46~18.04.1                              amd64        Signed kernel image generic

dpkg -l |grep xserver-xorg-core
ii  xserver-xorg-core-hwe-18.04                2:1.20.8-2ubuntu2.2~18.04.1                      amd64        Xorg X server - core server

ps -A | egrep -i "gnome|kde|mate|cinnamon|lxde|xfce|jwm"
   57 ?        00:00:00 kdevtmpfs
 1029 tty1     00:00:00 gnome-session-b
 1037 tty1     00:00:03 gnome-shell
 1619 ?        00:00:00 gnome-keyring-d
 1695 tty2     00:00:00 gnome-session-b
 1824 tty2     00:00:31 gnome-shell
 1899 ?        00:00:00 gnome-shell-cal
 2104 ?        00:00:02 gnome-terminal-
 3052 tty2     00:00:03 gnome-software
thopiekar commented 4 years ago

Can't confirm any issues here on Ubuntu 20.04. Works perfectly fine :)

bbros-dev commented 4 years ago

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
displaylink-dkurek commented 4 years ago

@bbros-dev

make[3]: *** No rule to make target '/tmp/evdi/module/evdi_drv.o', needed by '/tmp/evdi/module/evdi.o'.  Stop.

This is veery strange.. Could you please provide output of cc --version and make --version? Also output of make -d would be nice. Just please use e.g. pastebin as it will be long...

bbros-dev commented 4 years ago
$ cc --version
cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

The make -d will take a while since I've reverted to ubuntu 18.04 original kernel 4.15.0-117-generic For completeness of comparison the make -d succeeds on the 4.15.0 kernel:

Not sure if that is sufficient to establish the make and cc versions are not an issue?

displaylink-dkurek commented 4 years ago

Output of make when it fails will be probably needed to understand what is happening. I wasn't able to reproduce this issue on my machine.

cement-head commented 4 years ago

make build.log

DKMS make.log for evdi-5.2.14 for kernel 5.4.0-49-generic (x86_64)
Wed Sep 23 12:54:10 EDT 2020
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-49-generic/build modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-49-generic'
make -f ./Makefile syncconfig
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig
  flex -oscripts/kconfig/lexer.lex.c -L scripts/kconfig/lexer.l
/bin/sh: 1: flex: not found
scripts/Makefile.host:9: recipe for target 'scripts/kconfig/lexer.lex.c' failed
make[3]: *** [scripts/kconfig/lexer.lex.c] Error 127
make[3]: *** Waiting for unfinished jobs....
  bison -o scripts/kconfig/parser.tab.c --defines=scripts/kconfig/parser.tab.h -t -l scripts/kconfig/parser.y
/bin/sh: 1: bison: not found
scripts/Makefile.host:17: recipe for target 'scripts/kconfig/parser.tab.h' failed
make[3]: *** [scripts/kconfig/parser.tab.h] Error 127
Makefile:617: recipe for target 'syncconfig' failed
make[2]: *** [syncconfig] Error 2
Makefile:723: recipe for target 'include/config/auto.conf.cmd' failed
make[1]: *** [include/config/auto.conf.cmd] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-49-generic'
Makefile:22: recipe for target 'all' failed
make: *** [all] Error 2
displaylink-dkurek commented 4 years ago

@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.

ApiumJacob commented 4 years ago

Next time I reboot, I'll try to install into the latest kernel.

Here is what I see on my machine:

$ cc --version
cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ flex --version
flex 2.6.4

~/repos$ git clone --depth 1 https://github.com/DisplayLink/evdi.git
Cloning into 'evdi'...
remote: Enumerating objects: 48, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 48 (delta 3), reused 11 (delta 0), pack-reused 0
Unpacking objects: 100% (48/48), done.

~/repos$ cd evdi/

~/repos/evdi$ 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/jacob/repos/evdi/module'
make -C /lib/modules/5.3.0-62-generic/build M=$PWD
make[2]: Entering directory '/usr/src/linux-headers-5.3.0-62-generic'
  CC [M]  /home/jacob/repos/evdi/module/evdi_drv.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_modeset.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_connector.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_encoder.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_main.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_fb.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_gem.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_painter.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_params.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_cursor.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_debug.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_i2c.o
  CC [M]  /home/jacob/repos/evdi/module/evdi_ioc32.o
  LD [M]  /home/jacob/repos/evdi/module/evdi.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/jacob/repos/evdi/module/evdi.mod.o
  LD [M]  /home/jacob/repos/evdi/module/evdi.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.3.0-62-generic'
make[1]: Leaving directory '/home/jacob/repos/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/jacob/repos/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/jacob/repos/evdi/library'
cement-head commented 4 years ago

$ sudo apt install flex bison [make.log](https://github.com/DisplayLink/evdi/files/5270430/make.log)

Tried to reinstall

$ sudo apt-get install --install-recommends linux-generic-hwe-18.04 
[sudo] password for andor: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  linux-headers-5.4.0-49-generic linux-headers-generic-hwe-18.04 linux-hwe-5.4-headers-5.4.0-49 linux-image-generic-hwe-18.04
The following NEW packages will be installed:
  linux-generic-hwe-18.04 linux-headers-5.4.0-49-generic linux-headers-generic-hwe-18.04 linux-hwe-5.4-headers-5.4.0-49 linux-image-generic-hwe-18.04
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/12.2 MB of archives.
After this operation, 84.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package linux-image-generic-hwe-18.04.
(Reading database ... 1099628 files and directories currently installed.)
Preparing to unpack .../linux-image-generic-hwe-18.04_5.4.0.49.53~18.04.43_amd64.deb ...
Unpacking linux-image-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...
Selecting previously unselected package linux-hwe-5.4-headers-5.4.0-49.
Preparing to unpack .../linux-hwe-5.4-headers-5.4.0-49_5.4.0-49.53~18.04.1_all.deb ...
Unpacking linux-hwe-5.4-headers-5.4.0-49 (5.4.0-49.53~18.04.1) ...
Selecting previously unselected package linux-headers-5.4.0-49-generic.
Preparing to unpack .../linux-headers-5.4.0-49-generic_5.4.0-49.53~18.04.1_amd64.deb ...
Unpacking linux-headers-5.4.0-49-generic (5.4.0-49.53~18.04.1) ...
Selecting previously unselected package linux-headers-generic-hwe-18.04.
Preparing to unpack .../linux-headers-generic-hwe-18.04_5.4.0.49.53~18.04.43_amd64.deb ...
Unpacking linux-headers-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...
Selecting previously unselected package linux-generic-hwe-18.04.
Preparing to unpack .../linux-generic-hwe-18.04_5.4.0.49.53~18.04.43_amd64.deb ...
Unpacking linux-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...
Setting up linux-hwe-5.4-headers-5.4.0-49 (5.4.0-49.53~18.04.1) ...
Setting up linux-headers-5.4.0-49-generic (5.4.0-49.53~18.04.1) ...
/etc/kernel/header_postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.4.0-49-generic

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....(bad exit status: 2)
make -j8 KERNELRELEASE=5.4.0-49-generic all INCLUDEDIR=/lib/modules/5.4.0-49-generic/build/include KVERSION=5.4.0-49-generic DKMS_BUILD=1....(bad exit status: 2)
ERROR (dkms apport): binary package for evdi: 5.2.14 not found
Error! Bad return status for module build on kernel: 5.4.0-49-generic (x86_64)
Consult /var/lib/dkms/evdi/5.2.14/build/make.log for more information.
   ...done.
Setting up linux-image-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...
Setting up linux-headers-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...
Setting up linux-generic-hwe-18.04 (5.4.0.49.53~18.04.43) ...

Looks as though there is an error in the archscripts recipe

make[2]: *** No rule to make target 'arch/x86/tools/relocs_32.c', needed by 'arch/x86/tools/relocs_32.o'.  Stop.
arch/x86/Makefile:232: recipe for target 'archscripts' failed
make[1]: *** [archscripts] Error 2
jeremyfix commented 4 years ago

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 commented 4 years ago

So, would the solution be to change and/or update the makefile/recipe for EVDI module?

jeremyfix commented 3 years ago

@displaylink-dkurek You seem to be the one who knows more than us (at least than I) how dkms is handling the compilation of the module. It seems that, when compiling from the repo, for some reasons, a "sudo make" fails but a "sudo su && make" succeeds.

On an apparently related issue here, they suggest that IMPORTANT: Do not use 'sudo make' because sudo drops the PWD environment variable and causes compilation problems. Use 'su' and then run 'make' command instead.

(by the way, I don't understand the link between the PWD variable and relocs_32.c)

So, would it make sense to either set PWD or somehow change from "sudo make" to "sudo su && make" in some files where the dkms build command is defined ?

elguero commented 3 years ago

It seems that, when compiling from the repo, for some reasons, a "sudo make" fails but a "sudo su && make" succeeds.

The reason why that works is that you are not running sudo make you are just running make with that command. The first command is sudo su and then when it succeeds and exits, the second command ran is make.

You usually do not need to compile code with elevated privileges. Normally you would compile by running make and then once it is compiled, you would run sudo make install to install the module.

bbros-dev commented 3 years ago

@displaylink-dkurek, unfortunately a HDD failure resulted in a rebuild. Fortunately, now evdi 1.8.0 and builds and installs fine on Ubuntu 18.04 with kernel 5.4.0-47-generic.

displaylink-dkurek commented 3 years ago

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?

arielcorona commented 3 years ago

Hi, I have the same problem, I get the same error.

displaylink-emajewsk commented 3 years ago

@arielcorona would you mind showing the contents of your make.log to see where it fails?

arielcorona commented 3 years ago

Yes, here you go make.log.copy.copy.pdf

MRROOX commented 3 years ago

I have the same error and log. @arielcorona @displaylink-emajewsk :cry:

FabrizioCafolla commented 3 years ago

I resolve with this: https://github.com/AdnanHodzic/displaylink-debian

Other: https://askubuntu.com/questions/6382/how-can-i-get-a-displaylink-usb-monitor-work-under-ubuntu

artur-braga commented 3 years ago

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
rlk5546 commented 2 years ago

artur-braga's solution works.

ubuntu 22.04 LTS displayLink v5.6.1 evdi/1.12.0

gclayburg commented 12 months ago

@artur-braga solution essentially works for me as well, but I'd like to add a few things.

The displaylink driver on ubuntu works great once you get it installed, but the installation process and documentation really needs improvement. I just performed an upgrade of Ubuntu 20.04 to 22.04 on a dell xps13 laptop. Of course, the dell d3100 dock video would not work without upgrading the displaylink driver. I have it working now, but it took many hours of troubleshooting kernel modules. Things like dkms, lsmod,modprobe, depmod, apt-get mysterious tools. Then you find that evdi install is a part of displaylink-driver-xxx.run, but there is also a different and newer version located in the Ubuntu jammy-updates repository. Of course, that evdi version that ubuntu has in their repo will conflict with displaylink-xxx.run. And if you try to run "displaylink-driver-xxx.run uninstall" it will be oblivious to any other evdi version that might be installed.

I appreciate the fact that displaylink-xxx.run tries to do several steps to automatically install this driver. Sometimes it even works. The problem in my experience is that it fails more often than not, but it tells the operator - me - that everything was successful, when some command it performed earlier failed in a way that is not obvious at all. Then you have to put on your kernel developer hat and reverse engineer what this install script was trying to do. This is not ideal. I just want to get my video ports working on my dock. I'd rather spend my Saturday doing something other than reverse engineering the installation process. It would be much better if the install script were more explicit in telling the operator what went wrong and how to fix it.

  1. The script should never say install was successful and you should reboot when some part of this multistep process had failed in some way.
  2. The script should first check to see if any previous version is installed, and guide the operator through uninstalling that version first. Looking back, this was likely where my troubles began.
  3. There should be clear instructions somewhere on what to expect when upgrading an OS like Ubuntu from 20.04 to 22.04.
  4. During this process, I noticed i had multiple version of evdi installed as revealed through "dkms status". I ended up removing all of these old versions manually. Should the install script do this?
  5. I tried @artur-braga step 5: " sudo apt install --reinstall linux-headers-$(uname -r) ". This just generated all sorts of errors. I just igonored them. It seems I didn't need this step at all.
  6. somewhere in this process I noticed that there was a newer version 5.8 of the driver on the synaptics website:

https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu

This was newer than the 5.6 version found on the dell website: https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=939cy

I first tried the 5.6 version from dell , but it was failing. I then tried the 5.8 version on the synaptics website. I figured, newer version from displaylink is probably better right? It says "latest official driver", "ubuntu 22.04" I was never able to get that version to work. This install really only worked after I went through @artur-braga steps above to cleanly remove the old "cruft" and install the 5.6 version from dell. This just took way too many steps.