Вопрос или проблема
У меня есть ноутбук Dell G3 3779, который поставляется с GTX1050Ti, с Arch Linux и i3-wm, и я хочу подключить к нему монитор по HDMI. Насколько я знаю (исправьте меня, если я не прав), даже на Windows нет возможности запустить основной экран на GTX, а также нет возможности запустить HDMI монитор на интегрированной видеокарте, однако Windows комбинирует их без проблем. В моем xorg.conf у меня есть:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/TTF"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/100dpi"
FontPath "/usr/share/fonts/75dpi"
EndSection
Section "Module"
Load "glx"
EndSection
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Monitor"
Identifier "Monitor1"
EndSection
Section "Device"
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection
Section "Device"
Identifier "Card1"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
(Я опустил все, что не связано с мониторами)
С этой конфигурацией изображение выводится только на мой основной монитор, и xrandr -q
выводит следующее:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 380mm x 210mm
1920x1080 60.13*+ 59.93 48.07
<другая информация о разрешении>
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Важно отметить, что моя мышь может перемещаться на другой экран, и я вижу, как она отображается в виде черного креста, но я не могу ничего с ней сделать. Если я изменю одну строку в xorg.conf для устройства с Identifier "Card0"
следующим образом:
driver "intel"
-> driver "nvidia"
то тогда изображение будет выводиться только на мой HDMI монитор, а первый монитор будет показывать tty, как и прежде, до запуска startx
. Вывод xrandr -q
в этом случае:
Screen 0: minimum 8 x 8, current 1360 x 768, maximum 32767 x 32767
HDMI-0 connected primary 1360x768+0+0 (normal left inverted right x axis y axis) 160mm x 90mm
1360x768 60.02*+
1920x1080 59.94 50.00 29.97 25.00 23.98 60.05 60.00 50.04
1280x720 60.00 59.94 50.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94
Он вообще не выводит информацию о других дисплеях, он видит только один дисплей (плохое разрешение не является проблемой, так как это старый телевизор). Также мышь, в отличие от предыдущей конфигурации, не может перемещаться на второй монитор.
Таким образом, вопрос состоит в следующем: как настроить Xorg так, чтобы xrandr выводил на оба моих монитора? Один связанный ответ, который я нашел, касался Ubuntu:
https://askubuntu.com/questions/796827/hdmi1-is-disconnected
и он не сработал для меня. Более того, мой Microsoft Edge полностью сломался, пока я не переустановил драйверы nvidia (он показывал случайные пиксели). Я также пытался установить bumblebee, но не продвинулся далеко. Оба файла конфигурации изначально были сгенерированы автоматически: один с помощью Xorg --configure
(который выводит на основной дисплей) и другой с помощью nvidia-xconfig
(который выводит на HDMI дисплей). Для дополнительной информации, результат выполнения lspci -k | grep -A 2 -E "(VGA|3D)"
:
00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630]
DeviceName: Onboard - Video
Subsystem: Dell CoffeeLake-H GT2 [UHD Graphics 630]
--
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)
Subsystem: Dell GP107M [GeForce GTX 1050 Ti Mobile]
Kernel driver in use: nvidia
Я использую двойную загрузку, но безопасная загрузка отключена (вопрос xrandr не обнаружает HDMI порт)
Ладно, я как-то решил проблему.
Краткое решение:
Следуйте этой странице вики arch linux, особенно разделам 3.1 и 4.1. Этого должно быть достаточно.
Долгое объяснение:
Я следовал этой странице вики arch linux, разделу 3.1 для Reverse PRIME. Конфигурационный файл Xorg, который я украл из этого раздела, не содержал BusID для dGPU, но поскольку это было в вики, я подумал, что так и должно быть. Конечно, это не сработало, и я искал решение где-то еще. Однако, когда я пробовал это снова, я случайно скопировал конфигурационный файл из раздела 4.1, и поскольку там были Bus ID для обеих GPU, после выполнения xrandr --setprovideroutputsource Intel NVIDIA-G
xrandr увидел второй монитор и вывел изображение на него. Но мне нужно было переключить активные и неактивные экраны в конфигурации и поменять GPU в команде выше, так как мне нужно было, чтобы мой iGPU был связан с dGPU, а не наоборот (это было бы наоборот, если бы мой второй монитор был лучше).
Этот вопрос также был опубликован на форуме arch linux, но в теме не содержалось слишком много дополнительной информации.
Примечание: пожалуйста, следуйте всей странице вики, не пропускайте шаги. Кроме того, изменив конфигурационный файл правильно, я сделал множество лишних шагов, которые не знаю, повлияли ли они на результат (например, установил параметры ядра, как я показал в комментариях). Руководство должно быть исчерпывающим в этом смысле.
Ответ или решение
Решение проблемы с подключением HDMI-монитора на ноутбуке Dell G3 3779 с Arch Linux
Если вы столкнулись с проблемами обнаружения HDMI-монитора на вашем ноутбуке Dell G3 3779 с установленной Arch Linux и использованием оконного менеджера i3, не отчаивайтесь. Эта проблема может быть решена с помощью правильной настройки конфигурации Xorg, включая настройки для интегрированного (Intel) и дискретного (NVIDIA) графических процессоров.
1. Подробности о проблеме
Вы уже обратили внимание на то, что на Windows оба графических процессора могут использоваться совместно, но на Arch Linux это требует дополнительных шагов. Чтобы добиться правильной работы с двумя дисплеями, необходимо правильно настроить файл конфигурации Xorg.
2. Конфигурация Xorg
Ваша первоначальная конфигурация Xorg может стать причиной проблемы, если вы не указали BusID для обоих графических процессоров. При использовании решения PRIME, важно правильно связать интегрированный и дискретный графические процессоры. Вот пример того, как может выглядеть ваша конфигурация Xorg:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Device"
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection
Section "Device"
Identifier "Card1"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card1"
EndSection
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Monitor"
Identifier "Monitor1"
EndSection
Обратите внимание, что важно указать BusID для обоих графических процессоров, иначе Xorg не сможет правильно их инициализировать.
3. Использование xrandr
После того как вы отредактируете и сохраните файл конфигурации Xorg, перезагрузите X-сессию. После этого используйте команду xrandr
, чтобы убедиться, что все дисплеи обнаружены:
xrandr --setprovideroutputsource Intel NVIDIA-G
Эта команда связывает ваш интегрированный GPU с дискретным GPU, позволяя вам использовать вывод с обоих дисплеев.
4. Проблемы с разрешением и отображением
Если вы заметили проблемы с разрешением или некорректным отображением, настройте конфигурацию xrandr
для обоих дисплеев:
xrandr --output eDP1 --auto --primary
xrandr --output HDMI-0 --right-of eDP1 --auto
Эти команды установят главный дисплей и расположат HDMI-дисплей рядом с ним.
5. Дополнительные шаги и рекомендации
- Убедитесь, что у вас установлены последние версии драйверов для обеих видеокарт. Для этого выполните:
sudo pacman -Syu nvidia nvidia-utils xf86-video-intel
- Вы можете также ознакомиться с официальной документацией Arch Wiki о PRIME для дополнительных рекомендаций и особенностей настройки.
Заключение
Проблема с подключением HDMI-монитора на вашем ноутбуке может быть решена путем правильной настройки файлы конфигурации Xorg и использования команд xrandr для связывания двух графических процессоров. Обязательно следуйте шагам, описанным в данной инструкции, и корректно указывайте параметры для каждого графического процессора. Успехов!