Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.032 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Перевод документации драйвера NVIDIA для Linux, часть 7
Драйвер NVIDIA для Linux поддерживает все стандартные видеорежимы VGA и VESA , также как и наиболее популярные пользовательские режимы; режимы с двойным сканированием и чересстрочные режимы поддерживаются для всех графических процессоров, совместимых с данным драйвером.
Для использования одного или нескольких стандартных видеорежимов в Х-интерфейсе, вы можете просто добавить их в опцию «Modes» , например:
Modes «1600×1200» «1024×768» «640×480»
в соответствующей секции Display файла конфигурации Х-интерфейса (обратитесь к страницам руководства XF86Config(5x) или xorg.conf(5x) за дополнительной информацией). Или же воспользуйтесь утилитой «nvidia-xconfig» для запроса дополнительного видеорежима, например:
nvidia-xconfig —mode 1600×1200
Обратитесь к странице руководства по nvidia-xconfig за дополнительной информацией.
19А. Глубина цвета, бит на пиксель и шаг
Хотя и не связанное напрямую с созданием видеорежимов, число бит на пиксель является проблемой при определении максимального доступного разрешения; по этой причине стоит объяснить часто возникающую путаницу между понятиями глубины цвета и числа бит на пиксель. Глубина цвета – это число бит данных, используемых для хранения пикселя. Поддерживаемые глубины — 8, 15, 16, и 24. Большинство видеокарт, однако, хранит информацию пикселей в размерах 8, 16, или 32 бит; это объем памяти, выделяемый пикселю. При заданной глубине цвета Х-интерфейс выбирает число бит на пиксель, используемое для хранения данных. Ниже приведена таблица, показывающая сколько бит для пикселя используется для того или иного значения глубины цвета:
| Глубина цвета (DEPTH) | Бит на пиксель (BPP) |
| 8 | 8 |
| 15 | 16 |
| 16 | 16 |
| 24 | 32 |
Напоследок, понятие шага (pitch) означает, сколько байт линейного буфера кадров разделяет данные одного пикселя и данные расположенного непосредственно под ним. Вы можете посчитать его как горизонтальное разрешение, умноженное на число байт на пиксель (число бит на пиксель, деленное на 8). На практике, шаг может быть больше этой величины из-за необходимости выравнивания.
19В. Максимальные разрешения
Драйвер NVIDIA для Linux поддерживает разрешения вплоть до 16384×16384 пикселей для GeForce GTX 400 и более новых графических процессоров, до 8192×8192 пикселей для графических процессоров GeForce 8 и более новых, вплоть до 4096×4096 для GeForce 7 и более ранних, хотя максимальное возможное разрешение для вашей системы может быть ограничено объемом видеопамяти (смотрите раздел полезные формулы ниже) и максимальным поддерживаемым разрешением дисплея (монитора/плоской панели/телевизора). Также обратите внимание, что хотя использование видеоналожения не ограничивает максимального разрешения или частоты обновления, но объем полосы пропускания видеопамяти, занятый видеорежимом, оказывает влияние на качество видеоналожения.
19С. Полезные формулы
Максимальное разрешение – это функция как объема видеопамяти, так и выбранного числа бит на пиксель:
HR * VR * (bpp/8) = объем используемой видеопамяти
Другими словами, объем используемой видеопамяти равен результату умножения горизонтального разрешения (HR) на вертикальное разрешение (VR) и на число байт на пиксель (число бит на пиксель, деленное на 8). С точки зрения техники, объем используемой видеопамяти равен произведению шага на вертикальное разрешение, и размер шага может быть больше величины HR * (bpp/8) для соответствия требованиям оборудования, чтобы шаг был кратен некоторой величине.
Обратите внимание, что речь пока идет об объеме памяти, требующемся для буфера кадров, но память также может использоваться другими задачами, такими как OpenGL и кеш пиксельных карт.
Другая важная зависимость имеется между разрешением, пиксельной частотой и частотой вертикальной синхронизации (частотой обновления изображения):
RR = PCLK / (HFL * VFL)
Другими словами, частота обновления изображения (RR) равна результату деления значения пиксельной частоты (PCLK) на общее число пикселей изображения: горизонтальной длине кадра (HFL), умноженной на вертикальную длину кадра (VFL) (обратите внимание, речь идет о длине кадра, а не только о видимых разрешениях). Как описано в документе «XFree86 Video Timings HOWTO», вышеприведенная формула может быть представлена в виде:
PCLK = RR * HFL * VFL
Имея максимальное значение пиксельной частоты, можно изменять значения RR, HFL и VFL как угодно до тех пор, пока результат произведения всех трех остается в заданном пределе. Пиксельная частота записывается в файл журнала Х-интерфейса.
Файл журнала будет иметь строку вида:
(—) NVIDIA(0): ViewSonic VPD150 (DFP-1): 165 MHz maximum pixel clock
показывающую значение максимальной пиксельной частоты для дисплея.
19D. Как проверяется доступность видеорежима
Традиционно в XFree86/X.Org при проверке доступности видеорежима сервер Х-интерфейса начинает с внутреннего списка стандартных VESA режимов, с добавлением режимов, заданных в строках ModeLines файла конфигурации Х-интерфейса. Эти режимы проверяются по таким критериям как попадание в заданные диапазоны частот HorizSync / VertRefresh для монитора в секции Monitor файла конфигурации Х-интерфейса, максимальной пиксельной частоте графического процессора.
После построения сервером Х-интерфейса списка корректных видеорежимов берется список запрошенных пользователем видеорежимов (перечисленных в строке «Modes» секции Display в секции Screen файла конфигурации X-интерфейса), и определяется наиболее подходящий проверенный режим для запрошенного пользователем.
Драйвер Х-интерфейса NVIDIA использует вариацию вышеизложенной последовательности для проверки доступности видеорежима. В процессе запуска сервера Х-интерфейса драйвер Х-интерфейса NVIDIA строит список доступных видеорежимов для каждого дисплея. Возможные режимы берутся из ряда источников:
- информация EDID дисплея;
- встроенный список видеорежимов сервера X-интерфейса;
- заданные пользователем строки modelines в файле конфигурации Х-интерфейса;
- стандартные видеорежимы VESA .
Для каждого возможного видеорежима проводится проверка доступности. В основном проверка происходит схоже с традиционной для XFree86/Xorg: параметры временной синхронизации сверяются с допустимыми диапазонами HorizSync и VertRefresh и максимально возможной пиксельной частотой. Каждая стадия проверки может независимо управляться с помощью опции конфигурации Х-интерфейса «ModeValidation» .
Обратите внимание, что при проверке временных характеристик режимов с чересстрочной разверткой, в VertRefresh задается частота полей, а не частота кадров. Например, в следующей строке задана вертикальная частота обновления 87 Гц:
# 1024x768i @ 87Hz (industry standard)
ModeLine "1024x768" 44.9 1024 1032 1208 1264 768 768 776 817 +hsync +vsync Interlace
Некорректные режимы отбрасываются, корректные вставляются в список. Обратитесь к секции «Отчет о проверке доступности видеорежима» ниже за информацией о результате проверки для каждого видеорежима..
Доступным видеорежимам присваивается уникальное название, гарантирующее неповторяемость в списке для дисплея. Название составляется по принципу:
x_ , (например, «1600x1200_85» )
Название может быть дополнено другой цифрой для гарантии уникальности, например «1600x1200_85_0» .
После добавления доступных видеорежимов в список совпадающие видеорежимы отбрасываются и список сортируется так, чтобы наиболее подходящие режимы были наверху списка. Сортировка проводится по:
- разрешению;
- источнику (режимы, сообщенные по EDID , имеют преимущество над VESA -режимами, которые в свою очередь имеют приоритет над режимами из встроенного списка сервера Х-интерфейса);
- частоте обновления.
После проверки доступности всех видеорежимов из всех источников и построения списка, все режимы с одним разрешением сравниваются, наиболее подходящий добавляется в список повторно с наименованием, состоящим только из разрешения (например, «1600×1200»). В этом случае при запросе режима с традиционным названием («1600×1200») вы получите тот же режим, что и раньше (наиболее подходящий режим с разрешением 1600×1200); дополнительно все режимы из списка могут быть запрошены по уникальному названию.
При повышенном уровне выводимой информации в журнал Х-интерфейса (обратитесь к разделу «Часто задаваемые вопросы» за информацией об увеличении уровня выводимой в журнал информации) список видеорежимов каждого дисплея выводится в журнал.
После построения списка видеорежимов для всех дисплеев, запрошенные видеорежимы (заданные в файле конфигурации Х-интерфейса) ищутся в списке видеорежимов. Каждый запрошенный видеорежим, для которого есть совпадающий видеорежим из списка, сообщается серверу Х-интерфейса и становится доступным к выбору пользователем через «горячие» клавиши сервера Х-интерфейса (ctrl-alt-плюс/минус) и расширения Х-интерфейса XRandR и XF86VidMode. Если только один дисплей используется экраном Х-интерфейса, тогда при запуске сервера Х-интерфейса все видеорежимы из списка дисплея становятся доступными серверу. Обратитесь к описанию опции «IncludeImplicitMetaModes» конфигурации X-интерфейса в приложении B за дополнительной информацией.
19E. Режим NVIDIA-AUTO-SELECT
Вы можете запросить специальный видеорежим через файл конфигурации Х-интерфейса, с названием «nvidia-auto-select» . Когда драйвер Х-интерфейса строит список видеорежимов, один из режимов выбирается как «nvidia-auto-select», новая запись заносится в список, и «nvidia-auto-select» используется как уникальное название для видеорежима.
Режим «nvidia-auto-select» введен в качестве подходящего режима для дисплея, характеристики которого неизвестны. Например, «nvidia-auto-select» обычно имеет физическое разрешение для плоских панелей, сообщенное дисплеем по EDID , или параметры временной синхронизации из числа детально описанных в EDID . Режим «nvidia-auto-select» гарантированно присутствует и всегда проверен на доступность драйвером Х-интерфейса для дисплея. Если все способы сбора информации о дисплее окончились неудачей, драйвер Х-интерфейса назначает встроенный видеорежим 800 x 600, 60 Гц режимом «nvidia-auto-select».
Обратите внимание, что режим «nvidia-auto-select» вовсе не обязательно будет режимом с наибольшим из возможных разрешением или частотой обновления. Скорее, режим «nvidia-auto-select» выбирается как приемлемое умолчание. Процесс выбора примерно следующий:
-
Если информация EDID , сообщенная дисплеем, содержит сведения о предпочитаемых параметрах временной синхронизации видеорежима, и эти параметры определены как доступные, то этот видеорежим будет использован как «nvidia-auto-select». Вы можете проверить, сообщает ли дисплей информацию EDID о предпочитаемых параметрах временной синхронизации видеорежима, запустив сервер Х-интерфейса с параметром logverbosity больше или равно 5 (обратитесь к разделу «Часто задаваемые вопросы» за информацией об увеличении уровня выводимой в журнал информации), и обратившись к выводу информации EDID в журнале; если присутствует строка:
Prefer first detailed timing : Yes
Если не было запрошено видеорежимов через файл конфигурации Х-интерфейса, или все запрошенные режимы не были найдены в списке, то драйвер Х-интерфейса устанавливает режим «nvidia-auto-select», так что сервер Х-интерфейса всегда запустится. Соответствующее предупреждение будет записано в файл журнала Х-интерфейса в этом случае.
Вы можете добавить режим «nvidia-auto-select» в файл конфигурации Х-интерфейса командой :
nvidia-xconfig —mode nvidia-auto-select
и перезапуском сервера Х-интерфейса.
Драйвер X-интерфейса в целом гораздо лучше справляется с выбором видеорежима «nvidia-auto-select» если доступна информация о дисплее по протоколу EDID . По этой причине и рекомендуется пользоваться опцией конфигурации Х-интерфейса «UseEDID» только в крайнем случае. Обратите внимание, что вместо полного отключения любого использования информации EDID через опцию «UseEDID», вы можете индивидуально отключать отдельные использования EDID с помощью переменных «UseEDIDFreqs» , «UseEDIDDpi» и/или «NoEDIDModes» опции конфигурации Х-интерфейса «ModeValidation» .
19F. Отчет о проверки доступности видеорежима
При уровне детализации журналирования 6 или выше (например, startx — -logverbose 6 ), в файл журнала Х-интерфейса записывается каждый видеорежим, определенный для построения списка каждого дисплея, с результатом проверки доступности. Для режимов, признанных некорректными, в журнал записывается информация о причинах такого заключения.
19G. Приведение параметров временной синхронизации видеорежимов к идентичным значениям
Некоторые функции, такие как «активное» стерео с использованием TwinView , требуют контроля за используемыми в видеорежимах параметрами временной синхронизации. Для точного управления устанавливаемыми параметрами временной синхронизации для каждого дисплея вы можете задать видеорежим, которые вы желаете использовать, строкой modeline (воспользовавшись одним из генераторов modeline), используя уникальное название. Например, если нужно использовать видеорежим 1024×768, 120 Гц на каждом мониторе в режиме «активного» стерео TwinView , вы можете задать в секции Monitor файла конфигурации Х-интерфейса строку вида:
# 1024x768 @ 120.00 Hz (GTF) hsync: 98.76 kHz; pclk: 139.05 MHz
Modeline "1024x768_120" 139.05 1024 1104 1216 1408 768 769 772 823 -HSync +Vsync
Затем, в секции Screen создать метарежим вида:
Option «MetaModes» «1024x768_120, 1024x768_120»
19H. Дополнительная информация
Генератор строк modeline для XFree86, соответствующий стандарту GTF, доступен на сайте gtf.sourceforge.net. Другие генераторы можно найти поиском по слову «modeline» на freshmeat.net.
Глава 20. Настройка Flipping и UBB
Драйвер NVIDIA для Linux поддерживает общий буфер заднего плана (UBB) и OpenGL переключение. Эти функции обеспечивают улучшение производительности в некоторых случаях.
- Общий буфер заднего плана (UBB): доступен только для графических процессоров семейства Quadro (за исключением Quadro4 NVS) и включен по-умолчанию, если имеется достаточный объем видеопамяти. Он может быть отключен с помощью опции UBB файла конфигурации Х-интерфейса, описанной в приложении B. Когда UBB включен, все окна используют совместно один и тот же буфер заднего плана, шаблонов и глубины. При наличии нескольких окон, использование этих буферов никогда не превышает размера, используемого текущим окном, развернутым на полный экран. Однако, даже в случае одного небольшого окна, использование этими буферами видеопамяти такое же, как для случая окна, развернутого на весь экран. В этом случае видеопамять может использоваться менее оптимально, чем при отключенном UBB.
- Переключение (Flipping): Когда включено OpenGL переключение, замена изображения из буфера OpenGL может осуществляться путем смены буфера, с которым работает DAC (цифро-аналоговый преобразователь), вместо копирования изображения из заднего буфера в передний; это обычно дает гораздо большую производительность и позволяет осуществлять безразрывную замену изображения во время вертикальной прорисовки (когда установлена переменная среды _GL_SYNC_TO_VBLANK ). Имеются некоторые условия, при соблюдении которых OpenGL может осуществлять переключение, но в целом на графических процессорах GeForce или более новых OpenGL может осуществлять переключение когда выполняется одно полноэкранное приложение OpenGL , не перекрытое другими окнами, и задана переменная __GL_SYNC_TO_VBLANK. Дополнительно, на процессорах семейства Quadro переключение может осуществляться даже если окно OpenGL приложения частично перекрыто другими окнами или не развернуто на полный экран, или же не включена переменная __GL_SYNC_TO_VBLANK.
Глава 21. Интерфейс файловой системы Proc
Вы можете использовать интерфейс /proc для получения текущих сведений о драйвере, установленной видеокарте на базе NVIDIA, и состоянии AGP .
Информация содержится в нескольких файлах в /proc/driver/nvidia .
/proc/driver/nvidia/version — сообщает версию установленного драйвера и версию компилятора GNU C, использовавшегося для сборки модуля уровня ядра Linux.
/proc/driver/nvidia/warnings — драйвер NVIDIA пытается обнаруживать потенциальные проблемы с ядром системы и предупреждает о них, используя механизм ядра printk() , обычно записываемый системой в /var/log/messages . Важные предупреждения драйвера NVIDIA также сохраняются в выделенные текстовые файлы в этом каталоге /proc.
/proc/driver/nvidia/cards/0. 3 — сообщает информацию о каждой установленной видеокарте NVIDIA (модель, название, прерывание, версия BIOS , тип шины). Обратите внимание, что версия BIOS сообщается только если запущен Х-интерфейс.
/proc/driver/nvidia/agp/card — информация о возможностях AGP установленной видеокарты с интерфейсом AGP .
/proc/driver/nvidia/agp/host-bridge — информация о чипсете (модель и возможности AGP ).
/proc/driver/nvidia/agp/status — текущее состояние AGP . Если поддержка AGP включена в системе, используется драйвер AGP , то выдается информация о скорости работы AGP порта, статусе использования возможностей Fast Writes (быстрая запись) и Side Band Addressing (передача адреса по боковой шине).
Драйвером AGP может быть или NvAGP (встроенный драйвер AGP NVIDIA), или AGPGART (драйвер agpgart.o ядра Linux). Если вы видите «inactive» сразу за AGPGART, то это означает, что контроллер AGP запрограммирован драйвером, но в настоящей момент не используется.
Строки SBA и Fast Writes показывают, используется ли одна из этих функция в данный момент. Учтите, что возможность задействования зависит от нескольких факторов. Даже если и видеокарта, и чипсет поддерживают эти функции, драйвер может не использовать их в целях повышения стабильности работы системы. Это особенно относится к AGP Fast Writes.
Глава 22. Управление энергопотреблением
Эта версия драйвера поддерживает управление энергопотреблением, основанное на стандартах APM и ACPI . Это означает, что драйвер поддерживает режимы APM приостановки (suspend) и выход из него, и режимы ACPI ожидания (standby, S3) и приостановки (S4).
BIOS вашего ноутбука должен поддерживать управление энергопотреблением на основе APM , а не на основе ACPI . Многие, но не все, ноутбуки с графическими чипами GeForce 2 и GeForce 4 поддерживают APM . Вы можете проверить наличие поддержки APM через интерфейс «procfs» (проверьте наличие /proc/apm ) или через информацию, выдаваемую при загрузке ядра с опциями:
% dmesg | grep -i apm
сообщение, указывающее на наличие поддержки APM :
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16)
или сообщение об отсутствии поддержки APM :
No APM support in Kernel
Обратите внимание, что если вы используете ядро операционной системы версии 2.6, и ядро настроено на поддержку и ACPI , и APM , модуль уровня ядра NVIDIA будет собран с поддержкой управления энергопотреблением на основе ACPI . Если вы желаете использовать APM , необходимо пересобрать ядро операционной системы без поддержки ACPI и переустановить драйвер NVIDIA для Linux.
Иногда чипсет теряет свои настройки AGP в режиме приостановки, и может вызвать неработоспособность шины после выхода из него. Драйвер AGP в таких системах должен сохранять и восстанавливать состояние регистров системы; драйвер NVIDIA NvAGP уведомляется о событиях управления энергопотреблением и сохраняет конфигурацию на время остановки/возобновления работы.
Драйвер AGPGART ядра Linux версии 2.4 не поддерживает управление энергопотреблением, драйвер AGPGART ядра Linux версии 2.6 поддерживает, но лишь для нескольких чипсетов. Если вы используете один из этих драйверов, и замечаете, что система не выходит из режима приостановки, вы можете попробовать драйвер NVIDIA NvAGP. Отключение поддержки AGP (обратитесь к Главе 12 за дополнительной информацией об отключении AGP ) также позволяет решить эту проблему.
Большинство новых компьютеров поддерживают ACPI . ACPI поддерживается драйвером
NVIDIA для Linux при использовании ядра операционной системы версии 2.6 и более новой. Драйвер поддерживает режим ожидания (S3) и включает пробную поддержку режима приостановки ACPI (S4).
Если вы задействовали поддержку режима ACPI S4 посредством патчей «suspend2», вам необходимо настроить ядро Linux на динамическое определение числа страниц памяти для драйверов, чья работа приостанавливается в системе. Это выполняется командой от имени root :
% echo 0 > /sys/power/suspend2/extra_pages_allowance
Старые версии утилиты «suspend2» могут иметь другой интерфейс, в этом случае следующая команда должна быть выполнена от имени root:
% echo 0 > /proc/suspend2/extra_pages_allowance
Система не нуждается в перезапуске и данная настройка, как установлено, сохраняется между перезагрузками. Может понадобиться включить эту настройку в состав сценария загрузки. Однако, неудачное применение данной настройки приводит к зависанию и «засыпанию» системы. За дополнительной информацией о патчах suspend2 обратитесь к сайту проекта.
Подлагивает значек загрузки параметров
rutgerg
А тиринг есть?
И посмотрите вот это: https://vk.com/topic-114916478_34353901
Как я понял Option «metamodes» «nvidia-auto-select +0+0 < ForceFullCompositionPipeline = On >« устранит разрывы изображения (тиринг) даже при выключенной функции Allow Flipping.
Спасибо, после выполненения инструкции он пропал
Но возникает еще один вопрос
Почему при open source драйверах параметры открываются за 0.80s а с nvidia за 1.90s
Что же такой косячный этот nvidia driver
Участник с: 16 августа 2009
strace -tt systemsetting5
и sysdig
https://archlinux.org.ru/forum/post/196543/
Смотреть что долго
Зарегистрироваться или войдите чтобы оставить сообщение.
© 2006-2024, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.
Игровой сетап на linux
Хотел я написать о багах и разработчиках но подумал, что это никому не надо и напишу о том как я настроил себе удобное место для поиграть на linux.
Какое-то время назад купил проектор Epson EF-12. Вещь, просто класс. Это трехметровый телек, зависит от расстояния до стены. Проектор лазерный и потому цветопередача у него просто великолепная, я сравнивал с проектором Xgimi halo plus. Прям купил оба и один вернул в магазин. Когда видишь две картинки рядом, сразу понятно насколько лазерный проектор с 3lcd технологией превосходит аналоги. Другие лазерники стоят намного дороже и большие, выбрал этот. Причем обложка для статьи снята днем с прикрытой шторой, так что на деле изображение лучше. Но то дело вкуса во многом конечно.
Есть и проблемы. У этого проектора перестает работать блютус после сна. Поддержка epson на это не отвечает. Приходится перегружать. Так же недостаток этого проектора в том, что он «не игровой» то есть если его к компу подрубить по HDMI то input lag будет заметный, при этом играбельный, но у меня еще он и далеко от компа, так что нужен HDMI удлиннитель (в моем случае радио удлиннитель дает +20мс задержки, но это по словам китайцев-авторов), от которого задержка становится такой, что играть так совершенно невозможно. С коротким проводом вполне играбельно, но это в моем случае невозможно. На том я поначалу и успокоился, просто смотрел кино на большом телеке и был доволен. Но нашелся таки способ играть на неигровом проекторе. Это Steam Link, который программа, а не железка, просто ставится на андроиде из Goole Play.
У меня довольно много игр куплено по скидкам в стиме, иногда я играю на компьютере, но редко. По сути Steam Link это штука, которая делает то же самое, что Google Stadia или Geforce Now, но трансляция идет с вашего компьютера. После долгих выбираний настроек я таки выяснил как сделать чтобы задержки были не заметны и все стало удобно. Настройки самого Steam Link элементарны их там несколько всего, разберетесь, остальное нужное далее опишу.
Вопервых у меня стоит видеокарта Nvidia RTX 3080 16Gb. Она умеет захватывать картинку с помощью nvfbc или nvenc, что не грузит проц совсем. Это можно покрутить чтобы посмотреть, что быстрее. Это поддерживается в Steam Link. Во-вторых мне пришлось подключить проектор к одной локальной сети с компьютером. Причем я сделал это на 5Ггц wifi, так как проектор не имеет возможности проводного подключения. 5Ггц тут нужно чтобы wifi каналы были свободные от соседей. Причем по wifi у меня подключен к роутеру на 5ГГц только проектор, а все остальные устройства на 2.4Ггц чтобы у проектора был свободен весь канал и была скорость 100Мбит. Комп подключен к роутеру проводом. Этой скорости достаточно чтобы была идеальная картинка в играх. В противном случае она будет заметно портиться, но работать будет и поначалу я так и играл. Steam Link захватывает картинку видеокартой, жмет ее ей же и передает на клиента, там разжимает и показывает.
После этого я выбрал и купил себе геймпад. Это PS5 Dualsense. Начиная с ядра 5.12 в linux есть драйвер для этого геймпада. Сам геймпад подключается не к проектору (хотя так можно), а к ноутбуку по bluetooth чтобы вопервых были минимальные задержки, а во-вторых работала вибрация в геймпаде. Да, даже вибрация работает в linux. К ноутбуку же подключен звук. Steam Link умеет отдавать звук на клиент и захватывать геймпад на клиенте отдавая на комп, но это не нужно, чтобы не гонять все это по сети и не тратить канал портя картинку. Плюс лаг и косяки в звуке будут при плохой связи. Мало того Steam поддерживает интеграцию с этим геймпадом и если нажать кнопку PS на нем, он откроет Big Picture режим специально для телевизора-проектора. В итоге в настройках Steam Link был запрещен захват звука на сервере и геймпада на клиенте.
После того как все было подключено возникла одна большая проблема. Разрешения на ноутбуке и проекторе разные. Для того чтобы все транслировалось как надо пришлось заходить в настройки игры и делать ее запуск в окне с разрешением 1920х1080 как на проекторе. Тогда Steam Link понимает, что надо захватывать конкретное окно и показывает все идеально. Это делается только при первом запуске игры, не очень удобно конечно. В целом и не всегда надо, но в противном случае он будет запускать игры с нативным разрешением монитора моего ноута 2560х1600, что на проекторе не надо, а производительность ест.
Самого же разрешения в 1080p совершенно достаточно, я никаких огрехов не вижу, хотя долго думал до покупки, что надо 4k, так вот 4k нафиг не надо, большая часть фильмов в 1080p и игры тоже на него заточены примерно, в любом случае никаких «пикселей» на стене при проецировании не видать. Мало того при таком маленьком разрешении все красиво и при этом еще и производительность в играх просто так не жрется.
Сначала было подумал, что удобно будет иметь два монитора, один headless для стима и игр, который транслируется на проектор, второй с мышкой и рабочим софтом. Чтобы не возиться с настройками купил затычку для HDMI порта (5$), которая эмулирует телек с любым разрешением (Easydiy HDMI Dummy plug) и просто сделал чтобы все игры запускались на этом виртуальном мониторе. Но оказалось, что это неудобно. Было бы отлично, но есть масса проблем с фокусом окон, геймпадом и пр. Так как xserver не расчитан на то что на одном мониторе будут играть с геймпадом, а на втором работать с мышкой одновременно. Возиться слишком долго не захотел. Так что так и оставил автозапуск свернутого в системный лоток стима с одним монитором на ноутбуке, все прекрасно работает.
Что касается игр на linux в Steam, то у меня одна как-то не запустилась (Forza Horizon), больше никаких проблем не видел. Даже Cyberpunk 2077 прошел спокойно пару раз. Прошел не на этом сетапе подчеркну. Все работает отлично. Proton от Steam это конечно супер. Виндой я не пользуюсь уже лет пятнадцать, так что приятно, что игры стали так просто работать в linux, давно ни во что не играл.
В итоге процесс включения игры сейчас таков:
1. С пульта проектора запустить Steam Link клиент.
2. Выбрать геймпадом игру, так как Big Picture включится на ноутбуке сам и покажется на проекторе как только Steam Link подключится, а гемпад подключится к ноутбуку сам как только на нем нажата PS кнопка.
3. В первый раз приходится зайти в настройки игры и сделать чтобы запускалась в окне с разрешением 1920х1080.
4. Играть.
Нужно признать, что с некоторыми играми есть проблемы вроде зайти в настройки и выбрать нужное разрешение, или еще что то подобное, но мало совсем. В стиме сразу написано, что игра не поддерживает геймпад, и я не вожусь с ремаппингом кнопок и прочими выкрутасами, нет и нет. Но таких игр мало и я просто в них не играю или на ноуте играю иногда, это разного рода Tactical RPG, которых на консолях не бывает просто. Иногда подумываю купить трекпад и кейпад чтобы в этом сетапе играть в клавамышные игры развалясь в гамаке, но пока не надумал, не уверен, что это будет удобно, в этом смысле геймпад конечно удобно держать в руках.
Приставочные игры работают в таком сетапе идеально все, что я пробовал. С учетом того что полный сетап PS5 стоил когда то еще 70к (не слежу за ценами), а игры на нем намного дороже чем в Steam, этот сетап проектор+геймпад намного дешевле, а в моей библиотеке много купленных по скидке за 2-15Eur игр, такая коллекция на PS5 стоила бы целое состояние, плюс всегда можно добавить в Steam игру, установленную на стороне, если вы понимаете о чем я, но я этим никогда не пользовался. Ну, и да, ноут у меня топовый, тут не знаю какое надо железо чтобы так хорошо работало.
P.S. никаких сложных махинаций и трехкилометровых команд для игр на linux не будет, не надо это все больше, отдыхайте, игры это ведь развлечение. Но геймпад для меня что-то новое после клава-мыши, очень непривычно. Если же будет желание решать проблемы с двумя мониторами (не один где два вместе, а именно два отдельных в xorg.conf), то вот часть решений:
1. Если будет моргать Big Picture, уберите галочку в nvidia-settings у второго монитора Allow Flipping
2. Если будут артефакты в играх, поставьте галочку Force full composition pipeline там же в nvidia-settings
3. Если надо на втором мониторе отдельном чтобы геймпад работал то в /etc/udev/rules.d/99-joystick.rules надо написать KERNEL==»event*», ENV==»?*», MODE:=»0644″. Иначе ему запрещено.
Но я оставил просто один монитор и не стал возиться до конца, там еще с фокусом окон проблемы возникли. Если найдете решение этого, пишите в комент. Два монитора все же приятнее чем один, так как не надо игры в оконный режим переводить и разрешение настраивать.
P.P.S Да, так как в ubuntu не нашлось иконки, которая бы показывала заряд контроллера, написал себе скриптик для этого.
После совета в коментарии купил себе кабель HDMI 10м длинной, хорошо экранированный. В итоге сделал себе еще пару скриптиков для удобства использования при подключении по кабелю. Они переносят Big Picture окно на HDMI и звук на него переключают, а когда я это выключаю, переносят основное стим окно обратно и звук тоже, что бы на компе играть можно было сразу.
https://github.com/3DRaven/Steam_switcher
По кабелю удобнее то, что игры стартовать можно сразу в полноэкранном режиме и не возиться с их настройкой. Теперь включение игр происходит так:
- Нажать на Dualsense PS кнопку. Подождать. Откроется на компе основной стим.
- Нажать снова. Откроется Big Picture и перенесется на проектор.
- Играть.
Большой плюс кабеля в том, что не надо выключать игры что бы посмотреть на проекторе кино, так как просто переключается вход. Также купил себе кейпад копеечный китайский и играю лёжа в гамаке с клавомышкой, удобно. Под мышку подложил планшет. Это же комп, мне геймпад удобен только для гоночек и платформеров, для остального есть лучшее 🙂
Спустя время от схемы выше я перешел к другому скрипту.
Он работает примерно так же как первый, но еще делает иконку с процентом заряда геймпада на экране. Меню с возможностью переключить экраны. Помогает подсоединить геймпад по блютус повторно если он уснул. Позволяет переключать экраны кнопками на геймпаде если надо. Все так же следит за стимом и если включился big picture переводит все на проектор и при выключении обратно на основной монитор.
Кабель обычный сменил на hdmi оптический. Не покупайте обычные! Оптический длинной 15м и никаких искажений или проблем с ним! Просто класс. Лаг я тоже не замечаю, наверное он есть, но все работает идеально. Лучше стимлинка.
Так что теперь если надо поиграть я просто жму на геймпаде кнопу PS до момента когда все не включится (5-10с) 🙂 Коннект проснувшегося геймпада, запуск стима если он не запущен, открытие big picture, переключение на проектор, все происходит само, когда надоело, все само выключается. Удобно, никаких швов или лишних телодвижений, которые меня поначалу все же раздражали. При этом скрипт один экран выключает целиком, а второй включает когда надо поиграть. В таком варианте никаких проблем с фокусом, разрншением или любых других. Все прям без швов работает, абсолютно идеально.
- Настройка Linux
- Игры и игровые консоли