说实话,实际设备是一台 AJazz AKP846 键盘,基本能用,唯一出问题的是内部显示屏。
内核环缓冲区的相关组件如下:
[ 9169.404509] hid-generic 0003:28E9:3012.001C: hiddev4,hidraw12: USB HID v1.11 Device [SmartCloud AKP846] on usb-0000:00:14.0-11.2.4/input3
[ 9169.628073] usb 1-11.2.7: new high-speed USB device number 26 using xhci_hcd
[ 9169.733409] usb 1-11.2.7: New USB device found, idVendor=34c7, idProduct=2114, bcdDevice= 0.00
[ 9169.733414] usb 1-11.2.7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9169.733415] usb 1-11.2.7: Product: USB DISP
[ 9169.733416] usb 1-11.2.7: Manufacturer: RACERTECH
[ 9169.733417] usb 1-11.2.7: SerialNumber: 888888888
我查找了 OEM 显示驱动程序,并开始阅读源代码,在那里我看到了 evdi 显示链接驱动程序的依赖关系,然后继续使用 evdi 安装显示链接驱动程序。
虽然我似乎可以运行 evdi,但我似乎无法让该设备被识别为显示器。不可否认,这是我的第一个 USB 显示设备,(整个设备就像一个集线器,带有键盘、编码器、显示器、触摸屏和存储器)
无论如何,显示链接安装良好,RACERTech 驱动程序似乎运行没有错误,但我无法弄清楚如何分配显示。
我使用的是 Ubuntu Mate 22.04,带有 X11。
RACERTECH 驱动程序链接:https://www.racer-tech.com/en/file-share
显示链接设置链接: https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu
我尝试将显示器用作常规显示器,并将其视为帧缓冲设备。使用sudo modprobe udl
和sudo modprobe uevdi
/dev/fb* 或 xrandr --querry 中没有出现任何内容,所以我想我一定是搞糊涂了。
如何让这个 USB 显示设备在 ubuntu 上运行?
我成功运行了,而且我确切地知道怎么做,不过我是在 Linux Mint 上做的。它应该可以在任何 Ubuntu 或衍生版本上运行。我已经测试过了,可以确认它在 Ubuntu、Mint 和 Debian 上都能正常工作。
安装 Display Link 软件。https ://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu ,您可以创建 repo,也可以使用 shell 脚本安装程序。安装其他软件包依赖项:
sudo apt install libxrandr-dev i2c-tools evdi-dkms dkms libdrm-dev libssl-dev displaylink-driver xdg-utils
在以下位置创建自动启动目录
$HOME/.config/autostart
$touch displayLink.desktop
将其写入 displayLink.desktop
请注意,XDG-utils 尚不支持使用环境变量,您必须使用绝对路径。我已向 XDG 的工作人员写信,但尚未收到任何回复。
创建此shell脚本displayLink.sh
如果尚不存在,则添加模式
向 DisplayLink 设备添加模式
将其放置在电视右侧(如有需要可调整)
############################### 重启。Display Link 驱动程序将会加载,自动启动配置文件也会加载相关配置(如果存在)。可能需要根据你的使用情况进行微调。
################################################## TLDR 笔记,关于我是如何解决这个问题的。我当时正在修改电视上的 i2c EDID,想知道 USB 显示设备是否可以通过 USB 传输 i2c 数据。显然是有的,当我开始查找这方面的信息时,整个事情变得简单多了。
通过读取和写入其他显示器和电视的 edid,我发现 eeprom 中有很多编码信息。制造商 (MFG)、制造商、型号、序列号都是十六进制字符串,但还有一些其他乱码。您可以通过安装 i2c-tools 并运行它来观察这一点。
sudo get-edid
它会做两件事:1、告诉您 i2c 设备所在的总线;2、转储一条关于该设备的加密且格式错误的消息。我了解了 edid-decode。
sudo apt install edid-decode
并且已经知道其他 i2c 视频设备出现在 /sys/class/drm/.../edid 中。我曾经
dmesg | grep -i edid
查找过该目录中的设备名称(card2-DVI-I-2)。然后对其运行 edid-decode。好的,好的,edid 与 usb ID 不匹配,但无论如何,这些信息足以构建 x11 配置文件。
重新启动。现在就可以了!
