LINUX.ORG.RU

Nvidia Optimus, почти получилось...

 , , ,


0

2

Здравствуйте. Вот в чем дело: настраивал Nvidia Optimus вот по этой статье. В итоге Графический режим стартовал, но разрешение экрана 640х480 и больше не ставится. При добавлении опций в секцию «Device» файла xorg.conf, как в статье, в настройках просто появляется второй монитор... Помогите донастроить!.. :) Вот содержимое xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 370.23 (buildmeister@swio-display-x86-rhel47-02) Mon Aug 8 18:33:47 PDT 2016

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Module"
Load "modesetting"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
BusID "1:0:0"
VendorName "NVIDIA Corporation"
Option "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

А так пробовал?

Section "Screen"
    Identifier    "Screen0"
    Monitor        "Monitor0"
    Device        "Device0"
    DefaultDepth    24
    SubSection "Display"
        Depth    24
        Modes     "1980x1024" "1024x768" "800x600"
    EndSubSection
EndSection 

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

Попробовал, ничего не изменилось. Там в статье-руководстве есть в конце решение, как с этим бороться, но там надо поменять часть кода в зависимости от своего железа, и я не знаю, чо на чо там менять. Рукожоп...

TaPX ()

HorizSync 28.0 - 33.0

Ну и чего ты ждешь? Откуда ты выкопал эти 33 кГц? Я так понимаю, что сам выдумал, потому что даже во времена VGA было 36 кГц. Тут, скорее, 83 кГц должно быть. Вообще, зачем тебе секция монитора? Убери ее нафиг. Все данные монитор сам сообщит. В остальное не вдавался, но это бросилось в глаза.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от TaPX

Для тех, кто захочет помочь, потребуются логи. Выкладывай на pastebin.com файл /var/log/Xorg.0.log

Zubok ★★★★★ ()

У меня такое на debian было. Решал переустановкой nvidia-driver.

Zomba444ok ()
Ответ на: комментарий от TaPX

Я не совсем понимаю, какая у тебя конфигурация мониторов. Ты что-то по VGA подключаешь?

[    34.702] (--) NVIDIA(GPU-0): CRT-0: connected
Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

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

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

Нет, ну это не годится. Просил же стереть. Он же тебе явно пишет, что то говно, которое ты положил в конфиг по частоте монитора, дает ожидаемое:

[    21.359] (II) modeset(G0): Not using mode "1366x768" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "800x600" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "400x300" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "800x600" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "400x300" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "1024x768" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "512x384" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "640x480" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "640x512" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "800x600" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "896x672" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "928x696" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "960x720" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "700x525" (hsync out of range)
[    21.359] (II) modeset(G0): Not using default mode "1024x768" (hsync out of range)

Ты же хочешь, чтобы мы тут и конфиг за тебя почитали. Он нормально читает EDID из матрицы, ему не надо конфигурировать монитор. А тут написано hsynс. out. of. range. Убирай Monitor, убирай Screen, убирай Server. Оставь только это и давай лог. Даже если не запустится.

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "Device0"
    Driver "nvidia"
    BusID "1:0:0"
    VendorName "NVIDIA Corporation"
    Option "AllowEmptyInitialConfiguration"
EndSection
Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 3)
Ответ на: комментарий от TaPX

оставить только эти две секции?

Мой брат, когда был совсем был маленький, такие вот диалоги реализовывал:

— Мальчик, как тебя зовут?
— Что?
— Как тебя зовут?
— Кого?
— Тебя!
— Меня?

:) :)

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

И строка Identifier «Device0» теперь вот такая: Identifier «nvidia»

TaPX ()
Ответ на: комментарий от Zubok
[marat@arch ~]$ xrandr --listproviders 
Providers: number : 2
Provider 0: id: 0x2b0 cap: 0x1, Source Output crtcs: 2 outputs: 1 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x45 cap: 0x2, Sink Output crtcs: 2 outputs: 4 associated providers: 1 name:modesetting
[marat@arch ~]$ 
TaPX ()
Ответ на: комментарий от TaPX

Вот эту конфигурацию попробуй, которую сама nvidia предлагает для своего проприетарного драйвера.

http://us.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html

BusID только пропиши. Расскажи, что получилось

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от TaPX

Да, вот этот вот конфиг все же лучше. Nvidia Optimus, почти получилось... (комментарий)

Да и результаты вывода xrandr --listproviders вроде бы обнадеживающие и такие, какие и ожидаются. У modesetting - Sink Output, а у NVIDIA-0 - Source Output. но вот что-то не переключает он вывод. Вернее, подключает как раз. По прежним логам видно, что EDID из монитора получает как раз modesetting, а nvidia отключена от выхода, поэтому она использует виртуальное разрешение 1024x768 по умолчанию, о мониторе nvidia ничего не знает.

[    21.288] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[    21.288] (**) NVIDIA(0):     device CRT-0 (Using EDID frequencies has been enabled on
[    21.288] (**) NVIDIA(0):     all display devices.)
[    21.290] (==) NVIDIA(0):
[    21.291] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[    21.291] (==) NVIDIA(0):     will be used as the requested mode.
[    21.291] (==) NVIDIA(0):
[    21.334] (II) NVIDIA(0): Validated MetaModes:
[    21.334] (II) NVIDIA(0):     "CRT-0:nvidia-auto-select"
[    21.334] (II) NVIDIA(0): Virtual screen size determined to be 1024 x 768
[    21.344] (WW) NVIDIA(0): CRT-0 does not have an EDID, or its EDID does not contain a
[    21.344] (WW) NVIDIA(0):     maximum image size; cannot compute DPI from CRT-0's EDID.
[    21.344] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[    21.835] (II) modeset(G0): Printing probed modes for output LVDS-1
[    21.835] (II) modeset(G0): Modeline "1366x768"x60.0   71.80  1366 1414 1446 1526  768 771 777 784 
-hsync -vsync (47.1 kHz eP)

Вот, кстати, по твоей ссылке в разделе Troubleshooting есть такой пункт: Resolution, screen scan wrong. EDID errors in Xorg.log.

This is due to the NVIDIA driver not detecting the EDID for the display. You need to manually specify the path to an EDID file or provide the same information in a similar way.

To provide the path to the EDID file edit the Device Section for the NVIDIA card in Xorg.conf, adding these lines and changing parts to reflect your own system:

Section "Device"
        ...
       	Option		"ConnectedMonitor" "CRT-0"
       	Option		"CustomEDID" "CRT-0:/sys/class/drm/card0-LVDS-1/edid"
	Option		"IgnoreEDID" "false"
	Option		"UseEDID" "true"
EndSection

Добавить эти пункты в секцию к «nvidia» прежнего конфига. Только проверь, что /sys/class/drm/card0-LVDS-1/edid есть. Если есть, то тогда nvidia тоже получит данные о LVDS-1, как и modesettings. Я полагаю, что если эта секция нормально сработает, то у тебя будет нормальное разрешение. То, что 1024x768 у тебя подключается, говорит о том, что к видеовыходу подключилась как раз nvidia.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 7)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.