如何在无需创建和编辑 Xorg.conf 的情况下设置我的 DisplayLink USB 视频适配器?

如何在无需创建和编辑 Xorg.conf 的情况下设置我的 DisplayLink USB 视频适配器?

理想情况下,我希望能够将其插入,提示 apt 获取必要的驱动程序包,只需注销/登录或重新启动即可将显示器连接到 DisplayLink(或任何 USB 显示设备,例如 Lilliput)成为我普通桌面的一部分,包括我的另外两个作为单个桌面的显示器。

为了使这个过程如此简单,需要发生什么?

答案1

简单的答案是,在 X hotplug 的当前状态下,您无法做到这一点。如果您有足够的动力,我对要完成的工作堆栈的理解(极其有限)如下:

  • 1)测试/验证 xserver-xorg-video-displaylink 中的 XRandR 支持
  • 2)添加调用热插拔激活脚本的 udev 规则
  • 3)让激活脚本初始化设备,并将RROutputChangeNotifyEvent发送到X
  • 4) 解决接收 RROutputChangeNotifyEvent 的已知问题,该问题导致它目前仅适用于某些类型的硬件设备(与轮询有关)

一旦你做到了这一点,你应该能够在 X 运行后连接一个 displaylink 设备,并初始化它。你的会话如何精确地将设备作为辅助显示器处理将是一个有趣的错误来源:有很多极端情况需要处理非常小的显示器(一些常见的 displaylink 设备是 800x480 或更小),或者分配足够的 VRAM 有困难(displaylink 有有趣的处理例程来处理非常高分辨率的显示器)。

这其实并不完整,因为每次要使用它时,你都需要重新连接并重新初始化它。为了获得更丰富的解决方案,需要在更深层次上启用热插拔,这也可以用于冷插拔:

  • a) 为 displaylink 实现 DDC/EDID 轮询/处理
  • b) 在 X 初始化期间实现 USB 总线轮询
  • c) 测试/验证 xorg-xserver-video-displaylink 中的 XRandR 支持
  • d) 为 displaylink 设备添加 udev 提示,以告诉 X 如何检测它们

取决于如何b) 实施后,这也应该涵盖热插拔情况,方法是在 udev 规则中向 X 发送属性(与在 udev 中启用 X 输入热插拔支持的方式相比)。此实施的另一个优点是,它最终可能还会添加对使用 sisusb 驱动程序的 USB 显示适配器的支持(尽管这需要单独测试)。

如果您真的对这一级别的实现感兴趣,我强烈建议您仔细查看 wiki.x.org,并与 X 开发人员讨论此事。之前有几个人研究过这个问题,但似乎所有人都在某个时候被其他事情分散了注意力。

如果以上步骤全部完成,用户体验应该是:连接设备。安装驱动程序。观察其运行情况(无需注销/登录、无需重启等)。请注意,用户将不是在检测到硬件时会提示安装驱动程序,这是一个完全独立的问题,我认为我在这个答案上已经说得够多了,可以留到下次再回答。

相关内容