Вопрос или проблема
Не буду врать, реальное устройство — это клавиатура ajazz akp846, и оно работает в значительной степени, единственный неработающий компонент — это внутренний дисплей.
Релевантные компоненты кольцевого буфера ядра:
[ 9169.404509] hid-generic 0003:28E9:3012.001C: hiddev4,hidraw12: USB HID v1.11 Устройство [SmartCloud AKP846] на usb-0000:00:14.0-11.2.4/input3
[ 9169.628073] usb 1-11.2.7: новое высокоскоростное USB устройство номер 26 с использованием xhci_hcd
[ 9169.733409] usb 1-11.2.7: Новое USB устройство найдено, idVendor=34c7, idProduct=2114, bcdDevice= 0.00
[ 9169.733414] usb 1-11.2.7: Новые строки USB устройства: Mfr=1, Product=2, SerialNumber=3
[ 9169.733415] usb 1-11.2.7: Продукт: USB DISP
[ 9169.733416] usb 1-11.2.7: Производитель: RACERTECH
[ 9169.733417] usb 1-11.2.7: Серийный номер: 888888888
Я нашел драйвер дисплея OEM и начал читать исходный код, где увидел зависимость от драйверов дисплейной ссылки evdi, и приступил к установке драйверов дисплейной ссылки с evdi.
хотя мне удается запустить evdi, я не могу добиться, чтобы устройство было распознано как дисплей. надо признать, это мой первый usb дисплей, (всё устройство действует как хаб, с клавиатурой, энкодером, дисплеем, сенсорным экраном и хранилищем)
в любом случае, дисплейная ссылка установлена нормально, и драйвер RACERTech кажется работает без ошибок, но у меня проблемы с тем, как назначить дисплей.
Я использую Ubuntu Mate 22.04, с X11.
Ссылка на драйверы RACERTECH: https://www.racer-tech.com/en/file-share
ссылка на установку display link:
https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu
Я пробовал использовать дисплей как обычный монитор, и искал его как устройство кадрового буфера.
с sudo modprobe udl
и sudo modprobe uevdi
ничего не появляется в /dev/fb* или с xrandr –querry, так что, думаю, я запутался.
Как мне заставить это usb дисплейное устройство работать на ubuntu?
Ответ или решение
Чтобы решить проблему с инициализацией USB-дисплея на устройстве Ajazz AKP846 под управлением Ubuntu Mate 22.04 с X11, необходимо рассмотреть несколько аспектов и шагов. Устройство функционирует как концентратор с различными компонентами, включая клавиатуру, кодировщик, дисплей и сенсорный экран. Проблема заключается в том, что встроенный дисплей не распознается и не инициализируется должным образом в системе.
Теория
В первую очередь, необходимо понимать, как работают USB-дисплеи и какие драйверы необходимы для их функционирования. Обычно USB-дисплеи требуют драйверы DisplayLink, которые обеспечивают взаимодействие между устройством и операционной системой. В системах на базе Linux, таких как Ubuntu, дополнительно могут потребоваться компоненты, такие как EVDI (Embedded Virtual Display Interface), которые служат промежуточным слоем между ядром и графической подсистемой.
Для выявления и устранения проблем с аппаратным обеспечением полезно изучить системные журналы через dmesg
или journalctl
и обратить внимание на сообщения, касающиеся USB-устройств, чтобы увидеть, как система распознаёт (или не распознаёт) дисплей.
Пример
Как видно из приведённых вами данных из кольцевого буфера ядра (kernel ring buffer), устройство распознаётся системой:
usb 1-11.2.7: Product: USB DISP
usb 1-11.2.7: Manufacturer: RACERTECH
Это означает, что физическое подключение работает, но драйверы, вероятно, не связывают устройство с графической подсистемой.
Вы уже установили драйвер DisplayLink с необходимыми компонентами EVDI, и как вы упомянули, они установлены без ошибок.
Однако, ни одно из действий, таких как модификации модулей ядра с помощью modprobe udl
и modprobe uevdi
, не привели к появлению устройства среди /dev/fb* устройств или в программе xrandr
. Это указывает на проблему уровня конфигурации или несовместимости между компонентами драйвера.
Применение
-
Проверка и обновление драйверов:
Убедитесь, что вы используете самые последние версии драйверов от RACERTECH и DisplayLink. Возможно, проблемы были решены в обновлениях. -
Системные журналы и отладка:
Посмотрите дополнительные системные журналы с помощью команд:dmesg | grep usb journalctl -k | grep DisplayLink
Это может предоставить больше информации о том, почему устройство не обнаруживается.
-
Установка и проверка EVDI:
Проверьте, что модуль EVDI загружается правильно:lsmod | grep evdi
Если он отсутствует, попробуйте вручную его загрузить, и посмотрите на вывод ошибок.
-
X11 и конфигурация Display:
Проверьте, нет ли конфигурационных ошибок в настройках X11. Файл настроек X11 может иметь неправильные параметры, из-за чего устройство не определяется. Например, отредактируйте или создайте/etc/X11/xorg.conf.d/20-displaylink.conf
, чтобы попытаться вручную подключить дисплей. -
Проверка compatability ядра:
Определите, совместимо ли ваше ядро с требуемыми модулями. Иногда проблемы могут быть связаны с основывающейся на ядре зависимостью. Попробуйте обновить ядро до более новой версии, если такое возможно. -
Использование альтернативных инструментов:
Используйте такие инструменты, какlsusb
, чтобы глубже изучить подключенное устройство и проверить его статус в системе:lsusb -d 34c7:2114 -v
Это может дать детализированную информацию об устройстве и о том, что может препятствовать его обнаружению.
-
Обратная связь с поддержкой:
Если все перечисленные шаги не привели к успеху, обратитесь в службу поддержки RACERTECH и DisplayLink. Предоставьте им логи, которые вы получили в процессе отладки, это может помочь им определить проблему. -
Ядро и модули:
Если вся эта информация указывает на проблему с модулями ядра, может быть полезно попробовать собрать их вручную. Это требует значительных технических знаний и опыта работы с системами Linux на уровне ядра.
Последний пункт касается только опытных пользователей, поскольку это связано с рисками для целостности системы. Если проблема программного обеспечения не решается из стандартных источников документации и поддержки, это может быть специфичной несовместимостью устройств, которая потребует специального исследования и адаптации от разработчиков драйверов.