我正在尝试在最近升级的Ubuntu 20.04笔记本电脑上构建并安装DisplayLink driver,以便我可以使用Dell D3100扩展坞通过DisplayPort驱动两个外部显示器。我以前曾在运行Ubuntu 18.04的同一台笔记本电脑上成功安装了该驱动程序,并且能够检测和使用其他监视器(尽管偶尔会出现黑屏)。
我已经从download page下载了最新的5.2.14驱动程序安装程序,但是这一次当我以sudo运行时,由于某种错误的配置或缺少文件/构建文件夹而失败,make中显示以下内容日志文件:
/usr/src/linux-headers-5.4.0-24-lowlatency/tools/build/Makefile.build:37: /usr/src/linux-headers-5.4.0-24-lowlatency/tools/build/Build.include: No such file or directory
确实没有/usr/src/linux-headers-/tools/build/Build.include文件,但是我不确定为什么,以及是否缺少所需的软件包?
运行安装程序的输出:
bric@home:~/System/DisplayLink$ sudo ./displaylink-driver-5.2.14.run
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 20.04 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..
目录显示没有Build.include:
$ ls -la /usr/src/linux-headers-5.4.0-24-lowlatency/tools/build/
total 40
drwxr-xr-x 4 root root 4096 Apr 18 06:27 .
drwxr-xr-x 33 root root 4096 Apr 18 06:27 ..
drwxr-xr-x 2 root root 4096 Apr 18 06:27 feature
-rw-r--r-- 1 root root 1066 Nov 25 11:32 Makefile
-rw-r--r-- 1 root root 3998 Nov 25 11:32 Makefile.build
-rw-r--r-- 1 root root 8295 Nov 25 11:32 Makefile.feature
-rw-r--r-- 1 root root 257 Nov 25 11:32 Makefile.include
drwxr-xr-x 3 root root 4096 Apr 18 06:27 tests
下面是make.log文件的附件,如果还有其他帮助,请告诉我。
关于我所缺少的任何建议?任何帮助将不胜感激!
所以似乎问题是由DisplayLink驱动程序的Makefile中无效的目录指令引起的,因为我最终找到了here(尽管这是指该驱动程序的rpm版本)。
看来,当我升级到5.4内核时,这也改变了Makefile的解析方式,从而忽略了任何SUBDIRS =参数,使试图运行make的指令保留在linux-headers / tools /中。构建文件夹,而不是内核模块文件夹。
如上面链接的讨论线程所述,解决方案是将Makefile中的SUBDIRS=blah
替换为M=blah
,除了应用另一个patch更新引用<linux/reservation.h>
的源文件以替代引用较新的文件<linux/dma-resv.h>
。
当我使用这些补丁更新DisplayLink驱动程序5.2源时,我能够成功构建evdi内核模块,并通过扩展坞上的DisplayPort连接其他显示器。希望这可以对其他人有所帮助,直到发布下一个DisplayLink驱动程序为止!