PerdolingStation - мы сделаем из вас инженера, а потом вы сможете поиграть!
Привет, интернет! Сегодня я расскажу, как я, коренной пкшник с большой Steam-библиотекой, собрал себе консоль для 4К 120Hz с потреблением видеокарты на уровне PS5 pro (230 ватт) и шумом ниже, чем включенный увлажнитель воздуха. Моя жена может спокойно спать, когда я играю на своей консоли из другой комнаты удаленно. А еще эта консоль встроена в тумбу (замкнутое пространство), при этом температура в тумбе не выше 40 градусов, даже если играть долго. Бонусом я собрал PerdolingPortal (PlaystationPortal-аналог) для удаленной игры хоть из туалета (ну а откуда еще-то). Получил все эмуляторы всех консолей до PS4 включительно и игры из них прям в интерфейсе Steam. А также никакой клавы-мышки. Никакой Винды. И всё это можно повторить в домашних условиях.
Это будет длинная история моего почти двухгодичного ковыряния в железках, софте, проблемах шнуров, цветов и стандартов. История будет избыточная для вас, однако позволит сильно глубже понять некоторые аспекты, которые раньше казались совершенно обычными. Позволит сильно расширить кругозор, а также подарит кучу интересных новых идей, как можно применить некоторые штуки и глубже понять технологии. Я пройдусь по совершенно всем аспектам того, что я делал, и поделюсь болью, на которую наткнулся, и как вышел из ситуации.
Перед началом приключения, я отмечу, что у меня тоже есть свой дом-дурачек, и поэтому, порой, я буду ссылаться на свою инфраструктуру умного дома, а конкретно на Home Assistant, но в каждом таком случае будут показаны варианты, как сделать это и без умного дома.
Букв будет много, возможно, слишком много, поэтому можете не углубляться в детали с первого чтения, а возвращаться к статье, как к энциклопедии и сборнику рецептов и советов на будущее. Воплощая то, что больше всего понравилось. Я не встречал такого материала в сети, и хочу чтобы те, кто решит повторить мой путь, сэкономили себе много времени и получили результат намного быстрее! Стартуем!
Последнее техническое: Я в России, поэтому ссылки будут на озон в основном. Деньги в рублях. Многие ссылки которые я прикладываю, могут не открываться из России, надеюсь для вас это не проблема.
Начнем сначала - купил я себе телевизор
Заканчивая ремонт, и скрипя зубами отдавая огромные деньги за встраиваемую мебель, дошла очередь и приятных покупок - до техники. И купил я себе телек который всегда хотел. А хотел я 4х сторонним ambilight с одинаковыми рамками со всех сторон, висящий на стене, без единого провода, и саундбар под ним. Так в итоге и вышло.
Поскольку Ambilight запатентован компанией Philips и чтобы не платить сверху еще 30к за хороший кастомный, я пошел покупать Philips. Против конторы в целом ничего не имею, кроме вопроса «что это?». (за белый фон - сорри, редактор не хочет кушать мои обрезанные в ai фоны и png)
На мой взгляд, такое в 2022 году — это какой-то позор. Столько кнопок просто не нужно (к счастью, всем этим пультом можно не пользоваться, спасибо HDMI-CEC).
Взял я в итоге Philips 55OLED807 2022 года модельный ряд, и этой покупкой я очень доволен, сбылась мечта, теперь всё ровно так, как я хотел. Пересмотрев фильмы в 4К на OLED-панели, я подумал, что раз телевизор поддерживает 120Hz и всякие VRR, FreeSync, то очень странно на нем не играть.
Вообще, у меня никогда не было никакой консоли, как-то вот так вышло, что этот мир прошел мимо меня, а я всегда сидел за компом, искренне не понимая, чего там делать в «Фифе» и «Мортал Комбате» днями, когда у вас на консолях даже на GTA San Andreas нельзя установить мод на ВАЗ 2110, про что вообще может идти речь? На этом мой интерес к консолям и потух. Поскольку я очень люблю контролировать происходящее в своей технике, мне хотелось самому выбирать, как я буду играть.
И тут пришел SteamDeck
Представлять Steam Deck, наверное, не стоит, но он поменял очень многое. Я сразу зацепился за то, что это же интерфейс в операционке, который полностью управляется с геймпада! Этого мне очень не хватало для сбора консоли.
Вообще, конечно, такие интерфейсы, разумеется, есть в опенсорсе, я их все тыкал и даже хотел разрабатывать свой, потому что все они меня не устраивали. Можете поглядеть на них сами.
- https://playnite.link/
- https://www.launchbox-app.com/about
- https://pegasus-frontend.org/
- https://www.gog.com/galaxy
Многие из них делаются для ретро-комбайнов, а мне это вообще не интересно.
А вот Steam, уже заточенный под всю мою библиотеку, это то, что нужно. И то, что это Linux, меня тоже очень порадовало, ведь я что-то в этом понимаю, и наконец-то не будет неуправляемых «перезагрузитесь, ибо обновление» и прочих восхитительно-раздражающих приколов Винды.
На Винде я делать консоль не хотел именно из-за операционки. Борьба с ней — это та игра, в которую я не хочу играть. Однако в сети есть те, кто хочет, и вы можете ознакомиться с тем, как у них это выходит.
Увидев SteamDeck и вспомнив про Steam Machines, я понял, что пришла пора думать про свою консоль! Даже если SteamOs как-то вшита в SteamDeck, и ее нельзя просто скачать, я ее достану, хоть дампом консоли. Любой ценой. У моего друга уже есть SteamDeck, так что можно приключаться! Я был согласен на дикий пердолинг, и я его получил.
Как я уже раньше сказал, у меня были подходы к вопросу «заставить Винду запускать полноэкранный Стим», допилить напильником, и будет консоль. Но эти подходы всегда меня загоняли в грусть. Всегда находилась ситуация, которая требовала бы мышку и клавиатуру, как бы я не стремился к обратному. А Винда постоянно оттягивала на себя внимание.
Сейчас, к слову, расцвет портативок, и Винда не собирается, по-видимому, сдаваться, показав портативку Xbox ROG Ally на Винде с лаунчером, так что тут даже появляется некая конкуренция. Это всегда приятно, надеюсь, SteamOs станет еще лучше от этого.
А чо хочу то?
Я решил, что хочу раскрыть весь потанцевал своего телевизора и получить 4К 120Hz HDR VRR. Вот прям всё, что придумали и сделали, мне сюда, пожалуйста, я уже за это заплатил.
Разумеется, я хотел полноценный опыт консоли, а именно:
- Пробуждение с геймпада
- Автоматическое включение источника сигнала на нужный HDMI
- Никакой мышки и клавиатуры, подключен только геймпад
- Нет приколов с операционкой «ой, апдейт», «ой, сломалось», «ой, вот тебе лог, иди по SSH чини», мне этого на работе хватает, давайте тут без этого.
Ну и раз мы уж на пека, то я раскатал губу:
- Разумеется, железо, которое тянет 4K хотя бы 75 кадров все новинки на максималках, иначе это несерьезно всё.
- Никакого шума! Буквально, чтобы с играющей консолью на полной мощности можно было бы спать.
- Пробуждение консоли за 1-7 секунд, чтобы никаких загрузок, никаких ручных действий.
- Возможность подключать свою периферию (мне очень комфортно играть в наушниках)
- Возможность использовать любые геймпады, какие захочу
- Много места, чтобы устанавливать все игры
- Никакой компиляции шейдеров! У нас тут, знаете ли, консольный гейминг.
В целом, мою идею можно описать так: как бы один раз попердолиться, чтобы больше не пердолиться вообще. И да, я не буду экономить на этом занятии, потому что стоит задача максимально ультимативной консоли. Поэтому многое из того, что я буду показывать дальше, для вас может быть избыточно ненужным. Я лишь хочу получить край технологий, пощупать что сегодня возможно технически. Потому что мне это интересно, и я это могу.
Получилось ли оно? Ну вот и узнаем вместе!
SteamOs или не SteamOs
Обратившись в интернет со своим вопросом «а можно ли скачать SteamOS», я получил довольно любопытный ответ, звучал он так: «Да можно, но тебе оно не надо»
Почему же?
Да потому что то, что лежит в сети и называется SteamOS, довольно старо и отличается от того, что стоит в консолях. А вытаскивать билд с консолей через вариант восстановления Steam Deck тоже не лучшая затея, там много адаптаций под портативку и конкретное железо. Однако мысль про полноценную консоль, разумеется, посетила не меня одного, поэтому вместо официальной SteamOS, которая, по слухам, «вот-вот» выйдет, у нас есть ряд дистрибутивов, которые делают всё то же самое или даже больше. Вот они слева направо.
ChimeraOS — https://chimeraos.org/ геймерский дистрибутив, заточенный под установку на портативки и десктопы и получения опыта СтимОС, его я и взял в первую очередь, но быстро отказался от него, помучавшись месяцок. Дистрибутив (в то время, когда я его тыкал) был сыроват, вел себя порой неадекватно, и все косяки, которые я хотел исправить, исправлялись в нем со скрипом или вообще никак. Главное, он был плох в основных вещах — запуске игр. Иногда игры просто перезапускались, что-то просто шло не так, и мне приходилось разбираться, почему же опять что-то не так.
HoloISO — https://github.com/holoiso-eol/holoiso очень много упоминается в статьях и видосах по этой теме, однако забейте, это мертвое нечто, когда-то кем-то собранное явно чтоб поиграться. Не развивается, не поддерживается, хрен скачаешь, хрен поставишь, и вообще не ясно, зачем это упоминают. Забудьте, что я это писал, этой штуки не существует.
Bazzite — https://bazzite.gg/ (Баззит или Баззайт, я так и не выяснил), но вот эта штука просто снесла мне голову, особенно когда на очередном заведенном issue в Chimera я прочитал комментарий «а забейте, я поставил Bazzite, там таких проблем нет», в этот момент я форматнул диск и поставил Bazzite. Кстати, в РФ возможны проблемы с доступом к сайту (уж не понятно, с какой из сторон, просто имейте это в виду, оно то работает, то нет — такие уж времена).
Есть еще всякая специфика типа https://nobaraproject.org/ и https://garudalinux.org/, но мне-то нужна консоль, а эти дистрибутивы такое не делают.
Кажется, если бы я не нашел Bazzite, я бы плюнул на свою идею, но это действительно то, как должен выглядеть современный дистрибутив. И это какой-то рай.
Зацените:
- Красивый (правда красивый) лендос для дистрибутива! (Уже немало для линукс-мира)
- Внятные ченжлоги
- Очень доходчивый ридми, в котором сразу понятно, с чем имеем дело
- Дофигища скриптов
ujust
— это такой Ansible на минималках, в котором можно автоматизировать ряд действий (в рамках одного хоста, конечно). И всё, что вам нужно опционально, вынесено в эти скрипты — мы много будем о них говорить. - Восхитительная дока, в которой можно что-то найти, так еще оно будет работать и порой даже помогать!
- Коммунити — дискорд, форум, редит.
- Есть немало статистики по разным аспектам использования ОС и ее популярности.
В общем, реально, я когда это увидел, у меня аж челюсть отвисла, что так круто можно майнтейнить бесплатный геймерский дистрибутив. Это респект!
Разумеется, я выбрал его и начал разбираться, а что там с поддержкой железа..
Выбираем железо
Начать стоит с места, куда я планировал приземлить консоль. Это тумба под телеком. Как-то давно, еще до телека, я гулял по торговому центру и увидел обалденный камин, так он еще и оказался увлажнителем, там вместо огня — вода, и всё так хитро сделано, чтобы вода испарялась в виде языков пламени. Зацените это великолепие!
Соответственно, внутри тумбы (центральной) осталось не так чтобы много места, и это давало некоторые ограничения на выбор комплектующих.
Однако, как потом выяснилось, давало еще и огромное преимущество, чем если бы тумба была полностью закрытой.
По результатам исследования ограничений железа выяснилось следующее:
- Проц можно брать любой, тут никаких ограничений нет, хоть Intel, хоть AMD, хоть со встройкой, хоть без.
- Видяху надо брать AMD — рекомендации тут. Нюанс в том, что карты NVIDIA хреново работают именно в интерфейсе консоли. Есть их поддержка, и они даже запустят игры, но пока со скрипом запускают консольный интерфейс Steam, а это то, ради чего мы тут собрались. Вот тут короткий шортс, как оно «работает» на момент публикации этой статьи:
- На всё остальное ограничений нет, можно ставить любые диски любых объемов. С оперативкой тоже нет ограничений, как и с сетевыми и другими устройствами.
Тут стоит сказать одно слово про карты Intel. Дискретные карты Intel. Да-да, те самые, которые B580 и т.д. Они внезапно работают (как встройки, так и дискретки), в них всё функционирует как надо, и если вы почему-то хотите остановиться на карте Intel, то да, всё работает. Я лично тестировал только встройку, однако есть информация, что и на дискретках всё будет ок.
Выбираем видеокарту
Поскольку есть ограничения, и больший бюджет железа уходит на видяху, вот с нее и начнем. Я глядел на вот эту картинку которую заботливо делает канал с довольно глупым названием, но отличным наполнением - "Мой компьютер" тык
Это очень наглядно показывает разные поколения карт в одном списке, тестированных в единых условиях, что говорит о некотором представлении о производительности.
А потому смотрим вверх на 4К и красный лагерь, и видим, что у нас тут выбор не велик, 7900 в разных вариантах и свежая 9070xt в разных вариантах. 7900xtx я не рассматривал, они очень слабо различаются в перформансе в 4К, однако 7900xtx кушает на 50 ватт больше. И в обычном ПК можно было бы сказать «ну и чего эти 50 ватт?», но у меня задача — минимальный шум и замкнутая ДСПшная тумба! Ну и ценник, за старый топ просят от 120 тысяч рублей! (Чего ваще?) Когда 9070xt в исполнении Nitro+ удалось взять за 82 под хороший курс доллара.
Но ценники сегодня — это какая-то шутка, я больше не буду на них останавливаться. Они слишком сильно гуляют. Тут сделал ремарку только потому, что это все же значимая часть бюджета.
Учтите что это реально очень огромная штука! Я даже не ожидал что настолько огромная. (по размерам ровно такая же как rtx 5090)
Из минусов хочется отметить лишь новый коннектор 12whp
которые горят порой у людей (мутная история не пойми кто в ней виновен, но для 300 ватт tdp, кажется можно было и старые оставить, учитывая что у Asus TUF исполнения этой же карты - старый разъем)
Tuf исполнение во всем лучше, и выглядит круче на мой взгляд.
Однако оно высокое, и коннектор у него в «стандартном» месте для видеокарты, а потому со шнурами оно вообще никак не залезет в тумбу по высоте. Печаль.
У исполнения Nitro крепеж 12whp находится в прикольном месте, и не выпирает из корпуса, что позволило здорово вписаться в мою историю с тумбой.
Второй минус, после нового коннектора - подсветка, очень яркая, во всю длину карты, которую у меня не вышло отключить программно (из за странной поддержки карты через openrgb на момент 07.2025)
и поэтому было принято решение отключить ее физически! Делается это, если что, вот так:
Почему я вообще считаю нитро крутой? Ну, всё банально, в ней очень много железа, а значит, теплоотведение будет хорошим, и вентиляторы не будут орать. Ну, и это сразу видно в цене на исполнения. Поэтому, если для вас фактор шума важен, не экономьте на исполнении. Я как-то взял 3060 Ti себе в самом дешевом исполнении, даже в шумодаве от наушников играть рядом с таким тяжело. Больше я так делать не буду.
Процессор
Процессор можно брать любой, как я уже и сказал. Сегодня мир таков, что для игры в 4к пойдет любой процессор, хоть 8 летней давности, упор за редким исключением будет в видеокарту. Потому, тут все на вкус и цвет. У того же тг канала есть хорошая картинка и про процы тоже
Я взял процессор intel core i5-14400
со встроенной видяхой, и сделал это т.к знаю про одну проблему с картами AMD на linux еще до сборки, и хотел побороть эту проблему ее intel встройкой, поэтому то и не ryzen. И еще, я хотел поэкспериментировать, как себя будет вести multi-gpu и какие это создаст проблемы, и еще я планировал использовать встройку для трансляции игр. Яж сюда не в игрушки играть пришел, в самом то деле. Обо всем этом, как и о итогах таких затей - будет дальше по тексту.
Конечно, я смотрел на TDP и баллы бенчей, и мне показалось, что это такой средненький вариант, который в целом должен работать нормально. А именно, не замедлять собой видеокарту и при этом не нагревать воздух излишне. Прелесть 1700 сокета в том, что я всегда смогу докинуть чего мощнее, если пойму, что бюджет по теплу у меня есть, а CPU хотелось бы побольше. (спойлер, пока такие мысли меня не посещали)
Материнка
Поскольку корпус это тумба (буквально), важно было уместиться в размеры, и это прям задача. Все приходится проверять и высчитывать.
Я взял TUF GAMING B760M-E D4, да, работает на DDR4-памяти, при этом поддерживает процы от 12 до 14 поколения все (да, даже последние камни типа 14600 работают с DDR4). Она хороша по интерфейсам, охлаждению и размерам, и без лишнего (Wi-Fi/BLE). Большего мне и не нужно. В целом, наверное, для самого края технологий отлично бы подошла ASUS TUF GAMING B760M-PLUS на DDR5, да, соглашусь, но вышло вот так.
По итогу, это не единственное, что я со временем хотел бы поменять, но когда я это затевал, у меня были разные варианты построения концепции консоли. Была даже идея сделать консоль «за цену PlayStation», но это скучно, хотелось сделать «с потреблением как у PlayStation Pro» — что в итоге и получилось. Поэтому выбор железа тут порой неоптимален, и я это отлично понимаю.
Диск
Важная часть — это диск. Я уже очень давно ушел от HDD (точнее, увез их в NAS). А с SATA SSD тоже перестал общаться, т. к. зачем, если можно брать NVME, которые шустрее и меньше в размерах, и питание отдельное не нужно, и шнуров меньше. Сначала я взял диск на 2 TB, но, установив всякого, понял, что это не так-то и много. Поэтому бахнул себе 4 ТБ.
Вот тут-то точно хватит каждому. Очень советую данный мув, даже учитывая, что это недешево. К слову, из небрендовых — Netac вполне бодрый, как по тестам на ютубе, так и по реальной эксплуатации. В моем десктоп-компе под игры такой на 2 ТБ трудится уже третий год, не то чтобы это показатель, но и жаловаться не приходится.
А вот так выглядит мое «установлю все игры», как видите, места тут еще полно! (желтое — эмуляторы).
С железом пока все — собираем и поехали играться.
При чем тут камин?
В начале я рассказывал, что камин, хоть накладывал ограничения на размер комплектующих, дополнительно давал бонусы, и это так. Дело всё в том, что в камине внутри стоят 6 ламп, которые греют воду, чтобы она испарялась. Всё это очень сильно греется.
А потому камин сделан как огромный железный радиатор, и отлично работает с высокими температурами, и не боится нагрева. А это замечательно для размещения компьютера под ним — получаешь огромный радиатор, который отводит тепло! А если на него еще снизу дуть холодным воздухом наверх! Так будет вообще замечательно, он даже нагреваться не успевает.
Конечно, всегда есть вариант, при котором вода из камина зальет компьютер, и всё помрет — если не хуже, и не рекомендуется никому. Но я поживу пока так.
Предвосхищая вопрос, а работает ли игры и камин вместе — да, работают, температуры повыше, но норм, однако когда вентилятор сильно дует вверх, то огонь выглядит смешно, и совсем не так, как задумывалось.
Начнем сборку
Вот так все выглядело до установки пк. (ну точнее я его вынул чтобы сфоткать как видно по пропилам)
Сверху это выглядит вот так
А с железками вот так
Все впритык, но не катастрофа.
С камином выглядит не так понятно, и в целом довольно страшно, но все под контролем, там датчики температуры от умного дома, и умная розетка если что.
Про охлаждение
Как понятно из фоток выше, я запилил 3 отверстия в тумбе, дабы создать воздушный поток хоть какой то, и оно бы все на задохнулось.
Дуть снизу вверх было отличной идеей, камин весь в отверстиях для охлаждения и отлично впитывает тепло, как радиатор. Снизу я поставил 140-мм вентилятор. С боков по 90. Там места маловато было, да и 140 довольно широкий сам по себе еще. Там с боков вообще довольно мутноватая история, если пытаться оттуда забирать воздух и дуть им в центр, поднимая всё это дело нижним вентилятором наверх (как я изначально и планировал), то получается нагрев больше, чем если этими вентиляторами выдувать воздух, даже учитывая, что выдувается он в стенку ящика, и места там, ну вообще мало. Но по приборам, так правда эффективнее вышло, так и оставил.
Управление пк по сети
Еще отдельно докупил вот эту приблуду, для управления пк через PCI.
Ей через Home Assitant можно включить (ну это то и умная розетка может сделать если в биосе настроено повторение за розеткой поведения), но главное тут то, что можно адекватно выключить, компьютер. Он прям отправит нормальный сигнал на завершение работы. Все это разумеется работает с очередного мобильного приложения eWelink.
Кнопконажиматель и аппаратную клавишу соединенную с материнкой не предлагать - пробовали)
Не то чтобы это была большая прям польза, но что-то выключать удаленно комп розеткой, как то перебор по мне, а потому, пока оставил эту штуку. Но в целом, можно обойтись и ssh плагином для умного дома с sudo reboot.
Светюльки на этой плате можно отключить через интеграцию в HA, но для надежности, я всеже бахнул их изолентой. Управляйка умеет только во вкл выкл, и текущий статус показывает.
В целом, не то чтобы полезная вещь. От розетки толку побольше, там хоть потребление можно поглядеть. Но теперь вы лучше понимаете, нужна ли вам такая приблуда.
На этом все по сборке железа, идем разбираться что там с операционкой.
Ставим ось и знакомимся
У https://bazzite.gg/ есть довольно много вариантов их дистрибутива
Он сделан не только для десктопов, но и для некоторых портативок. Нас же интересует версия «Theater PC», у нее в описании написано, что эта версия для дивана. Она сразу входит в консольный интерфейс, не парит вводом пароля или открытием «Стима», а делает это самостоятельно. Обычный же десктоп входит в интерфейс KDE/GNOME.
Дополнительно нас спрашивают про вашу видяху и предпочтения по предпочтительной desktop GUI.
Как понятно со скрина, оригинальный Steam Deck работает с KDE (но на Arch), а тут под капотом Fedora, а работать можно на чем нравится. Мне нравится Gnome. Из приятного, оба интерфейса уже уехали с X11 на Wayland, если это вам о чем-то говорит.
Не парьтесь насчет того, что будет, если вы вставите другую видеокарту. Вам не придется переустанавливать ось, оно заработает само. Все эти галки мало на что влияют, почти всё потом можно поменять изнутри скриптами. Кроме выбора KDE/Gnome, это позже будет поменять не так просто.
C установкой дистрибутива всё банально, обычный установщик любого линукса, тут стандартно — режете флешку через balenaEther https://etcher.balena.io/ и вперед.
С 4 Тб диском тоже никаких проблем нет.
Когда всё установлено, заходим в Стим, и всё, всё готово!
Тут можно было бы завершать статью, но это ж пека пердолинг, замаскированный под консольный гейминг, так что мы только начали.
Кто вообще сделал этот bazzite?
Bazzite — это творение universal-blue (https://universal-blue.org/). Опенсорс «дистрибутор» (собиратор) крутых линуксов, и Bazzite только одно из их дистрибутивов, полистайте офсайт, там довольно красочно всё. Сами себя они позиционируют как «DevOps команда для вашего настольного Linux». Мол, вы, ребята, работайте, а мы займемся тем, чтобы собирать вам дистрибутив и балансировать между последними фичами и стабильностью. Astra Linux здорового человека, короче.
Официально спонсируется Cloudflare. Откуда деньги в реальности, мне копать было лень, в Штатах M&N очень любят (если верить тем, кто говорит, что про это хоть что-то знает), поэтому такие штуки могут быть спонсированы кем угодно. Для нас важно, что это не васянство, а вполне понятные ребята. Правда, порой их ресурсы недоступны из РФ, имейте это в виду. (Хотя разбери уж тут, кто тут кого ограничивает)
База по immutable OS
Начнем с базы, Bazzite — это Linux, а конкретно — Fedora, но не простая, а Silverblue. Что это за Silverblue? Это immutable OS — неизменяемая система. Такой подход давно применяют в аппаратных embedded железках, в телефонах (обновления Android сейчас также приходят). И вот наконец мы дожили, что это приходит и в обычные операционки.
Immutable — такое знакомое слово разработчикам, и ни о чем не говорящее всем остальным.
Давайте по-простому. Вот представьте себе мир, в котором в операционной системе просто физически нельзя ничего сделать с файлами. Они только для чтения, хоть заудаляйся, ничего не произойдет (привет всем причесавшим в детстве системные каталоги Винды, Андроида, или удалившим их).
Кажется просто? А вот додумались сделать это не так давно. Конечно, когда впервые слышишь об «неизменяемости» операционки, возникают вопросы, а данные-то как там хранить? Всё просто — раздел с данными совершенно обычный, в него можно писать, читать, удалять. Неизменяемая часть только системная.
Зачем оно?
Идея неизменяемости операционки нужна для простой вещи: ты ничего не можешь сломать! Совсем!
Всё, что ты можешь поломать, это конфигурация, никакие системно значимые файлы не могут быть удалены или изменены. Это дает безопасность, ведь нельзя просто подменить бинарь. Это дает гарантию работоспособности: если мы это потестили, то у тебя будет то же самое. И это дает очень легкое обновление и откат.
Immutable != immutable
В steamOS, как и в bazzite, тоже присутствует immutable. Реализован же этот механизм иначе. В steamOS классический blue/green деплой, который переключает весь /root
раздел на другой образ операционки (похожий механизм реализован в обновлениях андроид), используется для этого RAUC и Casync, если верить интернетам.
В bazzite immutable работает через OSTree, и это похоже на докер с гитом (потому что отчасти это буквально оно и есть). Все ченджи приходят слоями (докер) и накатываются единым коммитом (гит), и прелесть неизменяемости в том, что вы без труда откатываетесь обратно на старый коммит, всего одной командой. Если пробовали на дремучем линукс-сервере после обновления какого-нибудь пакета вернуть всё как было — отлично понимаете восхитительность затеи.
Уже понятнее, но а как конфижить-то систему? Пакеты там ставить, софт?
Тут посложнее, давай разбираться.
Ставить софт — пожалуйста, он будет в пространстве твоего пользователя (по умолчанию пользователь называется bazzite). Для софта есть множество вариантов.
Flatpack в консоли или его новый GUI,
brew https://brew.sh/ (да, тот самый, с Мака) как пакетный менеджер, через который тоже можно ставить всё, что нужно (mc/ncdu/nmap/htop, ну вы знаете). Brew используется потому, что он работает с папкой пользователя, а не системной.
dnf/yum есть? Мы же в Fedora как-никак? А с этим всё любопытнее. Пакеты этих пакетных менеджеров вшиты в систему и обновляются вместе с ней, поэтому вручную ничего накатить через них не выйдет. Есть варианты попробовать через сам механизм Ostree
rpm-ostree install <pkg>
, но в случае конфликтов версий ничего не установится, без конфликта — всё будет работать.
А вот с конфигурацией системы посложнее. Что-то можно поменять под рутом (fstab/cron), а что-то только из-под своего юзера (systemd, например). В целом база такова.
/usr
RO bind-mount всегда приезжает снаружи. Нельзя редактировать даже под root-юзером./etc
— 3-way merge (всё как в гите). Можно вносить правки, если нет конфликтов, всё поедет, если есть, будешь решать конфликт руками перед обновлением./var
— отдельный persist (переживает апдейты). Напомню, что/home
юзера — это/var/home
, поэтому да, локальные файлы пользователя переживут апдейты и откаты.
Сразу предупрежу, если вы раньше не сталкивались с immutable, но работали в обычном Linux, теперь это будет несколько «иначе». Будет непривычно, неудобно, но со временем привыкаешь. И даже кайфуешь.
Вы знаете Docker? Ну тот, что достал всех разрабов, к которым бегают девопсы и что-то там собирают в свои контейнеры. Так вот, immutable в Ostree — это буквально Docker + Git (почти Git). Как в свое время Docker был всего лишь красивой связкой нескольких уже работающих штук, так и тут Ostree — это переиспользование уже существующих механизмов для достижения такой вот красоты.
Давай я сразу научу, как пользоваться Ostree. Как обновиться или откатиться. Для этого есть cli rpm-ostree
.
rpm-ostree status - показывает текущий коммит и lable docker image активный сейчас
# для перехода на другой image (обновления/отката) можно использовать вот такую утилиту
bazzite-rollback-helper list stable # какие образы доступны для stable
bazzite-rollback-helper rebase testing # переключиться на последний testing
bazzite-rollback-helper rebase testing-42.20250708.1 # на конкретный testing
bazzite-rollback-helper rebase stable-42.20250817.1
# или можно использовать короткий алиас brh
brh rebase testing
Как работает ostree
Докер-образ используется в Ostree для эффективного хранения и доставки (LayerFS) всего содержимого /usr
и /etc
в репозиторий (ага, включая бинари). И, по сути, докер — это замена zip-файлу, более эффективному в хранении, ведь часть слоев можно переиспользовать. И средство централизованной доставки, т. к. для докера построена тонна инфраструктуры и готовые рельсы загрузки и скачки образов.
Если поглядеть статус, то прям видно, что конкретно это за докер образ
bazzite@SteamOs:~$ rpm-ostree status
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:testing
Digest: sha256:ddb15e70f8479c61b689730b671e718595b7e71e1f0ab246d6a70bc13a315385
Version: testing-42.20250825.9 (2025-08-27T06:50:43Z)
LayeredPackages: cronie
ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:stable-42.20250817.1
Digest: sha256:079102b1c2947f72d28b4027c75182658504473876b7891a616c268efbb6629f
Version: 42.20250817.1 (2025-08-18T06:19:53Z)
LayeredPackages: cronie
И да, мое "все работает" находится именно на testing
теге. На stable до сих пор проблемы с цветами (о чем ниже)
Хранится он в GitHub Container Registry. Т. е. сущности пока крайне знакомые.
Почему еще это круто? Да потому что Docker Registry — стандарт, и ты можешь подключить, например, Nexus OSS, Harbor или что угодно для зеркалирования официальных докер-образов Ostree и хранить их дома у себя.
Можно спросить, а зачем мне хранить дома старые релизы ОС? Ну а вдруг у тебя всё работает только на старой версии, а релизы старше 90 дней Bazzite не хранят.
skopeo list-tags docker://ghcr.io/ublue-os/bazzite | grep "stable-" | sort -rV
Или, если тебе нужно, дособирать поверх образа bazzite нужные слои со всеми тулами, которых там нет из коробки. Для этого все готово И получать шустрые локальные обновления.
Вот как бывает. Докер не только как запускалка, но еще и как хранилка используется.
После того как докер-образ скачан, он распаковывается, внутри содержится ostree-commit, это гит-подобная система, содержащая в себе файловую структуру, и она применяется на текущую файловую структуру, практически происходит git checkout. После чего все равно нужен ребут для применения изменений. Ведь в обновлении может быть и ядро, и что угодно. Прелесть в сравнении с steamOS в том, что применяются лишь дифы, а не перезаписывается все. Плюс это дает некие возможности для внесения изменений в систему на уровне /etc
. Это гибче, но платим мы за это редкими, но меткими конфликтами при обновлениях. На которые я за 1,5 года пока не натолкнулся.
Осваиваемся в системе
На этом мы закончим краткий курс системного администратора будущих операционных систем. (Я очень хочу, чтобы все операционки стали такими, и готов готовить images и катать их через Ostree везде, потому что чьи-то изменения на системе и сам факт их возможности — это огромная дыра в безопасности, так еще и в управлении конфигурацией.) А я работаю сильно ниже Кубера, и там эти проблемы никуда не делись.
Горячие клавиши
Если подержать кнопку Xbox на геймпаде xbox, но можно увидеть помощь по горячим клавишам. Но делать это долго нельзя, т.к геймпад просто выключиться. Поэтому держите полезный скрин.
Хочу сказать огромное спасибо за быстрое управление громкостью, это прям очень ценно. И за менюшку которая "меню быстрого доступа".
В ней можно как подключить девайсы,
Так и шустро включить оверлей с мониторингом. Порезать fps limit, и даже управлять VRR/HDR.
это все знакомо со steamDeck, но если вы впервые все это видите, то будет полезно.
Да, часть нижних настроек про разгон, tdp и прочее пока не работает, но надеюсь со временем начнет.
Еще хочу отметить XBOX + X
для активации клавиатуры, очень помогает, когда нужно что-то жамкнуть где-то в лаунчере или в игре есть какая-то ерунда на это (обычно при первых запусках). Т. е. мышь и клавиатуру все же не надо подключать, все можно сделать с геймпада, пусть и с костылями. И в обратную сторону это работает тоже. С клаво-мыши можно отлично управлять интерфейсом Steam.
Верни десктоп
Чтобы консоль стала пк - достаточно выйти на рабочий стол, для этого есть отдельный пункт в меню выключения консоли.
пойдем туда, и настроим хотя бы доступ по ssh.
Включаем ssh
Пароль юзера мы задавали при установке системы, и хотя при перезагрузке, стандартно откроется стим и пароль никто не спросит, однако в консоли при подключении по ssh все еще вводить нужно.
Я говорил уже выше про ujust
- местный набор нужных скриптов. Настал момент его использовать, вот наш первый шаг в системе, включим ssh сервер.
ujust toggle-ssh
Скрипт может включить или выключить сервер ssh на bazzite, как понятно из его названия, и это то, что нам сейчас нужно, далее многое будем делать по ssh. Если вызывать ujust
без параметров, он покажет список всех скриптов, я подсвечу тут интересные, мы их рассмотрим ниже.
- toggle-ssh
- update (все обновление из консоли можно делать с помощью этого скрипта)
- install-lact (разгон андервольтинг - не актуально, уже затащили в коробку)
- install-openrgb (настроить светюльки)
- install-emudeck (эмуляторы в один клик)
- install-coolercontrol (если кривые вентиляторов из биоса не хотите настраивать)
- setup-sunshine (сервер удаленого гейминга)
- enable-tailscale (затащить консоль в свою vpn сетку)
- setup-decky (местный homebrew)
- toggle-wol (wake on lan)
Для ujust напили и веб интерфейс, так что при первой установке, можете натыкать нужных кнопок, запустив Bazzite portal setup
там все на уровне "далее далее готово"
на этом, с освоением основ пока все, вернемся пока к железу, там нас ждет целая куча приключений.
Как же сложно подключить hdmi
или получаем заветные 120hz 4k HDR VRR
Поскольку консоль собирается под топ игры на топ тв, то хочется получить все то, что там за эти годы понапридумывали. Все эти hdr vrr и все 120 из 120 возможных герц. Никаких полумер, никаких компромисов.
Берем свой сертифицированный hdmi 2.1 подключаем его к телевизору и новой видяхе, и видим в игре вот такое вот!
За фото экрана извините конечно, но беда, на скриншотах этого не видно! Потому что это не проблема рендера, это проблема hdmi!
Разбираемся в сортах HDMI
Казалось бы, как так-то? Какие еще проблемы с HDMI? Его задача — картинку показывать. Всё так, да только вот беда, HDMI Forum — это контора, которая заведует стандартом HDMI, просто запретила AMD имплементить в опенсорсный драйвер патч для поддержки HDMI 2.1. Можете почитать это горение задниц в оригинале тут
HDMI на SteamOS или Bazzite, да на любом AMD GPU в любом Linux будет версии 2.0. Причем из треда выше следует, что код уже был написан, но после консультаций с HDMI Forum AMD было запрещено его публиковать. Новость была громкой, что даже на Хабре писали про это, а уж зарубежные-то источники и подавно.
Всё это происходит потому, что, вообще-то, информация о том, как работает HDMI 2.1, стоит денег и частная собственность, и все платят за доступ и лицензирование, а вы тут это всё вываливаете в опенсорс, так делать не надо.
Сразу хочется спросить, а другие-то как? Как Intel? Nvidia? Везде что ли так плохо?
Ну, у Intel забавная ситуация, у них работает HDMI, но очень забавно, он работает через внутренний адаптер DP -> HDMI, т. е. прям в самой видяхе видеовывод используется только DP, а если вы подключаетесь к HDMI, то на самом деле вы подключаетесь к внутреннему адаптеру (модуль конвертации DisplayPort to HDMI называется PCON или LSPCON), поэтому всё функционирует нормально. Про это даже новость есть, и спека по HDR (внезапно) говорит о том же , всё это даже в платах B570 было, а не только во встроенных в GPU видяхах.
У Nvidia проприетарный драйвер, отдающий только интерфейс наружу, а всё остальное скрывает, поэтому там всё хорошо с реализацией HDMI 2.1. А у AMD принципиальная позиция, что драйвер в опенсорсе. Вот и получается ситуация.
Я знал про эту беду до покупки карты AMD, и поэтому решил попробовать обойти это встройкой Intel. Если вы не знали, то рендерить изображение можно на одной карте, а выводить на монитор можно другой картой. Так, в частности, подключают майнинговые карточки, которые делали специально без видеовыходов, такая схема с ними работает, нужна лишь встройка.
А теперь давайте взглянем на порты DisplayPort / HDMI в разрезе игры в 120 кадров.
Я сделал такую замечательную картинку, в которой видно, как по годам и версиям росла пропускная способность портов, и сколько же нам надо до 4К/120 Гц.
Как видно, HDMI 2.0 сильно пониже полосы, как и DP 1.2.
А потому-то мы и видим градиенты при подключении к ТВ. Канала передачи HDMI 2.0 не хватает, битрейт жмется, режется, и никаких тебе красивых цветов (хотя разрешение и количество кадров будет нужное).
Это очень обидно. Карта новая, в ней уже стоит порт HDMI 2.1b последнего стандарта!
А это ограничение откидывает нас из 2025 года в 2016 (в лучшем случае). На 9 лет назад! Это так печально, ведь я уже заплатил за всё железо, и только из-за юридических проблем и монополии HDMI (много вы видели телевизоров с DisplayPort?) я должен страдать.
Так дело не пойдет!
Я пробовал выводить видео через встройку, которая указана как UHD Graphics 730, и у нее даже указан DP 1.4a, HDMI 2.1 в характеристиках.
Однако они же ниже честно указывают, что максимальное разрешение — это 4К 60 кадров по HDMI. Выходит, HDMI 2.1 не обязательно должен иметь всю полосу пропускания, которая им заявлена.
На этом моменте я знатно пригорел на HDMI за их непоследовательность в нейминге, за кучи минорных версий с буквами. Вам что, жалко мажорных версий, чтобы я явно мог отличить HDMI 5 от HDMI 7?? Вы их боитесь чтоли?
За то, что совершенно не понятно, что перед тобой, когда тебе говорят HDMI 2.1. Там может быть вообще всё, а может быть даже не вся полоса, заявленная в стандарте. Это очень плохо.
Я уж молчу про всякие допфичи вроде CEC. Об этом ниже.
Недавно релизнулся HDMI 2.2, и там додумались по аналогии с USB писать пропускную способность хотя бы, а не «ultra high speed» (tigo ultra pro max)
И чуууть чууть вам инфы, о том, как понимать, сколько реальной пропускной способности. Сморите в железках, которые берете, сколько у них пропускная способность на FRL линию, иногда такую информацию можно найти (но обычно в очень технических документах). Но зато из нее понятно, сколько будет пропускной способности в итоге.
Раз на телеке нет DisplayPort, а ситуация с интегряшкой мне не понравилась производительностью, то надо найти адаптер, который переведет HDMI -> DisplayPort. Так уж вышло, что на рынке довольно много адаптеров DP1.4 -> HDMI 2.1.
Поглядим еще раз на картинку. HDMI 2.1 вышел позже, и у него сильно больше пропускной способности, т. е. максимум, что мы можем получить в таком переходнике, это скорость DP1.4 как более слабого звена в этой цепи.
И хотя этого должно быть достаточно для игры в 4К 120 кадров, но кроме разрешения и частоты кадров есть еще одно составляющее картинки — глубина цвета.
Есть, знаете ли, много способов закодировать цвет. И всякие варианты на этом сэкономить. Глубоко не полезем, обозначу только, что глубина цвета может быть как 8, 10 или 12 bit на канал (bits per channel), т. е. bpc. И оно же — сколько данных будет в одном пикселе.
Вот треугольник, который я назвал «дилемма HDMI». Чтобы выдать то, что просят, чем-то нужно пожертвовать в рамках пропускной способности канала. При постоянном разрешении экрана жертвовать можно или частотой кадров, или глубиной цвета. И если брать в расчет, что я хочу HDR, то ему по спеке нужно от 10 до 12 бит. В любом случае значения в 8bpc мне мало! Нужно 12! Без этого картинка ну совсем никакая получается.
И если вы правда хотите true 4K 120Hz 12-bit, то забываете даже про DP1.4 — он его выдаст не в полных цветах, а со сжатием. Нас интересует только HDMI 2.1. По этой причине, к слову, я не подключил адаптер в DP1.4 встройки — мне тупо не хватит его полосы пропускания.
Кстати, можно самостоятельно поиграться и поглядеть, на что способны HDMI разных версий, в калькуляторе HDMI (ага, и такой есть). Например, вот так.
Это особенно забавно, так как я купил еще раньше телека, себе монитор oddesey G9 (C49G95TSSI)
В котором 2 QHD (1440p) монитора и разрешение, близкое к 5K, но из портов у него только DP1.4 и HDMI 2.0!!!
Представьте, как оно шакалит картинку на высокой герцовке! (Но жить, кстати, можно, но без HDR.)
Это забавное отступление тут для того, чтобы вы лучше понимали, когда смотрите на рекламы мониторов с 700-герцовыми матрицами, что цвета там будут жать просто дико. Шнуры физически не поспевают за такими объемами передаваемых данных, и новые интерфейсы внедряют не так быстро (даже на самом последнем Odyssey G9 нет самых последних разъемов).
Давайте еще комичный пример. Последний Odyssey G9 с двумя 4К-мониторами. И с видеовыходом HDMI 2.1 и FRL 12Gbps = 48Gbps.
А теперь глядим на калькулятор
Оригинальные 240hz в таком разрешении никогда ни с какой компрессией не влезут в 48 Gbps. А потому увидеть что-то приличное можно лишь на 60 герцах. Или на 120 с хорошим сжатием.
Но вернемся к поиску переходника.
Всё это про HDMI я узнал, конечно же, не сразу, а как уже купил один noname переходник, который мне обещал DP1.4 -> HDMI 2.1, и в этом переходнике не заработал VRR и цвета были просто ужасные. Я пошел читать форумы и выяснил, что задача поиска хорошего переходника — это то еще приключение, почти ни один из них не работает с VRR, а ведь это просто краеугольный камень консольного гейминга, как по мне, т. к. играешь-то с геймпада, и картинка должна быть плавной.
Можете заценить этот прикольный тред поиска 48 ГБ VRR адаптера, там прям жуть
Люди перепрошивают единственно «работающий» шнур Cable Master, и у кого-то он работает несколько недель, и всё слетает. На этом моменте я знатно расстроился, и потому что найти такой адаптер сложно, так еще и как доставить его в РФ — тоже вопрос, так и нет гарантий, что оно работает! То, что он будет очень дорогой, меня уже мало пугало, я слишком далеко зашел, чтобы останавливаться.
Спустя время я подумал, что можно же не париться и идти дальше — смотреть на переходники DP2.0 -> HDMI 2.1. Как видно из картинки выше, DP2.0 очень скакнул по пропускной способности, и, соответственно, он уже может раскрыть весь потанцевал HDMI 2.1, что нам и нужно.
Однако таких адаптеров очень мало, и на том же reddit ребята находили буквально один адаптер (на момент написания статьи).Вот этот вот И в целом ситуация выглядела как кот в мешке. Что там за чип внутри, чтобы хоть поглядеть его datasheet, вам никто не напишет, да и что из этого чипа реально работает — не понятно. А потому только брать вслепую или верить форумам. CatDigit, конечно же, не продается в РФ и даже на Алике, но на Алике есть аналоги на тех же чипах, что и CatDigit. Чип этот называется PS195 или PS196 (да, в отчаянии я копал так глубоко).
И в итоге я совсем уж случайно наткнулся на вот это вот!
Вот линк на озон - https://ozon.ru/t/1Wd3iKZ. Кто это, я в душе не знаю, сайт у них настолько одностраничник, что даже смешно https://lideo.ru/, на нем даже адреса компании нет. А кто им скомпоновал какой OEM, понять не представляется возможным. Информации нет совсем и ни о чем. Но вроде на вопросы отвечают в маркетплейсах, ценник приемлемый (по сравнению с доставкой точно не работающих штук из-за бугра), так еще и если что, вернуть можно. Берем.
VRR
Сохраняя интригу по работе адаптера, скажу пару слов про VRR. Почему я его так хотел и что это такое вообще?
Коротко — это восхитительная технология, которая имеет разные торговые названия, например, вы могли слышать о G-Sync или FreeSync. Так вот, в общем, всё это в общем называется VRR. Оно же — переменная частота экрана.
Обычно частоты экрана статичны (30/60/120) кадров в секунду постоянно. Однако когда видеокарта рисует меньше (или больше) кадров, то на экране видны разрывы кадра, когда половина кадра нового уже нарисовалась, а половина старого кадра так и висит. Вот как на картинке.
Это жутко раздражает и создает эффект рванности, тормозов и микрофризов, даже если частота кадров высокая. VRR делает довольно понятную вещь — он синхронизирует частоту монитора под частоту кадров в игре. И теперь, если в игре проседает fps, то ТВ тоже медленее обновляет матрицу.
Это работает как с DisplayPort, так и с HDMI, на это тут нет ограничений. Однако должна быть поддержка этой технологии на ТВ. Например, на моем ТВ есть только один «игровой» выход HDMI, который поддерживает VRR (FreeSync), а на всех остальных такой возможности нет (видать, дорого или не нужно). Поэтому важно почитать мануалы (или скормить их нейронке), дабы понять, а туда ли вы воткнули свой шнур, перед тем как говорить, что «ничего не работает».
Да, можно сказать, что когда телевизор тормозит за кадрами в игре, то может расти задержка в игре, и это так, но незначительно и в целом не ощущается как что-то жуткое. Плюс же заключается в том, что вы получаете плавность картинки и отсутствие разрывов изображения, и даже в моменты просадки кадров игра просто работает чуть медленее, а не резко просела, а потом выправилась. Это воспринимается как эффект замедления времени, а не как раздражающий фриз. Ровность картинки на дистанции очень способствует погружению.
Я много тестировал VRR в разных играх, включал и выключал, и всегда возвращался к включенному VRR. Для себя я решил, что во всей этой идее с консолью VRR — самое для меня ценное. Я очень ценю высокогерцовую плавную картинку. И даже в играх, где движок так работает, что время кадра — всегда пила. VRR делает намного больше, чем в тех случаях, где кадры ровные. Оттого его ценность еще возрастает.
Тут еще можно поведать прикольную байку про мониторы с аппаратным модулем G-Sync, которые работали только с NVIDIA и стоили значительно дороже. Однако позже AMD придумала делать это без спец. оборудования (или очень дешевого оборудования), и NVIDIA, которая не могла просто выкинуть свой бренд G-Sync, просто добавила к нему «Compatible» и начала работать по тем же рельсам, что и FreeSync. Поэтому для простоты можете считать, что.
G-Sync Compatible == Free-Sync
Включить VRR можно прям в меню Steam, и если оно не поддерживается аппаратно, то выключатель будет недоступен к переключению.
HDR
Вот про этого парня я умничать особо не стану, вы молодые, шутливые, не стоит сюда лезть, оно сожрет вас. Но если серьезно, то я искренне считаю, что HDR проклят, потому что, как обычно, договориться в этом мире смогли только сантехники (когда я делал ремонт, выяснил, что удивительно, но только у сантехников все стандартизировано и подходит друг к другу, а когда я стал спрашивать у продавцов диаметр отверстия в раковине, они на меня посмотрели как на последнего дурочка, тогда я зауважал сантехников), а потому в HDR 100500 стандартов. Что-то вообще не стандарт, но выглядит как стандарт, что-то просто маркетинг, а что-то реально техническая спека. Никто ничего толком не понимает — зацените, вот разработчик внедрял HDR в игровой движок, его ощущения от этого. Может, конечно, я не разобрался — пусть так. Но пока все это довольно хаотично. Из базы могу показать вот эту «продающую» картинку.
Не факт даже, что это HDR, а не выкрученные параметры камеры. Но пусть будет HDR.
По сути, HDR — это просто больше цветов, чем мы привыкли в обычном контенте. Беда тут — курицы и яйца. Зачем делать HDR-текстуры (отдельные), если это долго и геморойно (а значит, дорого), и ни у кого нет таких мониторов, а поддержка в Windows такая, что каждый, кто хоть раз включал там HDR, тут же говорил «что это, блять?», и выключал обратно. Даже после калибровки! В Винде это правда адок какой-то. И нельзя просто включить HDR, находясь в игре. Только во всей системе, или нигде.
Неудивительно, что никакого качественного HDR пока нас не ждет, но, забегая вперед, скажу, что если всё настроено хорошо с полной цветностью (12-bit), то всё выглядит хорошо, играть так можно. Всё работает, ничего не бесит. Вообще, в какой-то момент забываешь, что он был включен, к цветам привыкаешь, что-то калибруешь под себя, и нормас. Но ощущения «ВАУ, как я без этого жил, выкинуть всё SDR в доме на помойку» (как было от 120 герц, например) тут нет точно.
HDR также включается в настройках Steam, на телеке он уже есть на всех портах, а не только на одном, как VRR. И дополнительно, во всяком случае в моей модели, в меню его на ТВ включать не нужно.
Градиенты не исчезли, но стало лучше
Вернемся к адаптеру. Остановились мы на том, что я подключил свой адаптер, который обещал мне всё и сразу, и таки да, не соврал, в нем действительно заработало всё и сразу.
Это очень удивительно для noname адаптера от непойми кого. Я прям очень этому обрадовался, мои внутренние ставки были процентов 30%, что оно поедет. И как же я был рад ошибиться, взять кота в мешке и выиграть. Я не знаю, будет ли оно работать на других ТВ, но на моем работает стабильно.
Пару слов про меню, которое тут видно. Это меню телевизора (и да, пришлось достать монстр-пульт). И мне очень повезло, что такое меню есть и оно такое подробное. Потому что во многих ТВ оно очень скупое, а из операционной системы довольно сложно понять, как именно подключен HDMI. Ищите на своих пультах пункты «О подключении».
На скрине понятно, что подключился как HDR10 12bit и пространство цвета самое крутое из возможных на сегодня BT2020, так еще и видно, что частота кадров не статичная, и VRR (FreeSync) работает! Радости моей не было предела в тот момент, когда я понял, что всё сработало.
Но есть парочка НО.
- Во-первых, VRR работает только в режиме HDR. Если вырубить HDR, то в Стиме рисуется галка VRR как включенная, однако частоты кадров в менюшке ТВ не прыгают, а стоят на месте, и игра не воспринимается так же плавно, как когда VRR правда работает. Тут кто-то кого-то где-то нагревает явно в менюшках, но в HDR всё работает ожидаемо, поэтому его оставляем.
- Переходник долго синхронизируется. Да, когда телек включается из сна, а компьютер и не спал, то происходит общение и выяснение, «как мы картинку рисовать-то будем». И это работает долго. И прям может занимать до 30 секунд! На разных версиях Bazzite оно работало по-разному, были версии, когда прям очень плохо работало. Сейчас в целом сильно бодрее, но секунд 15 черного экрана гарантированы уже после включения ТВ. Это неприятно, но сделать с этим мало что получается. Терпим.
Картинка стала сильно лучше по цветам с адаптером, однако я очень офигел, увидев градиенты вновь. Я психанул и притащил свой старый 60-герцовый 1080p-монитор, и ничего не поменялось, градиенты были и там, это точно не проблема HDMI больше.
Проблема видеокарты и Force Composite
Я опущу описание того, как тут я подключал DP -> HDMI к интегрированной графике, как после этого градиенты пропали, но производительность интегряшки всё равно была плоха из-за низкой пропускной способности DP1.4.
И про то, что при удаленном гейминге по сети никаких градиентов не было. О том, как я отключал все «улучшалки» ТВ, греша на них, и скидывал телек к заводским, чтобы «точно ничего не закешировалось». Всё это не принесло плодов. Всё было сильно проще.
Сложность была в том, что я не особо представлял себе, на каком уровне эта проблема и как такое гуглить. Поэтому я тупо искал все issue в Bazzite именно по своей видяхе, и это дало результат. Я наткнулся на тред, где человек жаловался именно на ту же проблему градиентов
Решение было найдено и довольно простое. Уж непонятно почему, но конкретно на этой видяхе необходимо включить Force Composite (принудительную компоновку) в настройках разработчика в Steam.
Для этого в разделе «Система» нужно включить режим разработчика,
затем пойти в него, и найти там разное -> "Принудительная компоновка" (force composite)
после чего все градиенты как рукой снимает, и вы получаете наконец то идеальную картинку.
Вы спросите, что за Force Composite? Да я в душе не знаю, что это. Я был так счастлив, что это закончилось всё, что даже не стал вникать — работает и замечательно!
Тут есть важный момент, что пока композит был выключен, HDR выглядел просто как проклятие и ужас. Градиенты были такие страшные, что я даже понять не мог, как это возможно, и наоборот, с включенным композитом HDR начал выглядеть замечательно, и цвета стали насыщеннее. Такой вот важный момент, если вы наблюдаете очень плохой HDR, возможно, дело не в HDR.
Если хотите короткий тест, есть ли у вас такое, то найдите в игре закат или рассвет в игре, смотрите на очень яркие объекты. Фонари, солнце, потоки магии — главное, яркие. Там чаще всего можно увидеть градиенты.
И второй важный момент - все о чем я говорю, актуально для тега
testing
версии желательно отtesting-42.20250825.9
или хотя бы42.20250817.1
На этом правда всё с подключением и выводом изображения. Теперь всё работает идеально! Фух, было жарко! Наконец-то мы имеем 4K HDR VRR 120Hz 12-bit PC! И всё это правда работает как ожидалось. А казалось бы, всего-то провод воткнуть!
Шум и потребление - андервольтинг
Отсутствие шума — это было железное требование моей жены, да и я был согласен, эти орущие пылесосы тем более где-то в шкафу, а тем более в замкнутом деревянном корпусе — всё это безумие. Поэтому сделаем всё, чтобы шума не было.
Исполнение карты, как и ожидалось, отличное, много металла, вентиляторы не шумят, потребление стоковое, но можно лучше, поэтому давайте андервольтить.
Короткая справка — андервольтинг — это процесс обратный разгону, в котором мы не пытаемся закидать в видяху побольше дров, чтобы она шустрее ехала, а наоборот, отнимаем у нее питание, дабы она была слабее. Звучит как бред, ведь ты уже заплатил за эту производительность, и карта с завода настроена на это потребление энергии!
Да, всё так, но порой на максимальном потреблении начинается свист дросселей, и уж лучше ор вентиляторов. Дроссели могут свистеть как комар над душой, и это вообще никуда не годится.
А еще всё дело в кривой снижения питания и падения FPS. Так вот, уменьшив потребление с 350 ватт в стоке до 240 ватт. БОЛЕЕ ЧЕМ НА 100 ватт (30%, Карл). Я потерял в fps до 5% кадров. Сделка, по-моему, весьма однозначная. Шума нет вообще, потребление всей системы, как и температуры, значительно сократилось, а кадры практически не потерялись.
А теперь те, кто ставил MSI Afterburner, представляет себе, что сейчас будет игра в кривую, в которо надо будет выиграть, а потом заставить это запускаться на старте системы и следить за этим добром, чтобы оно пропало. Но всё куда как проще.
ujust install-lact
А вообще, LACT завезли нативно теперь оно есть сразу, без доп установок. Скрипт оставил, вдруг у вас старая версия bazzite и тогда он будет актуален.
И все что нужно сделать в программе, это зафиксировать power limit на том значении которое вам кажется хорошим, и нажать кнопку apply.
Всё. Андервольтинг закончен. Можете ребутать комп и проверять, что он запущен, включен и работает корректно.
Благодаря такому нехитрому муву удалось серьезно сократить потребление, нагрев, шум и даже оставить fps на тех же значениях. Это вам не HDMI подключать!
Да, если вы попытаетесь крутить power limit из интерфейса Steam, то оно пока не шибко-то прокидывает это добро в LACT, хотя хотелось бы. И ваши значения просто будут проигнорированы и взяты те, что заданы в утилите LACT. Но надеюсь, что раз уже LACT затащили в коробку Bazzite, то скоро и это поправят. И будет прям нативно всё.
Переключимся пока на что-то более веселое, чем цифры разглядывать, и поговорим про удаленный гейминг.
У нас есть Playstation Portal PerdolingPortal дома
Я люблю удаленный гейминг, не облачный (когда комп где-то там), а домашний (когда комп где-то тут). Прям кайфую от отсутствия границ. Когда я могу играть с клаво-мыши на монике 49 дюймов, потом на 4K OLED ambilight, а потом на туалете на 8-дюймовом планшете с 120Hz тоже. Никаких компромиссов!
Облачный гейминг в целом неплохо работал (GeForce Now), но зачем он, если у меня вот железо и вот сеть. А потому я очень проникся идеей PlayStation Portal! Если не видели, то у Sony есть такая вот консолька, по сути, это просто андроид-планшет с хорошим геймпадом.
Буквально «гейминг на унитазе» или при занятом телевизоре в кровати. Как по мне, это очень круто. И крутость тут именно в наличии полноценного геймпада.
Да, я знаю, что есть стриминг на телефон, и для телефона есть крутые геймпады. Но камон, телефон маленький (даже если большой), телефон надо настраивать, что-то включать, там летят уведомления. Ну это всё. Хочется консольный опыт. Взял и играешь. И PS Portal идеален для этого.
Разумеется, я не мог просто купить PS Portal и использовать его. Во-первых, он не взломан (насколько я знаю), а потому работает только с PlayStation. Но даже это не так важно. Важно, что у него экран 60 герц . Это вообще куда годится для моих хотелок?
Выбираем железо
Я твердо решил сделать себе дома такой же девайс, с консольным экспириенсом. Никакой мороки, никаких настроек, взял и играешь, 3 клика для старта, не больше. Консоль всегда должна быть заряжена и настроена и не использоваться ни для чего другого.
Я остановился на лучшем андроид-планшете в категории 8 дюймов — Lenovo Legion Y700. Очень удачная модель, из-за двух USB-C снизу и сбоку, 165 герцовому экрану, дикому железу, но главное — его делали под гейминг. Он нормально относится к постоянной зарядке — умеет работать в обход батареи напрямую от розетки, если нужно играть долго и не перегреться. У него неплохая батарея по автономности, и топовые беспроводные интерфейсы, и просто потрясающая скорость экрана. То, что нужно!
В пару к нему нужен геймпад, с хорошими курками и триггерами, я остановился на Gamesir G8.
Пока я писал эту статью, я наткнулся на то, что для Lenovo Legion сделали собственную версию G8 в которой исправлены все косяки, о которых я буду говорить ниже. А по эргономике и возможностями это 1 в 1 G8.
Когда я брал геймпад G8, ничего подобного в продаже не было (или я очень плохо искал). Но вы можете не делать себе мозг, и просто взять готовое. Говорят, он даже работает с версией 2023 года планшета!
В сборке все это выглядит вот так.
По-моему, шикарно! Эргономичные ручки, огромные стики (еще и на датчиках Холла — они должны быть не подвержены дрифту стиков), курки полноразмерные. Но самое важное — никакой батареи в геймпаде, никакого блютуса, он питается от USB самого планшета, а потому инпут лаг ниже, никаких «ой, я разряжен» в самый нужный момент. Заряжаешь только планшет, даже не вынимая из геймпада, через второй USB-разъем снизу! Вот это то, что нам нужно.
Да, и USB там немного ходит вверх-вниз, чтобы удобнее крепить было. Эргономика на уровне.
Есть важный момент, если будете брать такую сборку — берите планшет Y700 от 2025 года. Я сначала взял 2023 года, и он ни в какую не хотел работать боковым USB-портом с геймпадом G8 (говорят что в геймпаде от lenovo все норм, но это мне узнать не суждено). Нижний USB работал — боковой нет. Ко мне пришла тонна апдейтов на планшет, но после каждого из них ничего не менялось. Пришлось продавать планшет, докидывать денег и брать свежий. Планшет стандартно — китайский, но с английским языком. Гугл-сервисы ставятся без проблем, других нареканий нет. 2025 года отлично нативно работает с геймпадом, чему я очень рад.
Второй момент в том, что геймпад не раздвигается на такую ширину, как планшет.
И чтобы вам это сделать, геймпад надо разобрать и сломать ему распорки, запрещающие раздвигаться на любую ширину. Там ничего сложного в целом.
В итоге этих операций, выглядеть это все будет вот так.
Что, конечно же, никуда не годится. Поэтому для обладателей 3D-принтеров есть уже готовые модели в сети, которые это фиксят.
Если хотите — вот такую съемную, которая крепит наглухо, но позволяет позже снять и вернуть все в «завод».
Моделька тут (ссылка не работает из РФ)
Или вот такую перманентную
Моделька тут (не работает из РФ)
Тут уже можно попасть в цвет, и получить некую эстетику, но ее нужно будет клеить для прочности, что похоронит варианты поиграть потом с этим геймпадом на чем-нибудь поменьше размером.
Если ее не клеить, то она постоянно будет делать вот так. И будет люфтить во время игры.
Раз я решил иметь PS Portal, я выбрал второй с поклейкой и красивостью, чтобы отступать было некуда! Заказал печать на 3D-принтере в первой конторе из Гугла, и через пару дней моя деталька была уже у меня.
Еще, конечно, есть вопрос, как бы держать консоль всегда заряженную и не дать аккумулятору вздуться, как бывает, если вы попробуете такой фокус с телефоном сделать. Сейчас, конечно, АКБ получше уже стали, но все же.
Пока моя лучшая мысль — это найти приличную Type-C док-станцию, типа вот такой.
И подцепить ее на умную розетку, чтобы заряжать до 80% батарею через умный дом, а потом, проседая до 60–70, включать розетку снова. Но меня смущает, что нужно попадать в Type-C (магнит бы смотрелся лучше), и что-то выбор таких красивых док-станций невелик. Поэтому пока еще думаю, как красивее решить эту задачу. Рассматриваю даже варианты с адаптером на беспроводную зарядку, типа такого.
Но поиграюсь, погляжу плюсы и минусы, и видно будет. Пока попадаю в type-c и держу на зарядке постоянно, но чуть-чуть тревожусь по этому поводу.
Moonlight
С железом всё, а что софт? Вообще в Стиме есть собственный раздаватель игр по сети — Steam Link, и он работает, можете попробовать использовать его. Но когда я его тестил, у меня работало отвратительно именно в Bazzite, и в очередном issue мне ответили, что без Valve тут никак не пофиксить, а потому я забил на Steam Link и пошел в Moonlight. Возможно, сегодня дела обстоят лучше, но мне нравится чувство контроля и количество клиентов Moonlight, а потому я, пожалуй, останусь на нем.
Moonlight — это опенсорсный клиент для NVIDIA GameStream. Была у Nvidia такая затея, а давайте, мол, можно будет по локальной сети играть с телефонов, телевизоров, без проводов. Круто же. Это были времена развития G-Force Now — удаленного гейминга от Nvidia.
Прошло много лет, и Nvidia хоронит поддержку этой технологии в GeForce Experience (ныне Nvidia App). Но только есть нюанс, энтузиасты за это время под этот протокол написали, собрали и захостили клиенты под такие девайсы, что аж диву даешься. Wii U! Nintendo Switch, PS VITA (да-да, vita!).
А потому появление полноценной реализации опенсорс сервера для раздачи картинки было вопросом времени. А потому встречайте солнечный свет — Sunshine.
Сервер работает на винде, маке и линуксе, поддерживает вообще все видеокарты, а не только зеленые, как было изначально. И работает, разумеется, на связке FFmpeg + аппаратки любых железок: NVENC (NVIDIA), AMF (AMD), на Linux — VA-API. Если ковырялись в jellyfin, то слова очень знакомые должны быть.
Клиент (moonlight) интерфейсно прост как топор, и при этом достаточно функционален. В нем есть и поддержка кастомных разрешений экранов и герцовок. Поддержка высокой герцовки 90 и 120 Гц. Аппаратные декодеры новых форматов типа AV1 и даже экспериментальная поддержка HDR. А еще в нем есть поддержка гироскопа! Да да, именно для игр с консоли которые поддерживают гироскоп. Разумеется, он держит несколько геймпадов, подключенных к клиенту, и передачу звука. В клиенте есть буквально всё!
Давайте я обрисую это красочнее, чтобы было понятно, насколько это может быть крутая история. Вы буквально можете взять с собой геймпады в съемный дом, корпоратив, поездку к родителям, подключиться на любом Android TV через аппку к своему компу домой, а геймпады подключить к этому же Android TV и играть во всё, что вы хотите, не возиться с проводами, не слышать шум компа. Вот прям вот так. Я такую схему лично проворачивал, и это очень приятно. Конечно, если вы заядлый пользователь облачных сервисов, то для вас это не новость. Но, возможно, для вас не новость и ожидание свободного сервера, чтобы поиграть. А тут ваше железо — ваши правила!
Разумеется, всё будет хорошо работать при условии, что андроид ТВ из нашего века.
Самое крутое, что работает эта схема так хорошо, как только возможно технически. В том смысле, что, играя с планшета с геймпадом, ты реально не чувствуешь разницы между игрой на телевизоре. Картинка не шакалится на вращении камеры, не разваливается, не подтормаживает, и вообще ничего не выдает то, что она сюда стримится. Конечно, если ты только что задротил в какой-нибудь DMC с жоскими комбухами в 120 герцах, импутлаг передачи управления с геймпада ощутить можно при удаленном гейминге, но это очень тонкие материи, но даже о них мы поговорим довольно глубоко чуть ниже.
Правда, стоит сделать оговорку, что у меня стоит Wi-Fi 6 с отличным покрытием, на планшете Wi-Fi 6, а «консоль» подключена по проводу! Условия идеальные технически, но всё равно это какая-то магия.
Самое прекрасное тут то, что sunshine накатывается на bazzite всего одной командой
ujust setup-sunshine
и даже в автозапуск сам предложит добавиться.
Настроить сервер можно через веб морду на порту 47990
https://YOUR_CONSOLE_IP:47990
В webGUI можно также пейрить новые девайсы (не нужно бегать к девайсу, сидя в другой комнате, как было с Nvidia в оригинале), почитать логи прям с веба, всё ребутнуть, если что пошло не так, и, главное, настроить всё под свои нужды, а настраивать есть что.
Вообще, от Sunshine не веет поделием на коленке, GUI по дефолту не выставляется во внешний интернет, и на внешние соединения настроено шифрование. Оно также само обновляется прям из веба и умеет работать с UPnP — т. е. автоматически просить роутер пробрасывать нужные порты наружу (по умолчанию выключено). И если будете включать, проверьте, что UPnP включен и на роутере тоже, иначе не заработает. В целом пользоваться веб-GUI очень удобно, даже темная тема есть!
Отключаем HDR при удаленном гейминге
В качестве наглядного примера кастомной конфигурации sunshine покажу как я настроил автоматическое переключение HDR для подключаемых удаленных девайсов. Поскольку у меня по дефолту включен HDR на телеке (чтобы работал VRR), а на десктопе нет, то при подключении с десктопа на консоль я получаю серые блеклые цвета, ведь HDR не включен. Да, его можно включить в экспериментальных настройках клиента moonlight и операционке, но я уже описывал мои ощущения от HDR в Windows выше. Но все же, если вы хотите отключать HDR при удаленном гейминге, но включать при нативном, то вот вам рецепт.
Это можно сделать через утилиту управляющую текущей картинкой - gamescopectl
gamescopectl hdr_enabled 0
gamescopectl hdr_enabled 1
Настраивается это в конфигурации конкретного приложения в WebGUI sunshine.
И да, если хотите, можете сделать одно приложение Steam с HDR, а другое без него, для разных клиентов. Тут с этим полный порядок. Можно дергать любые софтины хуком перед и после запуска трансляции. За что — огромный респект.
Но можете просто изменить композитор окон с gamescore на scopebuddy и там есть куча автоматизации для такого https://docs.bazzite.gg/Advanced/scopebuddy/ но я это не тестировал.
Разумеется, можно сделать себе отдельно RDP, в котором сразу будет запускаться Gnome/Kde без стима в нужном разрешении экрана и герцовке, и использовать это для нужд удаленной работы или настройки. И отдельно иметь приложения для игры. Всё это очень гибко настраивается.
Если забыли пароль
При первой настройке sunshine попросит задать юзера и пароль, но если так вышло, что потеряли, то скинуть можно вот так. Идем по ssh на bazzite и там выполняем такое.
sunshine --creds {username} {password}
Сама конфига, если нужно, лежит тут
/home/bazzite/.config/sunshine/sunshine.conf
Логи в виде файла лежат тут
/home/bazzite/.config/sunshine/sunshine.log
А если уже нет, то всегда можно найти ее
find ~/ -name sunshine*
Если надо почему-то ручками рестартануть сервис, то это делается вот так
systemctl restart --user sunshine
systemctl status --user sunshine
systemctl stop --user sunshine
Но перезагрузить можно и из веб морды.
Нюансы облачного гейминга
Нам нужно немного контекста в том, как железки работают с видео, чтобы детальнее и глубже поговорить про работу удаленного гейминга.
Так получилось, что нельзя просто так взять видео в оригинальном размере, которым его снимает любая камера. Оно займет нереально много места в таком виде. Таким, кстати, все же занимаются профессиональные видеокамеры.
Для примера возьмем всего одну минуту фильма в 4К HDR10 со стандартной частотой кадров для фильма = 24 кадра. Исходный размер видео в таком случае будет от 20 до 30 гигабайт в зависимости от глубины цвета в HDR. И напомню, это одна минута*.
- 4:4:4 (30 бит/пикс): ≈ 44.8 GB
- 4:2:2 (20 бит/пикс): ≈ 29.9 GB
- 4:2:0 (15 бит/пикс): ≈ 22.4 GB
В жизни же, фильм на 2 часа в 4k и приличном битрейте может весить 30гигов.
Как быстро становится понятно, с такими объемами данных особо ничего не поделаешь, ни сетей, ни трафика на такое не напасешься. А потому было придумано, как это добро сжимать. Так появились декодеры и энкодеры.
Как можно догадаться по названия, это такие модули, которые или упаковывают видео (кодируют или пишут), или его распаковывают (декодируют или читают). Это похоже на zip-архив, мы запаковываем (кодируем) и сжимаем информацию и распаковываем (декодируем) позже. С видео также. Только процесс этот потоковый и постоянный, пока смотрите видео. А потому делать это нужно крайне эффективно.
Да, и раз уж мы полезли сюда, стоит обозначить что такое кодек. Кодек - это просто стандарт. Спека, если угодно. В которой описано чего нужно делать. А как это делать, решать исплементации. Будь то аппаратная реализация (NVENC, Intel QSV), или программная (libx265, rav1e, ffmpeg)
Есть варианты делать это софтверно и аппаратно. Сразу обозначу, что софтверный способ слаб и лучше не использовать. Используют же его в основном для нетребовательных задач, или для обратной совместимости со старыми протоколами, аппаратные модули которых уже выпилили из железа.
Еще важный момент, что нельзя закодировать кодеком А и раскодировать кодеком Б. Как мы не открываем rar-архив, переименовав его в zip. Тут также.
С аппаратными модулями, как понятно из их названия, ситуация такова, что если железо старое, то и модулю новому взяться неоткуда, он физически находится в процессоре, и такой процессор никак не обновить. Однако, если модуль есть аппаратно в железке, то всё будет работать очень эффективно. Поэтому можно смотреть на слабеньком ноуте YouTube 4К и не переживать о 100% нагрузке на проц. Потому что читает (декодирует) это видео отдельная железка в процессоре.
Чуть глубже про железки, ситуация с кодеками них такова. Каждый кодек — это новый аппаратный блок в процессоре (или видеокарте), и да — они множатся. Старые аппаратные блоки уже выкидывают из актуальных железок, оставляют софтверные прокладки для совместимости, как было с MPEG-2 и VC-1, но не обязательно, что все железки оснащают всеми новыми аппаратными кодеками. Например, интересная история с VP9 от Гугла. В свое время развитие кодека полетело слабо, все ставили на HEVC, и почти нет массовых железок с аппаратным кодированием VP9, только декодинг. Бывает и такое.
Сейчас дела с кодеками обстоят так
- У нас есть актуальный на сегодня кодек H.264 (оно же - AVC) и более актуальный (еще внедряется, смотря как считать) H.265 (HEVC). Вот они поддерживаются почти везде, через них щас работает почти все видео, но нюанс в том, что это платные проприетарные кодеки. Видели возможность в винде прикупить себе HEVC кодек за 1$ ? Вот это оно.
- Есть те, кому такое положение дел не нравится, в том числе это Google. У нее есть свои открытые кодеки, например VP9 (сегодня уже постаревший. Выпущен в 2013 году), позже Google собралась с другими пацанами https://aomedia.org/about/members/ и сообразили новый кодек AV1 (2019 релиз стандарта). И вот он уже вот-вот должен полететь. Сейчас на него большие ставки.
AV1 кодек — восхитительная штука. Рвет все остальные во всех бенчах, особенно на больших разрешениях, и намного более эффективен в сжатии. Не кодек, а сказка. Да вот незадача, его даже в 2025 году почти нет в популярных процессорах! Смотрите сами.
Вот список процессоров встройка которых может КОДИРОВАТЬ (запаковывать) изображение av1 на сегодня.
- Intel Core Ultra
- AMD Ryzen с RDNA3-iGPU (VCN 4.x)
- Qualcomm Snapdragon X Elite / X Plus
И это буквально модели 2024 года, а самое раннее тут — это The Radeon 780M в Ryzen, которая была анонсирована в январе 2023.
Даже Apple M3/M4 не могут в кодирование av1, только decode!(хотя Apple входит в консорциум AOMedia — разработчикоdв av1).
Всё я это к тому, что найти железку, умеющую кодировать такое видео, — то еще занятие.
Конечно, у видеокарт поддержка кодирования AV1 сильно бодрее, чем у процессоров, но всё равно железка должна быть очень свежая.
Можно задаться вопросом, а зачем встройке в процессор кодировать видео? Смотреть (декодировать) можно, ну и супер, толку-то от встройки? Грузить ее какими-то мутными модулями, кто же на встройке монтировать-то будет.
Так дело в том, что даже в монтажных программах, встройка очень часто используется именно как сопроцессор и разгружает основную карту, помогая ей, и это может стать доп. аргументом для доплаты за процессор со встройкой. А вообще, на встройках сейчас работают сервера умного дома, в которых может быть видеонаблюдение, которому нужно кодировать видео. Может быть jellyfin/plex, которые умеют в аппаратное кодирование (купив plex, потому что там это платно). И еще много применений видео для встройки. Поэтому модуль этот точно ей лишним не будет.
Конечно, проектируя железку, в первую очередь думают о ее цене и рентабельности, и полный конвейер Encode + Decode для AV1, судя по всему, сложная, большая и дорогая штука. Потому-то она редка сегодня, и массово есть только декодер для просмотра ютубчика.
Вообще, одним из аргументов за процессор со встройкой было желание попробовать разгрузить видеокарту, чтобы задачей отправки видео занималась одна, а рендерингом другая.
Однко, чуть копнув, выяснилось, что это довольно глупая затея. В видеокарте разные аппаратные модули для шейдеров (которые используют игры) и для декодинга видео (которое нужно трансляции). Это даже вынесено в диспетчер задач.
Вот - для каждой задачи свой отдельный железный блок.
А это значит, что кодирование видео не должно сжирать мои fps в игре.
В реальности есть один нюанс — я андервольтнул карту довольно сильно, а потому даже тот факт, что оно не должно сжирать, тоже был под сомнением, и я хотел таким образом перераспределить потребление от GPU к CPU, ведь встройка кушает в разы меньше энергии. И просто позабавиться, оценив, можно ли так, и "а чо будет"?
Немного освоимся в работе с gpu в консоли
Для начала, давайте поглядим на туллинг, который нам доступен в Linux-терминале, чтобы понимать, как хоть следить-то за всем этим.
Начнем с утилиты nvtop
https://github.com/Syllo/nvtop, хотя ее название может сбить вас с толку, что оно работает только с видеокартами Nvidia, но это не так, работает даже с Apple. Также рисует multi-gpu, опенсорс, и уже предустановлена в Bazzite.
Выглядит это вот так. Да, почти htop, и это приятно.
А чего у меня только одна видяха?
Кстати, если вы с дискреткой не видите свою встройку, то найдите в биосе пункт iGPU Multi-Monitor
и активируйте его. Тогда будет две видяхи.
Если после этого у вас какие-то игры внезапно начали запускаться на встройке, то изменить дефолт можно через утилиту export-gpu
, она тоже встроена в систему. А если вы *не* на Bazzite, то можете использовать https://github.com/ewagner12/all-ways-egpu вот это вот.
К сожалению, в nvtop
довольно мало инфы, только общая нагрузка, которая не дает представления о конкретных подсистемах, что не очень информативно, и при дебаге видеокарты Intel хочется понимать, на что она способна, все же это маленькая встройка.
А вот тут всплывает слово DOCKER.
Да-да, не удивляйтесь. Как вы хотели, в такой-то статье и без Docker!
Но на самом деле нет, это Podman, и он уже предустановлен в Bazzite (иначе как бы работали обновления через docker images). Я покажу, как красиво запустить утилиту intel_gpu_top
, которая показывает детально нагрузку на карту intel.
Проще всего, сделать это через сборку своего контейнера (готовые правда шлак), чем пытаться затащить это пакетами.
cat > Dockerfile <<'EOF'
FROM debian
RUN apt-get update && \
apt-get install intel-gpu-tools bash -y && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
EOF
sudo podman build -t intelgpu .
sudo podman run --privileged --pull=never \
--device /dev/dri:/dev/dri \
--rm -it intelgpu intel_gpu_top
Если podman
вам не знаком, можете смело бахать в ~/.bashrc
alias docker=podman
и жить как жили. Они очень похожи.
Готово - теперь, можно детально видеть, как у нас с нагрузкой на intel карту, какие конкретно подсистемы и насколько сильно используются.
На скрине выше - реальная нагрузка на карту, при трансляции картинки через удаленный гейминг (1440p 80hz).
Переключаем раздачу картинки на intel gpu
Чтобы понять, что sunshine будет брать для рендера картинки, надо почитать его лог, и увидеть в нем вот эту строчку
[2025-08-22 00:11:03.011]: Info: vaapi vendor: Intel iHD driver for Intel(R) Gen Graphics - 25.2.5 (Full Feature Build)
или
[2025-08-22 11:10:25.167]: Info: vaapi vendor: Mesa Gallium driver 25.2.0 for AMD Radeon RX 9070 XT (radeonsi, gfx1201, LLVM 20.1.8, DRM 3.63, 6.15.9-106.bazzite.fc42.x86_64)
Получить первую строчку, не так то и просто. У меня вышло сделать это от рута, вот так
sudo -E LIBVA_DRIVER_NAME=iHD sunshine
В webUI есть вот этот параметр
но только он ни на что не влияет. Поэтому должно сработать что-то в этом роде.
[Unit]
Description=Sunshine
After=multi-user.target
Wants=network-online.target
[Service]
User=bazzite
Group=bazzite
Environment=LIBVA_DRIVER_NAME=iHD
Environment=LIBVA_DRM_DEVICE=/dev/dri/renderD128 # проверить что 128 встройка!
ExecStart=/usr/bin/sunshine
Restart=on-failure
# Нужны права для KMS
AmbientCapabilities=CAP_SYS_ADMIN
CapabilityBoundingSet=CAP_SYS_ADMIN
# Ограничим доступ к GPU -> только Intel
DevicePolicy=closed
DeviceAllow=/dev/dri/card0 rw
DeviceAllow=/dev/dri/renderD128 rw
# Группы для /dev/dri
SupplementaryGroups=video render
[Install]
WantedBy=multi-user.target
Но тут снова возня с systemd, т.к. стандартно он лежит в том числе и в /usr
, который ридонли, то придется делать свой кастомный сервис в /etc
и уже плясать оттуда.
Я до такого доходить не стал, и мне хватило ручного запуска. Я довольно сильно расстроился результатом из коробки. FPS почему-то не поднимается на трансляции даже до 90, не говоря уже про 120. При этом не важно, с какого клиента ты подключаешься. Время кадра стабильно высокое. Скрин ниже с 5090 — а это значит, что временем декодинга видеопотока точно можно пренебречь (об этом детальнее ниже).
Есть глубокое убеждение, что общение между видеокартами неоптимальное. Я не докопал точно, но довольно внятно уяснил по тестам на самых разных девайсах и разных играх, что идея играть на одной карте, а транслировать другой сегодня нежизнеспособна.
Во многом это, как видно из скрина, из-за задержки между рендером кадра и отправкой его на вторую видеокарту. Время кадра получается в районе 40ms, что очень много по сравнению с другими вариантами. И особенно обидно, что во встройке нет av1. Вот этот кодек даже в экспериментальном режиме поддержки творит грязь. Гляньте!
Меньше 3ms задержка, из которых добрые 2 — это задержка сети! Декодинг меньше 1ms или в районе того. Что ощущается краааайне приятно. И да, чтобы этого добиться, включайте максимальный приоритет вашим девайсам в QoS на вашем роутере.
И все это, в 1440p при 90гц!
А еще, если вы играете на планшете Y700, он же геймерский, в него встроили всякие разгонятели процессора. Так вот, включайте их. Декодинг падает с 6-8ms до 2-3ms. Это приятно.
А вот так дело обстоит в HEVC декодере (в буст режиме конечно же)
Задержка сильно возрастает, декодирование занимает уже почти 4ms. Видимо, аппаратный модуль для HEVC в процессоре планшета не такой эффективный, как для AV1. Но один из сильнейших на сегодня, потому что вот я запускаю то же самое на Apple M3 Pro (с розеткой, конечно же, воткнутой в ноут). И всё те же 3ms на декодирование.
Если mac при этом подключить еще и по проводу к интернету, а не по wifi, то можно получить -0.5 -1ms где то.
А вот 5090 декодинг HEVC вообще незаметен, и никаких 3ms тут и не пахнет. Но то 5090!
Итого. HEVC можно очень быстро декодить. Но это не происходит, хоть в разогнанном режиме, хоть как. С другой стороны, переключение на AV1 дает значительное снижение задержки декодинга.
Важный момент про AV1 на macOS. Официальный клиент Moonlight до сих пор к себе не втащили патчи для поддержки av1 на маке, поэтому, если оно вам надо, вот тут работающая версия https://github.com/gnattu/moonlight-qt/releases/tag/jellyfin-ffmpeg.
В сухом остатке скажу следующее.
Даже с андервольтингом кодирование в av1 работает обалденно, по сравнению с кодированием в h265 (HEVC) на видеокарте.
Игра в разные видеокарты и переброс нагрузки между ними — это очень фаново, но не очень-то работоспособная история. Быть может, будь у меня встройка Ryzen с кодировщиком AV1, было бы веселее, но на HEVC такой вот результат. И учитывая нагрузку в 30% на GPU decode, подозреваю, что дело тут совсем не в производительности видеокарты.
И немного о влиянии андервольтинга на показатели кодирования видео. Я провел дополнительные тесты и понял, что разницы нет вообще. Что 340 ватт, что 240. Куда больше влияют настройки самого клиента. Его соединение с сетью и режимы энергосбережения. Я, правда, говорю о значениях в районе 1–3 ms, и искать тут погрешности нужно с микроскопом, но, говоря честно, за вечер возни не увидел никакой разницы ни на одном клиенте. В моем случае андервольтинг не влияет на трансляцию картинки.
Подводя итог, идея с разными GPU себя не оправдала и тут. Передача изображения слишком долгая, а аппаратные декодеры во встройке недостаточно круты. К тому же, даже перераспределение тепла между картами — идея, которая не нашла себя на практике. Но я хотя бы это узнал! А теперь знаете и вы.
Сон
Внезапный факт - консоль засыпает. Удивительно, но по умолчанию PerdolingStation ведет себя как консоль, и засыпает при бездействии. А если вы хотите ее разбудить удаленно чтобы поиграть в нее удаленно, то можно использовать пару вариантов.
Wake on lan
Существует довольно магическая штука, как пробуждение девайсов по сети отправкой пакета на сетевку. Специфичная штука, но может помочь. Она реализована в moonlight клиентах под все платформы.
Чтобы такой фокус сработал, необходимо 2 составляющих.
- Включить функционал в биосе ПК (консоли) - тут советов нет, гуглите, все биосы по разному выглядят
- Включить поддержку wol на уровне операционки, тут в bazzite есть специальный скрипт
ujust toggle-wol
В клиенте moonlight вызов wol выглядит вот так.
с WoL есть момент, что роутеры запрещают проброс броадкаст пакетов из внешнего интернета - что логично. Так бы все и ходили бы тут, все включали. Поэтому, если вы хотите подключаться к консоли не из дома - заставить это работать нативно - будет той еще задачей, которую не нужно решать.
В современных роутерах (keenetic как эталонный пример буду называть), прям в вебе или мобилке есть возможность отправить wol запрос на устройство.
Что также можно автоматизировать например через телега бота живущего в вашей сети или сценарии в умном доме (home assistant)
Не засыпать вовсе
Другой вариант — если счета за электричество вас особо не парят, то можно поступить проще и просто отключить все засыпания консоли. Это может вам дать возможность делать что-нибудь в фоне на консоли, пока вы не играете (там же куча видеопамяти!).
Делается это вот так
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Если нужно вернуть обратно, то вот так
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
Для трансляции нужен монитор
Внезапно, но трансляция может не работать без подключенного работающего монитора — такое я ловил на ChimeraOS еще до Bazzite, на последнем у меня всё работает, даже когда ТВ выключен, но у вас может быть иначе.
Если Moonlight не может подключиться при выключенном ТВ, то это может быть проблема отсутствия монитора, но для начала почитайте логи в Web UI. И если действительно жалуется, что нет монитора, совет простой — купите HDMI-заглушку и будет вам монитор! Это правда самое простое, что можно сделать. Возня с виртуальными мониторами и их эмуляцией того точно не стоит.
Играть вне дома
Если вы хотите поиграть вне дома, то выбор у вас из двух вариантов: vpn или дикий интернет.
Если у вас статический IP или вы знакомы с тем, как работает DDNS, и вы знаете, что делаете, то можете выставить сервис наружу и играть вне дома. Это, конечно, опасно, вас могут похакать, заполучить RDP и отсканировать сетку, что-то даже вынести или зашифровать вам компы. Но когда кого это останавливало?
Для работы из дикого интернета нужно пробросить порты на роутере. Как это делать, я тоже объяснять не буду — нагуглите. А я лишь дам список, что форвардить, для случаев, если UPnP вы включать не хотите или нужно больше автоматизации и безопасности.
В списке нет порта для webUI - только необходимые для работы порты.
47984/TCP
47989/TCP
48010/TCP
47998/UDP
47999/UDP
48000/UDP
Ага, парой портов не обошлось, их целая пачка. Ну что делать.
Еще тонкий момент: если у вас есть белый IP и вы хотите иметь возможность поиграть где-нибудь вне дома, то можете смело настроить клиент Moonlight именно на белый IP, в локальной сети он найдет короткий маршрут и будет ходить к устройству напрямую (по серому адресу), а не использовать внешний интернет-канал. С этим тут всё в порядке, чему я был крайне удивлен.
Из прикольных советов: если у вас современный роутер с мобильным приложением, вы можете включать проброс портов прям с мобилки, когда вам будет нужно, и отключать их позже. В итоге вы даже можете сделать облачный гейминг своим друзьям, когда сами его не используете, и если у вас хороший канал связи, то это может быть даже весело!
Если что, в том же Keenetic есть восхитительная возможность использовать по SSH/Telnet/API, и можно навайбкодить себе телега-бота, который будет открывать все нужные порты с одной кнопки и следить за сессией, когда она закончится, через минут 20 закрывая их назад. И если уж очень сильно хочется, то можно даже открывать порты только для конкретно вашего IP, откуда вы сейчас в телеграмме написали. Короче, один грамм фантазии, и всё будет.
Если же вы не настолько отчаянный, чтобы торчать жопой в дикий интернет, то можете поглядеть в сторону VPN-ов. Тут не будет мантры про селфхостинг, я просто предложу использовать Tailscale https://tailscale.com/. Это такой VPN для людей, а не админов. Там всё очень юзерфрендли, бесплатно и почти не завязано на сервера самого Tailscale, кроме авторизации (машины общаются между собой в сети напрямую, а не через промежуточные хосты Tailscale).
Самое приятное, что тут все готово, и опять же просто запускаем скрипт установки, и настраиваем.
ujust enable-tailscale
Теперь вы можете играть на своем железе, будто вы находитесь с одной сети, даже будучи не дома. Я этот вариант пока не тестировал, поэтому сказать за его производительность к сожалению не могу.
HDMI снова
Соскучились? Ага, речь снова пойдет про HDMI. Но на этот раз про мои попытки включить телевизор при включении геймпада. Изначально я очень хотел получить true console gaming experience, т. е. включать консоль одной кнопкой включения геймпада. И в цееееелом это реализуемо. Но я отказался от этой затеи и перешел на другой способ, он тоже в одну кнопку, но другую!
Hdmi CEC
Возможно, слышали, но HDMI передает не только картинку, звук, ИНТЕРНЕТ (с версии 1.4 стандарт начал поддерживать HDMI Ethernet Channel — HEC). Так через HDMI еще можно включать телевизор, и на самом деле сильно больше, ведь CEC умеет управлять устройствами по цепочке. Вы включаете ТВ, он включает саундбар. И наоборот — вы выключаете ТВ, он выключает саундбар. Вообще саундбар в свою очередь может включать что-то дальше по цепочке. Всё это очень замечательно, и поддержка hdmi-cec есть в Bazzite
Оказывается, когда вы имплементируете hdmi-дырку на своей видеокарте, вы не обязаны имплементить всё, что подразумевает собой HDMI (там много всего, кроме CEC еще). И я не нашел такой видяхи, которая бы имплементила CEC ни от одного производителя.
Хотя знаете, я был бы очень не против, чтобы мой монитор тух вместе с засыпанием компьютера (да, некоторые мониторы тухнут, но без hdmi-CEC, а на таймерах или собственных реализациях понимания «есть ли там сигнал»), так, до кучи, я бы мог включать и выключать акустику вместе с ПК, и, возможно, даже другие девайсы. Однако ничего этого у нас нет. Видеокарты просто не поддерживают это! Вот это была новость для меня.
Справедливости ради, мне тут же показали адаптер, который умеет эмулировать HDMI-CEC по USB
Работает это просто: по USB читаются команды, которые дёргаются в системе через либу livcec, и просто через адаптер отправляются на HDMI.
Но мне это вообще не понравилось. Беда не только в ценнике в 47 долларов, и не в том, что его как-то надо пригнать в РФ, а в том, что это опять же HDMI 2.0b, что мне ну вообще никак не подходит.
Однако, покопавшись по редитту еще, выяснилось, что те, кому реально нужна просто консоль, берут всё же такой переходник и втыкают его в телевизор вторым HDMI. Картинка идёт по хорошему шнуру на HDMI 2.1, а управление (включение, выключение, переключение) происходит по вот этому. Т.е. он выступает просто как инструмент для общения с ТВ. Но нужно поколдовать, чтобы при включении выбирался нужный HDMI, а не тот, который стригигрил действие. В общем, просто покупкой тут не отделаться.
Я остановился на варианте использования консоли без сна, чтобы не заморачиваться с Wake On Lan, а потому, немного пораздумав, я понял, что мне этот адаптер даже и мешать будет, будет ночами включать телек, если я захочу поиграть из другой комнаты удалённо (консоль-то ведь проснётся). Конечно, скорее всего, можно что-нибудь подхимичить, чтобы так не было, но у меня есть решение получше!
У меня же Android TV, а в нём отлично работает adb, через которую можно не только его включить и выключить, но и поменять HDMI-выход на нужный. Всё это дело можно поставить в верную последовательность targets systemd и вперёд! Главное в этом — не промахнуться в зависимостях systemd, чтобы сеть уже была доступна, и только потом дёргать adb. Делать я это хотел только первый вечер, как возился с этим. А потом плюнул, не смог корректно победить последовательность systemd targets и вспомнил, что мне оно не надо, у меня есть Home Assistant, а у него есть ADB-плагин.
Нагуглил команду как переключать HDMI через ADB работает на philips на остальных может быть иначе. И подобрал нужный HDMI порт (HW5, HW6, HW7, HW8 = HDMI2, HDMI3, HDMI4).
adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5 -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
В итоге получился вот такой скрипт, который проверяет через аппаратный включатель, что консоль включена, телевизор включен, и включает нужный HDMI на ТВ.
Всё это добро я повесил на физическую кнопку, которую можно нажать — и произойдет включение консоли. Также его можно дернуть и через голосового ассистента (например, через Алису). В целом я доволен результатом, работает ожидаемо, не сбоит, физически надо нажать одну кнопку, пусть и другую.
Еще по systemd
Если вы посильнее меня будете в systemd, то всегда можете обойтись одним компьютером без всей внешней среды, и заслать эту команду напрямую в android tv, тем самым по сети эмулируя HDMI CEC. Эту битву я дропнул на моменте, когда строка
Wants=network-online.target
в systemd юните, не отвечала моим ожиданиям. Сети все равно не было, хотя systemd говорил что она есть, и я забил болт. Эти плоские зависимости, и дебаг на засыпании системы, это очень выматывает. Напишите мне, если продвинитесь с этой битве дальше, я буду очень рад.
Что еще может adb
Помимо этих действий в adb можно открывать любые аппки и даже кнопки в них жмякать, можете написать даже n8n/HA себе скрипт, чтобы ставил рандомное чиловое видео (https://www.youtube.com/@HealingWithMe./videos) на вашем тв вечером если хотите, прям через ADB
Например так
adb shell am -a android.intent.action.VIEW -d https://www.youtube.com/watch?v=9osre3R0LvA
В общем, через adb можно сделать очень многое. И не обязательно через Home Assistant adb можно поставить прям на хост с bazzite. И получить себе эмулятор HDMI-cec программно. Но только если у вас android tv.
Уведомления на телевизоре!
Пока не ушли далеко от темы Android TV, хочу рассказать о еще одном классном применении андроида. Оно связано с умным домом, но в целом можно и без него. Все дело в том, что в деревянном корпуске с сомнительной самопальной системой охлаждения очень уж хочется знать температуру, а потому недурственно было бы сделать алерты себе на ее рост. Но не на телефон, он во время потного трая лежит где-то очень далеко, и не на Алису (ей можно локально говорить любые фразы по API), это может испугать человека в комнате, если кто-то будет удаленно играть. А алертами прям на телевизор поверх игры! И в Home Assistant для удаленного гейминга будет хорошо получить их себе на телефон пушкой.
Как это работает?
Операционная система у нас андроид, и она отдает картинку на HDMI, однако она может поверх этой картинки накладывать свой оверлей, и как раз такое решение я и подглядел в видосе.
Аппка называется TVOverlay — она опенсорс. Имеет rest API и интеграцию с MQTT / HA. Поэтому можно хоть ставить физический датчик температуры умного дома в корпус и отправлять алерт через HA, так и написать софт на консольке, который будет дергать REST API TVOverlay напрямую с bazzite хоста, снимая температуру с внутренностей железа в кроне или сервисом (чтоб не дудосить алертами из примитивного крона).
Если начать фантазировать, сюда также можно перенаправлять уведомления с телефона, если вы играете и есть важные диалоги (или вы дежурите на работе и упал прод), или если жена скоро домой вернется, а у нее есть отслеживание местоположения в HA. В общем, зачем это может быть нужно — придумать можно множество вариантов, главное, это легко реализовать. Красивый, понятный, надежный, бесплатный, так еще и опенсорсный. Это просто замечательно.
Алерт стоит на 40 градусов, но я для фото я ручками дернул. Если кажется что мелко и не информативно, то это настраивается с мобилки, за 6$ + налог в премиум версии в google play - у вас все будет.
Если вы считаете, что можно было сделать в целом-то уведомления и прям на Linux без Android TV, то да, конечно, можно и так. Однако у меня телек также подключен к андроид-приставке, и там я смотрю фильмы и ютубчик, а поэтому, если при удаленном гейминге внезапно станет жарко в тумбе, лучше бы мне об этом знать, даже смотря ютубчик. Поэтому история с тем, чтобы поселить этот функционал в родительскую ОС, мне очень нравится независимостью от HDMI и контента, который сейчас воспроизводится.
Эмуляторы
Разумеется на bazzite полный порядок с эмуляторами. Я в это дело лез исключительно в целях проверить "а чо тянет"? В итоге выяснилось, что тянет вообще все. (ну еще бы). Приятно, как просто это все делается.
ujust install-emudeck
Устанавливает - https://www.emudeck.com/. Это такой комбаин, который в себе внутри менеджерит все эмуляторы. Он единообразно и централизовано их обновляет, конфигурует и держит в нужных местах настройки и ромчики (образы игр).
Папка для этой штуки находится вот тут
/home/bazzite/Emulation/
А игры нужно складывать вот сюда
/home/bazzite/Emulation/roms/{CONSOLE_NAME}/{GAME_NAME}
Тогда, можно будет красиво подтянуть эмуляторные игры в интерфейс стима. Делается это вот так
Логинимся в тулу через стим. В списке выбираем все нужные нам консоли, и нажимаем Add Games
И если ромы лежат где указано выше, то вы увидите свои игры.
Которым тут можно назначить красивые имена и картинки (там автодискаверинг есть - см скрин ниже).
Как все настроили - сохраняем это добро в стим
И увидеть в своем Steam в "сторонних" и "коллекциях" все что добавляли. Можно отдельно играми, можно эмуляторами. Как удобно.
И да, вы вполне можете играть во все эти игры, как в нативные игры стима, вообще не наблюдая интерфейса эмулятора. А еще получать статистику по времени проведенном в игре, и даже ачивки, если сильно захотеть. И конечно же, у вас будут красивые превьюшки.
Меня в основном интересовала поддержка PS3, т.к она является до сих пор самой сложной в части эмуляции. И в целом да, ps3 игры отлично работают. Есть пара житейских советов, для тех кто хочет идти в этом дальше.
Настраивайте по вики
Игры надо настраивать, делается это по вики rpcs3. Например вот для uncharted3 рекомендуемые настройки, на которых будет лучшая производительность.
Также для других игр. Очень странно что они это в интерфейс не закинули, и надо буквально "списывать с экрана"
Где взять патчи на игры
Если у вас нет нужных патчей для игры, то скачать их можно вот этой туловиной
Но нельзя накатить сразу последний патч, нужно качать все, и устанавливать их последовательно. И только так.
AVX-512
Да, если эмуляторы это прям то, что вам нужно, рассмотрите какой-нибудь процессор с поддержкой avx-512, он значительно ускоряет работу эмулятора (RPCS3 так точно).
Это все что мне есть сказать про эмуляторы, я лишь зацепил эту тему, и понял что да, все работает, если нужно, то можно. Дальше мне пока было не интересно лезть.
Homebrew - DeckyLoader
Важно: тут почти все ссылки не работают на территории РФ. Надеюсь, для вас это не проблема.
Steam, как почти любая консоль, на которой можно что-то делать своими шаловливыми ручонками, имеет кастомную систему плагинов для расширения функционала.
Называется такая штука тут DeckyLoader, и вот ее сайт https://decky.xyz/, там о ней подробнее написано.
А вот тут можно поглядеть на плагины, которые понаписали неравнодушные люди, которые очень любят ковырять стимдек и им чего-то не хватает.
Надо сделать оговорку, что большинство плагинов — это поделки на коленке, и сделаны они были для Steam Deck, но может повезти, и всё будет работать и на Steamos.
Чтобы установить DeckyLoader достаточно вызвать скрипт
ujust setup-decky
Я тут не буду много писать, скажу что мне понравилось, чем я реально пользуюсь
- SteamGridDB - Настроить красивые превьюшки на игры (уже в бете затаскивают нативное ) но плагин все равно может быть полезен в частности для кастомных игр не из стима, потому то его в коробку и затаскивают.
А то даже в рамках одной серии игр, не могут с красивыми картинками определиться. А у нас тут как никак, консольный опыт должен быть!
- PlayTime - свой счетчик времени в игре оффлайновый, хорош для эмуляторов, и игр из не стима. Мне приятно поглядеть статистику. К тому же она там вся лежит в sqlite на сервере, так что можете ее хоть в Home Assistant загнать при желании
- Decky Ludusavi - мне нравится идея софта, который сохраняет все сейвы от игр локально, я хочу иметь некий бекап своих сейфвов. Хранить их на nas просто на всякий случай. (пока что работает оч средне, мало игр, и кое где промахи по папкам с сохранениями), но развивается сообществом, так что можно фиксить и развивать.
- CSS Loader если вы любитель накатить себе кастомную тему - вперед, работает на редкость не плохо, и есть классные темы от сообщества. Но я наигрался и удалил.
- Game Theme Music прикольная идея, просто ищет по имени игры в которую вы сейчас зашли в интерфейсе на ютубе видос с main theme саундтреком, и включает его. Можно настроить чтобы включало тихо. В целом угадывает - для популярных игр. Мне понравилось, добавляет атмосферы
- IsThereAnyDeal расширение для одноименного сервиса https://isthereanydeal.com/, который показывает инфу в магазине про ценники в основном
- HLTB for Deck - плагин для одноименного сервиса - https://howlongtobeat.com/, на котором собирают статистику, сколько времени занимает прохождение игры.
Устанавливаем плагин не из Store
Если вам почему-то захотелось плагин не из decky store, то вот как это можно сделать.
Покажу на примере еще разрабатываемого дополнения https://github.com/Teppichseite/DeckPass, оно позволяет прям в интерфейсе Steam Deck получить доступ к парольному менеджеру Keepass (kdbx). Спросите, это-то еще зачем?
Да всё просто, гении безопасности из Ubisoft зачем-то (я хочу верить, что по юридическим и независящим от них причинам) внедрили необходимость ввода пароля при каждом заходе в игры от 2014 года (новые игры норм, проблема только с некоторыми старыми играми). А я очень хотел играть в Black Flag, который попадал под это ограничение.
На выбор два варианта: отрезать интернет для конкретной игры (об этом будет ниже), но тогда не будет ачивок, а я, собственно, для них и играл.
Или как-то быстро получать доступ к своему паролю. Делать пароль банальным и простым или запоминать и вводить пароль длиной более 25 символов я отказываюсь.
Потому я нашел этот плагин и на его примере покажу вам, как ставить такие вот плагины, которые пока нельзя ставить прям из стора.
Выглядит плагин в итоге вот так
А устанавливать его нужно вот так:
Заходим в меню decky в правой менюшке steamos, и идем в настройки.
В них проходим самое короткое собеседование на разработчика (включаем галку).
И теперь у вас есть отдельное меню, где можно ставить плагины из файла, или по ссылке на этот файл.
Я выбирал файл, который до того скачал с гитхаба. Закинуть на консоль его можно через smb/csp да хоть через localsend. Далее просто выбираете его в файловой системе и все установлено.
Важно, что для установки этого плагина разумеется нужно почитать еще и ридми. И там ожидается установка самого парольного менеджера через flatpack
flatpak install --user flathub org.keepassxc.KeePassXC
и создание базы данных по пути
/home/bazzite/DeckPass/passwords.kdbx
из интерфейса KeePassXC конечно же. И проверьте права, 600
и владелец bazzite:bazzite
Теперь все готово, плагин с паролями работает.
Чуууууть чуть глубже
Я просто уже полез изучать как все устроено в плагинах, и чтобы эти знания чуть пошарить, я буквально в паре предложений объясню это вам, дабы чуть лучше понимать, чего вообще можно навертеть.
Куда разрабатывать?
Итак, если хотите прям разрабатывать свой плагин, то есть готовый шаблон - и это уважаемо, просто используем его на гитхабе как темплейт для репы, и все уже готово. Вот он - https://github.com/SteamDeckHomebrew/decky-plugin-template
Если хотите прям разрабатывать, то ручками делается это вот тут
cd ~/homebrew/plugins/
git clone https://github.com/Teppichseite/DeckPass.git
sudo chown bazzite:bazzite DeckPass
и все, в менюшке steamOs уже есть ваш плагин.
FrontEnd
Фронт пишется на React. Что очень приятно, удобно, понятно. Как видно по скрину, можно и devtool подключить, удаленный. И вообще, в целом, все не плохо тут сделано для разработки.
Если устанавливаете плагин через git clone ручками, то не забывайте что это исходник, и его еще собрать надо. Обычно это запускается как то так.
npm install
npm run build
а это значит что надо тянуть nodejs + npm. Сделать это можно через
brew install nodejs
(нода свежая приезжает из brew)
Ручки
UI реализован тут - https://www.npmjs.com/package/@decky/ui (или тут)
API реализовано тут - https://www.npmjs.com/package/@decky/api (или тут)
Дока тут - https://wiki.deckbrew.xyz/en/api-docs/decky-frontend-lib/README
А начать стоит отсюда - https://wiki.deckbrew.xyz/en/plugin-dev/getting-started
Дальше глядим шаблон, глядим другие плагины, копаем либы, и играемся. Благо rdp до консоли довольно хорош через moonlight, для начала это прям очень помогает. Но можете разрабатывать прям на консоли, почему нет?
Backend
Пишут на python, есть немного правил как там чего должно выглядеть - https://wiki.deckbrew.xyz/en/plugin-dev/getting-started и ручки бекенда дергаются прям с фронта.
На примере того же простого модуля DeckPass можно поглядеть
В целом, звучит не сложно
Логи
Если чего не работает, то логи лежат тут
home/bazzite/homebrew/logs/{PLUGIN_NAME}/
Из плюсов, есть возможности дебага и дока как это настроить, отдельный логер для нашего плагина (а не общая свалка), все обновляется и откатывается куда нужно. В общем, довольно много свободы, и понятные и приятные технологии.
Сильно глубоко я не копал, только ознакомился, а потому и гайд на этом все. Представление о системе плагинов я считаю получено.
Еще мелкие приколы которыми я занимался, вдруг вас натолкнет на какие мысли
Немного о геймпадах
Я использую геймпад от Xbox. Самый последний, я уже не знаю какая там нынче буква последнего геймпада, но вот он да.
Я очень хотел, чтобы геймпад был всегда заряжен, стоял красиво и ждал меня.
Беда в том, что xbox геймпады до сих пор поставляется с обычными AA батарейками, что мне не нравится. Но есть вот такое вот изящное решение от Razer под все цвета геймпадов
Это такая подставка с магнитом, куда геймпад довольно легко положить (не надо попадать им в разъем Type-C), и он будет заряжаться, о чем просигналит лампочка.
Таким образом, геймпад всегда заряжен, всегда на виду, круто выглядит и имеет просто восхитительный UX. Кстати, на аккумулятор я тоже не жалуюсь, 4-5 часов он точно держит, а больше мне пока не надо было, да и второй геймпад жены есть рядом на такой же зарядке.
Кстати, два интересных факта: на этой подставке нет кричащего лого Razer, и они идеально попадают в цвет геймпада. И да, это практически самое качественное, что я нашел в данной категории. Есть и более бюджетные варианты, я их, разумеется, парочку купил и выкинул. Как-то было коряво всё с ними.
Купи свисток
Кроме того, в Bazzarite уже давно есть поддержка фирменного свистка Microsoft для геймпадов Xbox. Оно же «ресивер второго поколения»
Зачем, спросите вы? А потому что по блютузу очень медленно, и пейринг очень геморойный, особенно после работы с другим блютуз-девайсом. Зачем мучиться, если за 2 тысячи можно забыть об этих проблемах и просто играть как на нативной консоли. Мы тут все же в 120 герцах хотим играть! И поддерживает он до 8 геймпадов одновременно.
А и да, на маркетплейсах они стоят за 500 рублей и за 2000 рублей. Надо ли объяснять, что за 500 рублей брать не нужно? И что там приходят паленые блютуз-свистки и прочая ерунда, мрущая через неделю?
Для подключения просто втыкаете свисток в USB на Bazzite, и оно просто работает. Ничего устанавливать не нужно. Из минусов, там первый раз реально нужно нажимать на этот адаптер физически рукой (на нем кнопка с краю). Чтобы он замигал и перешел в режим сопряжения. Но благо у меня всего два геймпада, а делать это нужно было всего один раз — пережил уж открытие тумбы) Консольный опыт!
Скриншоты и сохранения на SMB шару в свой NAS
Мне как то захотелось подмонтировать папку через SMB себе на steamOs и собрать себе скриншоты для быстрого доступа с мобилки, телефона, веба, да и в целом, мои скрины, пусть лежат у меня. И вот как я это сделал.
Создаем креды для подключения к smb
touch /home/bazzite/.smbcreds
в формате
username=MY_USER
password=PASSWORD
И в файл /etc/fstab
дописываем под рутом
//MY_NAS_IP/bazzite/screens /home/bazzite/screens cifs credentials=/home/bazzite/.smbcreds,uid=1000,gid=1000,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm,_netdev 0 0
Проверяем монтирование командой mount -a
- создаем файл, смотрим на сервере, есть ли созданный файл.
Чтобы красиво сгружать все скрины из всех игр, я написал вот такой простой крон, но сам cron еще надо установить.
sudo rpm-ostree install cronie
А затем уже через crontab -e
взять все скрины из вашей папки, и скидать их в смонтированный фолдер, раз в 3 минуты например.
*/3 * * * * find /home/bazzite/.steam/steam/userdata/YOUR_STEAM_ID/760/remote -type f -name *.jpg -exec cp {} /home/bazzite/screens/ \;
Также можно сделать, если вы собираете свои сохранения через https://github.com/mtkennerly/ludusavi и https://github.com/GedasFX/decky-ludusavi
//MY_NAS_IP/bazzite/saves /home/bazzite/ludusavi-backup cifs credentials=/home/bazzite/.smbcreds,uid=1000,gid=1000,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm,_netdev 0 0
Проблемы со звуком
У меня уже давно нет этой проблемы, но если будут вопросы почему не выбирается дефолтно звук, хотя в меню выбора звука есть вариант, который работает нормально - то возможно вам поможет вот этот мой ответ, но это было очень давно, и сейчас такой проблемы нет.
Отключаем интернет для одной игры
Хотел я поиграть в старый добрый BlackFlag купленный в стиме, но включающийся в Ubisoft лаунчере. Так вот выяснилось, что при каждом входе в игру, лаунчер на конкретно эту игру - просит ввести пароль. (на более новые игры нет). Однако я обнаружил, что если выключить интернет - то это требование пропадает.
Отключать интернет на уровне хуков в операционке я не хотел, т.к у меня всеже удаленный гейминг тут. Поэтому пошел искать как отключить интернет для одной игры. И нашел решение.
Я уже выше упоминал менеджер протонов - ProtonPlus
который можно запустить через
В нем можно установить не только протоны, но и альтернативные реализации, например SteamTinkerLaunch
SteamTinkerLaunch - это комбайн, который собой оборачивает целую кучу других утилит. В частности MangoHub - это графики нагрузки, которые рисует steamDeck, GameScope - это вообще разработка valve, такая обертка, wayland-сервер, позволяет управлять разрешением экрана, частотой, VRR, hdr, вот все конфиги что можно крутить, это все крутится в gamescope.
SteamTinkerLaunch идет еще дальше, и добавляет туда много возможностей для работы с модами, reshade и кучей всего еще, мощная штука. Но мы тут не за этим, а чтобы выключить интернет)
Чтобы заставить SteamTinkerLaunch запускать какую то игру, нужно выбрать его в настройках совместимости, предварительно установив в систему через protonPlus
теперь, при запуске игры, будет запускаться STL на несколько секунд, и надо успеть зайти в его меню, и в нем уже можно сконфигурировать - выключение интернета, тогда он запустит игру без него.
Находим нужную галку (вкладка tools)
и сохраняем конфиг. Все, теперь всегда при запуске BlackFlag он будет запускаться без интернета.
Если вы запускаете его впервые, придется ввести пароль и залогиниться в ubi store, иначе не подтянется лицуха. Ну тут думаю очевидно.
Да я точно не SteamDeck
Порой, некоторые игры, неправильно понимают, кто мы. Думая что это steamdeck. Так например Assassins Creed shadows просто отключает настройки графики на steamDeck ибо зачем это вам оно? В первом The Last of Us есть баг, который на steamDeck не прогружает текстуры. Да и мало ли еще может быть приколов. Поэтому есть вариант, как это объяснить играм. Они могут корректно реагировать на переменную окружения SteamDeck=0
которая говорит, что мы точно не стимдек.
Для конкретной игры, это можно сделать через параметр запуска.
SteamDeck=0 %command%
или более короткую версию.
sd0 %command%
Важно. Если у вас это не сработало, то возможно скомпилированные кеши уже содержат все от steamDeck, их нужно удалить, можно попробовать это сделать через консоль
rm -rf ~/.steam/steam/steamapps/shadercache/<AppID>
appId можно найти на странице обновления
Понять, сработало или нет, можно в том числе по надписи "выйти в библиотеку" или "выйти в систему". В библиотеку используют на SteamDeck, а систему - на linux. В меню игры.
Но по нормальному, можно найти через htop
что за pid у процесса с игрой, и поглядеть что у него в env
sudo cat /proc/PID/environ | tr '\0' '\n' | grep Steam
А еще у меня не сработал ни один из вариантов установить SteamDeck переменную глобально, ни в /etc/environment
ни в /home/bazzite/.config/environment.d/10-gamescope-session.conf
к сожалению, адекватно это работало только через параметры запуска.
Веселые истории с разными играми в одном месте
В целом, все игры работают на bazzite ожидаемо, и хорошо, какие то лучше, какие то похуже, серьезных проблем нет, ни в свежих релизах например - Oblivion remaster, ни в старых играх например - Assassins Creed 1. Но есть некоторые занятные короткие истории, которые я решил собрать в один раздел, и рассказать, чего я такое делал, чтобы это победить.
Странности игр, которые я нашел в одном месте.
Hogwards legacy - игре плевать на дефолтно выбранную видеокарту если их больше одной, запускается на первой всегда и это всегда встройка, а потому, если у вас две видяхи, то эта игра будет делать вам мозги. Заставить ее работать можно через параметр
DRI_PRIME=1 VKD3D_VULKAN_DEVICE=1 %command%
ага, через две переменные.Assassins creed shadows - считает нашу супер консоль всего лишь steamDeck и просто отключает конфигурации графона вообще из менюшки, просто выставляя "что считает нужным". Надеюсь в перспективе будет поправлено, т.к даже steamOs рисует что она не steamDeck, там другие кнопки, другие цвета - это подготовка к полноценному релизу SteamOs. Но пока, есть вот такой фикс в котором можно пойти и отредактировать текстовик, объяснив shadows где его место, возможно кстати поможет способ с
SteamDeck=0 %command%
Игры ubisoft 2013-2014 года (As Unity, AS BlackFlag) купленные даже через стим просят пароль! Пароль блин! При каждом запуске, от аккаунта Ubisoft. Ну это никуда не годится. Выше уже описана история решения через парольный менеджер, и отключение интернета. Обе рабочие, но по разному.
Just case 4 - единственная игра из моей библиотеке, которая не работает нормально на протоне. Просто жутко фризит. Единственное работающее решение - установить протон
GE
версии. Для этого надо в десктоп режиме найти аппку которая называетсяProtonPlus
, это такой менеджер протонов, и установитьProton-GE
последней версии. Сегодня актуальнаProton-GE 10-12
версия. На ней в целом терпимо, кроме черного экрана при запуске минут так на 5, но порой все равно лютые фризы. Что с игрой, я так и не понял. Прикидываться не SteamDeck ом через переменные - бесполезно.Графические баги в The Last of Us 1 с подгрузкой текстур только на steamDeck. Они за все время патчей игры так и не исправлены. Суть - некоторые текстуры просто не хотят загружаться пока на них через прицел не посмотришь. Лечиться переключением параметра запуска, который говорит что мы точно не SteamDeck
SteamDeck=0 %command%
в настройках steam.В ведьмаке и киберпанке (играх CdProjectRed) есть красивый способ отключить лаунчер, через cli параметр к steam
--launcher-skip
Жаль что не у всех так(Античиты в общем случае невозможно установить для игр LeagueOfLegends / Valorant (riot games) - на linux вообще. А еще могут быть проблемы в современных шутанах типа CoD / Battlefield. Это надо иметь ввиду.
А еще не рекомендуется очень часто менять протон, тоже могут забанить...
Games that use Denuvo Anti-Tamper DRM consider changing Proton versions as activiating the game on different hardware which may cause you to get locked out of the game if you change the Proton version more than 5 times within a 24 hour period.
Фишки, о которых вы могли не знать
Решил под конец еще собрать фишек, которые я очень заценил в консоли, и которые вы могли не знать.
Удаленная загрузка игры с мобилки
С мобильного приложения steam можно поставить игры на загрузку удаленно. Это очень удобно, но не очень очевидно, как это сделать. Для этого в мобилке нужно пойти в свою библиотеку, и нажать на конкретную игру, тогда высветиться возможность удаленной установки, на все работающие пк с запущенным стимом.
Передача игр через локальную сеть экономит трафик и время
Для этого оба пк должны быть включены и на них должен быть включен стим. И все бы круто, но выше чем 1гб/сек эта штука не разгоняется. Я даже нашел баг в стиме, которые говорят что это проблема стима. И если бы не проблемы со скоростью передачи данных, то возможно, имело бы смысл держать виртуалку на NAS со всеми играми как кешом локальным. Но пока это работает отстойно - то так делать не буду.
Подключить любые наушники
Внезапно, но играть в наушниках, порой, сильно круче, чем даже на крутом саундбаре. Поэтому я очень ценю возможность подключения любых из них. Хоть airpods, хоть sony 1000xmX в playstation до сих пор с этим проблемы.
У steam есть интеграция с HomeAssitant если вам это зачем то нужно.
И финальное
И под конец вопросы, которые я пока не порешал, но которые меня парят, и над которыми я еще буду работать. И возможно расскажу позже, в PerdolingStation 2.
Вопросы которые у меня остались
Апдейт консоли, когда я не играю, автомагически (ага, даже с перезагрузкой). Потому что игры сами по себе обновляются в настройках стима, а вот консоль нет. Я бы сделал HA скрипт, который будет это делать за меня, когда меня нет дома, однако там беда в том, что во время
ujust update
нужно несколько раз вводить пароль рута. Технически это не сложная проблема. Интереснее придумать эвристику определения, что именно сейчас консоль мне не нужна. Это сложно, потому что у меня странный сон. Может в 21 начаться, а может и в 6 утра. Когда как, а учитывая, что тестировать я это могу вообще в любой момент времени, то однозначно сказать «ну щас-то не нужна точно» нужно постараться.Как компилировать шейдеры гарантированно? После обновления системы или игры меня снова ждет компиляция шейдеров! Я вот из принципа хочу победить эту штуку. Расклад тут такой. В каких-то играх она хотя бы проиcходит в интерфейсе Steam (шейдеры vulkan), как и ожидается, однако в других она продолжается в игре (например, Sony игры — Uncharted 4, TLOU - шейдеры винды? diretx?), а я бы хотел автоматически компилировать шейдеры во всех играх. Можно, конечно, попробовать написать механику на основе данных о нагрузке на процессор (шейдеры копилятся на CPU), пока CPU нагружен — еще не скомпилилось, как спадает — закрывать процесс через N секунд и открывать следующую игру. Но это, конечно, грустный вариант. Оно будет статистику моего времени в игре портить, и друзей дудосить пушками, что я играю во что-то, и по-хорошему бы стелс-режим включать еще и отключать потом. Подумаю.
Стим при синхронизации игр подтягивает настройки графики с последнего устройства в некоторых играх. Это мешает, т. к. у меня очень разные девайсы, и не хочется такого поведения совсем. Начиная от настройки DLSS / FSR, заканчивая разрешением. Буду копать этот вопрос еще.
Проблема локального трансфера файлов. Передача по локальной сети между компьютерами не пропускает более 1 Gb/sec, даже если сетка 2.5 G! раз два. Пока это проблема Steam, но, возможно, можно пошаманить и в настройках операционки чего.
Ограничитель кадров в steamOS нативный, работает только на кратные refresh rate значения. А очень бы хотелось мочь через него залочить FPS, например, на 75 или 90. Для новых игр это очень хорошие значения, и картинка была бы ровнее. Часто в новых играх внутри есть такие лимиты, но не во всех, а так было бы универсально.
Возможно, для удаленного гейминга можно скидывать графон, чтобы получить больше кадров в играх, где сильно влияет VRR и график кадра выглядит пилой. На ТВ это отлично съедает VRR, а вот на трансляции ощущаются фризы. Разумеется, с возвратом к базовым настройкам, как трансляция будет закончена. Можно попробовать что-то такое накодить, в виде символических ссылок на разные файлы конфигурации, в зависимости от того, в трансляции ты сейчас или нет, через хуки в sunshine.
Пока что steamOS на Linux практически не работает с VR, а очень бы хотелось. Буду следить за новостями и ждать, когда появится что-нибудь интересное. Комп собран под трансляцию, как и сеть. Обидно, что VR приходится цеплять к десктопу и всё там настраивать для этого.
Я совсем не затрагивал тему модов, reShade, подмены FSRов и прочий пердолинг внутри игр, потому что он мне по сути не нужен и избыточен. Но это тоже большая тема, которую копать и копать. Возможно, однажды я об нее споткнусь и закопаюсь.
Еще в очереди потыкать, как там дела с плагинами типа Picture in picture, и насколько проблемно будет связаться с друзьями прям с консоли и позвонить им в Discord или TeamSpeak, как будут себя чувствовать микрофон и вот это всё. Пока видел лишь пару мутноватых плагинов, а это любопытно.
И я совсем не тестировал вопросы, связанные с трансляцией, ни OBS в интернет, ни экрана друзьям в Дискорде. А тоже лишним бы не было.
Вопросы записи видео из игр через нативную реализацию Steam я тестировал в локальные файлы, но пока работает очень сыро и тормозит. Буду ждать какого-то развития. Пока особо не нужно, чтобы заморачиваться со сторонними плагинами.
Я вообще ничего не говорил о сторонних играх не в Steam. Потому что даже весь Ubisoft я купил в Стиме. Если у вас ситуация другая — возможно, вам придется много возиться, потому начните отсюда
Есть множество крутых студий озвучания и перевода, и всё это лежит в сети «как-то», а версии игр в Стиме не имеют локализации для тех игр, где она была даже официальная в других магазинах. Поэтому, кажется, тут точно можно приложить свою руку и напилить плагин для Decky, который сможет накатывать переводы, текстуры, озвучки. Работа не маленькая, но вот этим бы я занялся!
Как я в итоге играю?
Я ставлю 4К нативное, все настройки в максимум, и откручиваю FSR на качество, без генератора кадров. Для 9070xt этого обычно достаточно для 75 кадров, что меня полностью устраивает для сингл-проектов ААА-класса. Если же этого становится маловато, я чуть подкидываю графон или FSR ставлю в баланс. В целом, современный FSR не плохо снимает нагрузку с видяхи, и я очень сильно всматривался в картинку, но прям криминала в ней не нашел. Мне так играть довольно комфортно. Ждем поддержки FSR4 в драйвере (потому что я таки нашел пару мест где fs3 шакалит будь здоров).
А и да, я полностью вырубаю трассировку лучей везде, где это возможно, и не лезу туда вообще. Пока что поддержка трассировки в драйвере крайне слаба, и нужно еще долго ждать, когда она вообще будет хоть как-то адекватно работать. Поэтому пока так. Ждем допилов.
Быть может, для вас получше будет 1440p, чем 4К — смотрите, играйтесь. Я не могу сказать, что включение FSR — это компромисс, от которого у меня горит. Нет, вполне себе замечательная картинка, на мой взгляд.
Итоги
Да, как видно, копиляция шейдеров еще пока что меня победила, но во всем остальном, я продвинулся хорошо. Я получил готовую к работе консоль, которая таки выдает мне все мои заплаченные 4k 120hz 12bpc HDR VRR, хоть это и было сложно.
Я могу играть с любых девайсов, хранить свой сохранения и скриншоты на удаленном сервере. Это совершенно бесшумное решение, которое еще и нагревается не сильно.
Я могу включать консоль с Алисы, или кнопки (да одной, но другой). У меня всегда заряжены геймпады и PerdolingPoral.
Консоль в игре потребляет из розетки 350 ватт в пике, а видеокарта как Ps5 Pro (230ватт). Все это за счет не самого мощного проца, и очень удачного андервольтинга.
(график из home assitatnt от умной розетки)
Алерт на температуру я поставил выше 40, и он стрелял только на тестах, когда я игрался с охлаждением или с андервольтингом. Сейчас лето, фоновая температура часто 30 градусов в тумбе (но комп-то включен, потребление в фоне 50–60 ватт).
Поэтому 10 градусов нагрева, считаю вполне себе хорошим. Это я говорю про температуру в корпусе, рядом с процессором. Снятое внешним датчиком акары от умного дома.
Ну вот и все
Я очень доволен что занимался этим пердолингом с Марта 2024 года, по сегодня. За это время сильно допили операционку bazzite. Исправили тонны косяков и недочетов. Софт стал стабильнее, в драйверах пофиксили кучи багов, и наконец то появились хорошие адаптеры DP -> HDMI. Начиная в прошлом году, все это находилось в куда более грустном состоянии чем сегодня.
Есть много моментов, в которых не понятно, что делать. Очень надеюсь что Гейб протащит все эти вопросы с лицензированием HDMI 2.1 на новой SteamMachine, и мы наконец увидим ее перерождение. И хотя мне это все дело снова будет не нужно, я буду глядеть на их операционку, и смотреть, что в итоге удобнее, надежнее и лучше работает. Конкуренция - круто.
А я последнее время ощущаю себя PewDiePie как в этом ролике, но в этом есть что-то классное! Если я вам помог, и вы тоже занимались подобным, но прошли меньше моего - буду рад словам благодарности, а если вы ушли дальше меня в этой истории, то напишите об этом, я с удовольствием это почитаю.
В телеге есть полуживой чатик по Bazzite, можем пообщаться там https://t.me/bazzite_group
и взбодрить его. Потому что я вижу, сколько людей живет этой темой, и хочется собрать из этого комьюнити.
Ну и ко мне забегайте в телегу - https://t.me/weslyg_channel там часто бывают микро истории из подобных серий, и расширение кругозора присутствует.
А на сегодня все)
Я считаю, что это один из лучших постов в клубе за всё время.
Потрясающий пердолинг-опыт, описан с кровавыми подробностями и прекрасным языком.
Спасибо тебе огромное за труд по подготовке и публикации этого материала! Слов нет, как приятно читать!
Вот это да... Моё почтение! Очень крутой пост и эталонный пердогинг! Спасибо за наводку на universal blue - интересно будет потыкать
Очень круто!
Есть примерные прикидки, сколько такой сетап стоил?