内核升级后 Displaylink 驱动程序不工作

内核升级后 Displaylink 驱动程序不工作

我更新了内核,5.4.0-42-generic之后我的扩展坞就不再工作了。所以我尝试重新安装驱动程序,并收到以下消息。

Verifying archive integrity...  100%   All good.
Uncompressing DisplayLink Linux Driver 5.2.14  100%  
DisplayLink Linux Software 5.2.14 install script called: install
Distribution discovered: Ubuntu 18.04.4 LTS
Installing
Configuring EVDI DKMS module
Registering EVDI kernel module with DKMS
Building EVDI kernel module with DKMS
ERROR (code 3): Failed to build evdi/5.2.14. Consult /var/lib/dkms/evdi/5.2.14/build/make.log for details...

日志

DKMS make.log for evdi-5.2.14 for kernel 5.4.0-42-generic (x86_64)
Thu Jul 23 09:40:00 CEST 2020
make: getcwd: No such file or directory
make: *** No rule to make target 'all'.  Stop.
DKMS make.log for evdi-5.2.14 for kernel 5.4.0-42-generic (x86_64)
Thu Jul 23 09:40:03 CEST 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-42-generic/build modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-42-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:594: recipe for target 'syncconfig' failed
make[2]: *** [syncconfig] Error 2
Makefile:704: 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-42-generic'
Makefile:22: recipe for target 'all' failed
make: *** [all] Error 2

有人能解决这个问题吗?

编辑:我安装的驱动程序 https://www.displaylink.com/downloads/ubuntu

答案1

我在 ubuntu_18.04、内核 5.4.0 和 displaylink 驱动程序 5.2 中遇到了同样的问题,更新到 displaylink 驱动程序 5.3.1 后它又开始工作了。显然 5.3.1 也适用于 ubuntu 18.04,尽管概述页面中没有提到。

答案2

Ubuntu 18.04.5 LTS我在使用内核版本时5.4.0-65-generic遇到了完全相同的问题。Toshiba Portégé X30-E-133Toshiba Dynadock 4K USB 3.0

它对我有用,使用“最新官方驱动程序”(适用于 Ubuntu 的 DisplayLink USB 图形软件,Ubuntu 20.04,版本:5.3.1 | 2020 年 5 月 5 日)来自DisplayLink 官方网站

我使用的确切文件是

只需下载、解压、使.run文件可执行,然后运行它。

安装后需要重新启动,之后扩展坞就可以立即工作(屏幕连接到 HDMI 端口、声音和 USB)。

系统已经有了版本 4.4已安装但屏幕连接到 HDMI 端口没有出现在 Ubuntu 下System Settings -> Display and Monitor,这就是更新的原因。

我做到了不是在运行新版本的安装程序之前,以任何方式卸载旧版本。

答案3

我遇到了如上提到的同样的问题。

最近的内核更新肯定是这种情况。您应该尝试做的第一步是使用以前的内核版本启动 ubuntu。为此,请转到Ubuntu 的高级选项并选择标有 * 的第一个内核版本。

系统启动时,像之前尝试过的那样重新安装 DisplayLink 驱动程序。

就我而言,这有帮助。

答案4

摘要:您可以获取 evdi 驱动程序的源代码,将其放在机器上的正确位置,然后在构建内核的“sudo make install”期间构建本地源代码,并解决错误。

详细信息:在 Ubuntu 20.04.03 上安装当时最新内核提示 6.7.0-rc2 的编译时,我遇到了类似的问题。具体来说,在执行内核代码构建的 module_install 和 install 部分时,出现了 evdi 驱动程序的错误。系统可以启动,但只有直接 hdmi 连接可以工作,而不是我喜欢的通过 usb 到显示器链接的设置。

为了解决这个问题,我意识到每次我在内核上执行 make install 时,evdi 驱动程序都会被重新编译。所以我搜索了硬盘,并在我的计算机上找到了 evdi 源代码:/usr/src/evdi-1.14.1/

所以现在只需要修复源代码。您可以在此处克隆 evdi 源代码:

git clone https://github.com/DisplayLink/evdi

如果你开始阅读提交日志,就会发现我遇到的确切缺陷已经得到修复。具体来说,一些 API 和定义已从内核中删除,而此更改已修复了它们。

495e8cf Resolve compiler errors when compiling against Linux Kernel 6.6.

我将代码从 evdi 项目的模块文件夹复制到 /usr/src/evdi-1.14.1/ 中,并在内核源代码树上重新执行“sudo make install”,所有问题都得到了解决。

相关内容