LINUX.ORG.RU

Гибридная графика и внешний монитор.

 , , ,


0

2

Привет всем! У меня ноутбук Lenovo Legion 5 (4800h-vega и rtx2060). Дистрибутив Manjaro. В биосе есть возможность переключаться между дискретной и гибридной графикой.

Можно ли настроить так чтоб при использовании гибридной графики можно было подключать внешние мониторы (2 разъёма есть - hdmi и type-c displayport).

Сейчас внешние мониторы работают только при использовании дискретки. Драйвер nvidi, конечно, проприетарный.


у меня гибрид с интелом - при подключении внешнего 4к hdmi моника при программно отключенной дискретке он работает, но оооочень лагают и внешний и встроенный дисплеи
при программно включенной дискретке все ок но она тупо постоянно молотит даже если отключить внешний монитор и встроенная панель работает на встройке (под виндой с этим норм, дискретка корректно засыпает при отключении монитора)
хз как на амуде, но если я правильно понял логику интела, то разъемы для внешнего монитора один фиг подключены к дискретке, и если её «усыпить» то она транслирует сигнал на разъемы дюже медленно, а т.к. встройка (или ксорг), видимо, синхронизирует панели и лагают сразу оба два. по хорошему, надо бы проверить тандерболт - он возможно более разумно транслируется, но у меня монитор только в дисплейпорт умеет и не факт что эксперимент будет адекватен :-)

rukez ★★★★
()

Выходная мощность адаптера питания 230 Вт

Купил кипятильник, теперь страдай.

Кстати, его на ровный стол нельзя ставить, перекрываются воздухозаборные отверстия снизу.

anonymous
()

Пришли вывод команд

stat -c '%N' /sys/class/drm/card?/device/driver
stat -c '%N' /sys/class/drm/card?-*
xrandr --listproviders
xrandr --listmonitors

станет более ясно, что и как у тебя подключено, и работает ли оффлоадинг.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

‘/sys/class/drm/card0/device/driver’ -> ‘../../../../bus/pci/drivers/nvidia’ ‘/sys/class/drm/card1/device/driver’ -> ‘../../../../bus/pci/drivers/amdgpu’

‘/sys/class/drm/card1-eDP-1’ -> ‘../../devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card1/card1-eDP-1’

Providers: number : 2 Provider 0: id: 0x54 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 1 associated providers: 1 name:Unknown AMD Radeon GPU @ pci:0000:05:00.0 Provider 1: id: 0x1f6 cap: 0x2, Sink Output crtcs: 4 outputs: 4 associated providers: 1 name:NVIDIA-G0

Monitors: 1 0: +*eDP 1920/381x1080/214+0+0 eDP

halo
() автор топика
Ответ на: комментарий от halo

Спасибо за кашу.

К интеграшке амд подключен только выход eDP. Остальные выходы видимо подключены к дискретке нвидия, но они не видны даже в sysfs. Однако у нвидия провайдера видна капабилити sink output, т.е. нвидия готова отдавать свои выходы провайдеру картинки. Попробуй выполнить команду

xrandr --setprovideroutputsource 1 0

После этого выходы дискретки должны появиться в выводе xrandr и в гуевом конфигураторе мониторов.

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)

dell precision 7540 (nvidia quadro rtx 3000, аналог +- rtx2060), стоит arch пришлось поколдовать с udev правилами, драйвер 465, гибридная графика работает идеально, просыпается и засыпает карточка как надо, HDMI работает: при втыкании монитора карточка просыпается, при выдергивании - засыпает обратно. Tensorflow и cuda так же идеально. Ну и в игрухах все хорошо. В общем гибридная графика работает лучше, чем на винде, потому что там даже заснув подсасывает батарейку и шумит вентиляторами. В линуксе тихо и холодно. А с 470 драйвера вроде еще и wayland обещают.

azako
()
Ответ на: комментарий от iliyap

разметку не очень помню, торопился ответить, прошу прощения за кашу.

halo
() автор топика

И ещё обнаружил, что при включенной гибридной графике если воткнуть внешний монитор до включения ноутбука то он становится основным и единственным, ноутбучный экран не работает.

halo
() автор топика
Ответ на: комментарий от halo

Да вроде никакого колдовства особо. Вот вроде все мои конфиги, касающиеся оптимуса. Сейчас на арче так, но конфиги переносил из генты где так же все работало идеально. Возможно как отправная точка пригодится, потому что как там с AMD я хз.

➜ uname -a
Linux lair 5.10.32-1-lts #1 SMP Wed, 21 Apr 2021 12:28:13 +0000 x86_64 GNU/Linux
➜ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile) (rev 02)
01:00.0 VGA compatible controller: NVIDIA Corporation TU106GLM [Quadro RTX 3000 Mobile / Max-Q] (rev a1)
➜ modinfo nvidia | grep version
version:        465.24.02
srcversion:     346F5A4224D0AAD51F81F28

/etc/modprobe.d/blacklist.conf

blacklist pcspkr
blacklist nouveau
blacklist nvidia
blacklist i2c_nvidia_gpu
blacklist ucsi_ccg

/etc/modprobe.d/nvidia-pm.conf

options nvidia "NVreg_DynamicPowerManagement=0x02"
options nvidia_drm modeset=1
options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_EnableStreamMemOPs=1 NVreg_EnablePCIeGen3=1 NVreg_EnablePCIERelaxedOrderingMode=1

/etc/modprobe.d/nvidia-rmmod.conf

remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia

Немного шаманства с udev правилами, из оф документации если переносить - были непонятки с засыпанием/просыпанием, такой вариант работает у меня. /etc/udev/rules.d/80-nvidia-pm.rules

# Remove NVIDIA USB Type-C UCSI devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1"

# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"

# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"

/etc/X11/xorg.conf.d/optimus.conf

Section "ServerLayout"
        Identifier "layout"
        Screen 0 "intel"
        Inactive "nvidia"
        Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
        Identifier "nvidia"
        Driver "nvidia"
EndSection

Section "Screen"
        Identifier "nvidia"
        Device "nvidia"
EndSection

Section "Device"
        Identifier "intel"
        Driver "intel"
        BusID "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "intel"
        Device "intel"
EndSection

Вроде ничего не забыл.

azako
()
Последнее исправление: azako (всего исправлений: 1)

Мой опыт говорит, что эти nvidia optimus'ы хрень полнейшая. Когда рендер иксов происходит на встройке и монитор подключен к дискретке — монитор лагает. Когда рендер на дискретке, тогда лагает встроенный дисплей. В итоге, чтоб не страдать, использую ноут исключительно как десктоп (один фиг wifi без костылей после саспенда отваливается). Встроенный (киберкотлетный геймерский) дисплей использую лишь для какой-нибудь статичной фигни. Красивую картинку какую-нибудь вывести, аудиоплеер или электрическую схему.

Slavik763
()
15 августа 2021 г.

я тож с этими кедами жиденько обосрался. захотелось лигатур, теперь страдай.

tz4678 ★★
()
Ответ на: комментарий от azako

Нужна помощь

Можете расписать более подробно по шагам все действия по установке/настройке Optimus, по крайней мере как вы делали?
Я смотрел по ссылке NVidia Optimus, но там вариантов много. Какой заработал у Вас?

P.S. Вот еще ссылка на сообщение с полным описанием моей проблемы: Ссылка. Похожая, как у автора данного топика.

vibondarenko
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.