Драйвер amdgpu не распознает монитор с правильной частотой обновления на Displayport (30 Гц на DP, 60 Гц на HDMI) в Ubuntu 24.10.

Вопрос или проблема

Это почти больше похоже на баг, чем на проблему с версией или конфигурацией, в таком случае, можете ли вы направить меня, где подать этот баг? Я собрал систему с Powercolor Hellhound Radeon RX 7700 XT. Я установил двойную загрузку. Обе системы, Windows и Ubuntu 24.10, установились успешно. Однако Windows обнаружила монитор на частоте 60 Гц, а Ubuntu на частоте 30 Гц. Монитор – ASUS VP28U. Используемый графический драйвер – это драйвер с открытым исходным кодом amdgpu, как указано в выводе

$ sudo lshw -c video
  *-display                 
       description: VGA совместимый контроллер
       product: Navi 32 [Radeon RX 7700 XT / 7800 XT]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: /dev/fb0
       version: ff
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=amdgpu latency=0 mode=3840x2160 resolution=3840,2160 visual=truecolor xres=3840 yres=2160
       resources: iomemory:f80-f7f iomemory:fc0-fbf irq:99 memory:f800000000-fbffffffff memory:fc00000000-fc0fffffff ioport:f000(size=256) memory:f6b00000-f6bfffff memory:f6c00000-f6c1ffff

и

$ lspci -k | grep -EA3 'VGA|3D|Display'
03:00.0 VGA совместимый контроллер: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] (rev ff)
    Подсистема: Tul Corporation / PowerColor Device 2426
    Используемый ядреный драйвер: amdgpu
    Модули ядра: amdgpu

Это версия 24.2.3 драйвера, как указано в выводе

$ glxinfo | grep -iE 'vendor:|device:|version:'
GLX версия: 1.4
    Поставщик: AMD (0x1002)
    Устройство: AMD Radeon RX 7700 XT (radeonsi, navi32, LLVM 19.1.0, DRM 3.58, 6.11.0-13-generic) (0x747e)
    Версия: 24.2.3
    Максимальная версия основного профиля: 4.6
    Максимальная версия совместимого профиля: 4.6
    Максимальная версия GLES1 профиля: 1.1
    Максимальная версия GLES[23] профиля: 3.2

Версия пакета linux-firmware – 20240913.gita34e7a5f-0ubuntu2.4

$ apt show linux-firmware
Пакет: linux-firmware
Версия: 20240913.gita34e7a5f-0ubuntu2.4
Приоритет: необязательный
Раздел: misc
Происхождение: Ubuntu
Поддержка: Ubuntu Kernel Team <[email protected]>
Исходная поддержка: Ubuntu Kernel Team <[email protected]>
Ошибки: https://bugs.launchpad.net/ubuntu/+filebug
Установленный размер: 517 MB
Предоставляет: atmel-firmware
Рекомендует: firmware-sof-signed
Конфликты: atmel-firmware
Прерывает: amd64-microcode (<= 3.20220411.1ubuntu1), initramfs-tools (<< 0.142ubuntu8~), linux-firmware-raspi2 (<= 1.20190819-0ubuntu2), linux-firmware-snapdragon (<= 1.2-0ubuntu1)
Замещает: atmel-firmware, linux-firmware-snapdragon (<= 1.2-0ubuntu1), linux-restricted-common
Размер загружаемых файлов: 517 MB
APT-Ручная установка: да
APT-Источники: http://us.archive.ubuntu.com/ubuntu oracular-updates/main amd64 Packages
Описание: Прошивки для драйверов ядра Linux
 Этот пакет предоставляет прошивки, используемые драйверами ядра Linux.

Примечание: Есть 1 дополнительная запись. Пожалуйста, используйте переключатель '-a', чтобы увидеть её

Это не сработало и отправило меня в немного сложную ситуацию, думая, что, возможно, amdgpu не поддерживает карты серии 7000 (хотя в моей другой системе есть 7900XT с тем же драйвером и нет известных мне проблем), и тогда я попытался установить драйверы от AMD, но получил ошибку зависимости, потому что пакет libomxil-bellagio0 не существует в Ubuntu Oracular, что кто-то должен исследовать.

$ amdgpu-install --usecase=graphics,opencl --vulkan=amdvlk --opencl=rocr
INFO: Архитектура i386 не была включена с помощью dpkg.
Установка 32-битной среды исполнения была исключена.
Попадание:1 http://security.ubuntu.com/ubuntu oracular-security InRelease
Попадание:2 https://repo.radeon.com/amdgpu/6.2.3/ubuntu jammy InRelease                                               
Попадание:3 http://us.archive.ubuntu.com/ubuntu oracular InRelease                                                    
Попадание:4 https://repo.radeon.com/rocm/apt/6.2.3 jammy InRelease
Получение:5 http://us.archive.ubuntu.com/ubuntu oracular-updates InRelease [126 kB]
Попадание:6 http://us.archive.ubuntu.com/ubuntu oracular-backports InRelease
Получение:7 http://us.archive.ubuntu.com/ubuntu oracular-updates/main amd64 Packages [237 kB]
Получение:8 http://us.archive.ubuntu.com/ubuntu oracular-updates/universe amd64 Packages [154 kB]
Загружено 517 kB за 1с (418 kB/s)                          
Чтение списков пакетов... Готово
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
linux-headers-6.11.0-13-generic уже самой новой версии (6.11.0-13.14).
linux-headers-6.11.0-13-generic установлен вручную.
Некоторые пакеты не могут быть установлены. Возможно, это означает, что
вы запросили невозможную ситуацию или если вы используете нестабильное
распределение, что некоторые необходимые пакеты еще не были созданы
или перенесены из Incoming.
Следующая информация может помочь решить ситуацию:

Следующие пакеты имеют неудовлетворенные зависимости:
 gst-omx-amdgpu : Зависит от: libomxil-bellagio0 но он не установим
 mesa-amdgpu-omx-drivers : Зависит от: libomxil-bellagio0 но он не установим
E: Невозможно решить проблемы, у вас удерживаются поврежденные пакеты.

Это заставило меня пытаться и потерпеть неудачу скомпилировать эту библиотеку самостоятельно. Далеко не ушел.

Только когда я попробовал переключиться с Displayport на HDMI, это сработало. Существуют ли обходные решения для этого? Возможно, настройка, которую я могу изменить, чтобы исправить это для Displayport? Xorg и Wayland не изменили ничего. И какой порт Displayport на задней части видеокарты также не имел значения. Такое же поведение на всех портах Displayport. Только переключение с Displayport на HDMI это исправило. Вот как выглядел xrandr с HDMI

$ xrandr
Экран 0: минимум 16 x 16, текущий 3840 x 2160, максимум 32767 x 32767
HDMI-1 подключен первично 3840x2160+0+0 (нормально налево инвертировано направо по оси X по оси Y) 620мм x 340мм
   3840x2160     59.98*+
   2048x1536     59.95  
   1920x1440     59.97  
   1600x1200     59.87  
   1440x1080     59.99  
   1400x1050     59.98  
   1280x1024     59.89  
   1280x960      59.94  
   1152x864      59.96  
   1024x768      59.92  
   800x600       59.86  
   640x480       59.38  
   320x240       59.52  
   2560x1600     59.99  
   1920x1200     59.88  
   1680x1050     59.95  
   1440x900      59.89  
   1280x800      59.81  
   1152x720      59.97  
   960x600       59.63  
   928x580       59.88  
   800x500       59.50  
   768x480       59.90  
   720x480       59.71  
   640x400       59.95  
   320x200       58.96  
   3200x1800     59.96  
   2880x1620     59.96  
   2560x1440     59.96  
   2048x1152     59.90  
   1920x1080     59.96  
   1600x900      59.95  
   1368x768      59.88  
   1280x720      59.86  
   1024x576      59.90  
   864x486       59.92  
   720x400       59.55  
   640x350       59.77  

и с Displayport

$ xrandr
Экран 0: минимум 16 x 16, текущий 3840 x 2160, максимум 32767 x 32767
DP-2 подключен 3840x2160+0+0 (нормально налево инвертировано направо по оси X по оси Y) 620мм x 340мм
   3840x2160     29.98*+
   2048x1536     29.95  
   1920x1440     29.95  
   1600x1200     29.95  
   1440x1080     29.86  
   1400x1050     29.98  
   1280x1024     29.90  
   1280x960      29.82  
   1152x864      29.92  
   1024x768      29.89  
   800x600       29.55  
   640x480       29.85  
   320x240       27.50  
   2560x1600     29.99  
   1920x1200     29.95  
   1680x1050     29.95  
   1440x900      29.91  
   1280x800      29.83  
   1152x720      29.96  
   960x600       29.86  
   928x580       29.64  
   800x500       29.53  
   768x480       29.64  
   720x480       29.25  
   640x400       29.58  
   320x200       26.53  
   3200x1800     29.96  
   2880x1620     29.96  
   2560x1440     29.94  
   2048x1152     29.94  
   1920x1080     29.95  
   1600x900      29.92  
   1368x768      29.94  
   1280x720      29.93  
   1024x576      29.84  
   864x486       29.50  
   720x400       29.51  
   640x350       29.03  

Но в любом случае любая помощь или совет по этому вопросу будут признательны. Возможно, это просто проблема, которая возникает только на этом мониторе

.

Ответ или решение

Как специалист в области ИТ, стоит отметить, что проблемы с отображением частоты обновления монитора через DisplayPort и HDMI могут возникать по нескольким причинам, включая несовместимость драйверов, неправильную конфигурацию системы или аппаратные ограничения. В данной ситуации проблема заключается в том, что драйвер amdgpu на Ubuntu 24.10 распознает монитор ASUS VP28U через DisplayPort с частотой 30 Гц, в то время как через HDMI частота составляет 60 Гц. Такое поведение может быть связано как с особенностями драйвера, так и с ограничениями аппаратного обеспечения, как самого монитора, так и графической карты.

Теория: Драйверы для графических карт содержат информацию о поддерживаемых разрешениях и частотах обновления в рамках определенных соединений. При использовании DisplayPort может происходить считывание неверной EDID (Extended Display Identification Data) информации, что приводит к некорректному распознаванию параметров дисплея. В отличие от HDMI, DisplayPort имеет отличия в системе определения поддерживаемых форматов экрана и может сталкиваться с проблемами несовместимости или ошибками передачи данных.

Пример: Распространенным примером является ситуация, когда при подключении через DisplayPort монитор не распознается правильно из-за неверного считывания EDID данных, что ограничивает частоту обновления до 30 Гц, в то время как HDMI соединение успешно считывает корректные данные и позволяет использовать 60 Гц. Это может быть связано с багами в драйвере или ограничениями конкретной версии ядра операционной системы.

Применение: Для решения данной проблемы рекомендуется выполнить следующие шаги:

  1. Обновление ядра и драйверов: Убедитесь, что у вас установлены последние обновления для ядра и пакета open source-драйвера amdgpu. Ваша версия драйвера 24.2.3 совместима с RX 7700 XT, однако для решений любых багов или обеспечивания оптимальной поддержки, обновление может стать необходимым.

  2. Проверка EDID: Используйте утилиты вроде edid-decode для проверки корректности данных EDID, считываемых при подключении через DisplayPort. Это поможет определить, неправильно ли передается информация о поддержка разрешения и частоты обновления.

  3. Настройка xrandr: В некоторых случаях можно вручную задать нужные параметры с помощью xrandr. Узнайте поддерживаемые режимы и добавьте нужный с помощью:

    cvt 3840 2160 60
    xrandr --newmode "3840x2160_60.00" <ModeLine>
    xrandr --addmode <DP-output> "3840x2160_60.00"
    xrandr --output <DP-output> --mode "3840x2160_60.00"

    Замените <DP-output> на соответствующий DisplayPort выход.

  4. Обращение к поддержке: Если ни одно из решений не помогает, стоит обратиться к поддержке Ubuntu или AMD для возможности подачи баг-репорта. Используйте ссылку на Launchpad для Ubuntu или AMD Support для получения помощи и регистрации проблемы.

  5. Альтернативный драйвер от AMD: Если open source-драйвер не решает проблему, вы можете попробовать установить официальный драйвер от AMD. Для этого убедитесь, что все зависимости установлены правильно и отсутствуют конфликты в пакетах.

Эти шаги и рекомендации должны помочь в устранении проблемы с неправильной частотой обновления через DisplayPort, но если они не сработали, возможен вариант специфической несовместимости, которая может быть исправлена только обновлением драйверов или аппаратных компонентов.

Оцените материал
Добавить комментарий

Капча загружается...