Типичная история выглядит так. Человек покупает плату, вставляет в слот, ставит софт, всё заводится с первого раза, и пару недель он совершенно доволен. Потом приходит блокировка, и начинается поиск виноватых: софт плохой, продавец обманул, игра поумнела. В большинстве случаев виновата не игра и не софт, а то, что плату оставили ровно в том виде, в каком она приехала.

Что система видит, когда вы вставляете плату
Любое устройство на шине PCI Express рассказывает о себе набором полей. Кто производитель, что за устройство, к какому классу относится, сколько памяти просит, как ведёт себя при обращениях. Всё это лежит в конфигурационном пространстве и читается любой программой с достаточными правами, включая античит с драйвером уровня ядра.
Ничего хитрого в такой проверке нет. Система и так обязана опрашивать устройства, чтобы с ними работать. Вопрос только в том, что именно ваша плата о себе сообщает.
Откуда берутся стоковые идентификаторы
Подавляющее большинство плат для прямого доступа к памяти построено вокруг FPGA и открытых проектов прошивки. По умолчанию такая прошивка честно представляется тем, чем является: отладочной платой конкретной модели. Идентификаторы там стандартные, одни и те же у всех, кто купил такую же железку.
Дальше арифметика простая. Если в системе обычного игрока обнаруживается отладочная плата с узнаваемым набором полей, это ещё не доказательство, но очень хороший повод присмотреться. А поскольку в игровых компьютерах такие устройства не встречаются практически никогда, выводы делаются быстро.
Что именно меняют
Смысл настройки в том, чтобы устройство выглядело обыденно. Правятся идентификаторы производителя и устройства, подсистемные поля, класс, ревизия, размеры окон памяти. Грамотная прошивка не выдумывает несуществующую железку, а повторяет конфигурацию реальной, которая в компьютерах встречается регулярно.
Здесь кроется частая ошибка. Люди берут поля дорогого контроллера или серверной сетевой карты, которых в их сборке быть не может физически, и получают устройство, выглядящее нормально само по себе, но не вяжущееся с остальной системой. Такое несоответствие заметнее, чем стоковые идентификаторы.
Дело не только в идентификаторах
Поля конфигурационного пространства проверяются проще всего, поэтому с них и начинают. Но устройство выдаёт себя ещё и поведением: какие области памяти запрашивает, как часто обращается, насколько аккуратно держится на шине.
Плата, которая молотит запросами без остановки, выглядит совсем не так, как контроллер, за который она себя выдаёт. Отсюда следствие, о котором редко думают: настройки софта на второй машине тоже влияют на общую картину, и выкручивать частоту опроса на максимум просто потому, что так можно, далеко не лучшая идея.
Прошил и забыл не работает
Второй момент, который стоит принять заранее. Прошивка это не разовое действие, а часть обслуживания. Проверки на стороне защиты меняются, появляются новые признаки, а конфигурации, считавшиеся нормальными полгода назад, начинают выделяться.
Поэтому в связке важнее не то, насколько хороша прошивка прямо сейчас, а то, есть ли за платой кто-то, кто её ведёт. Железка без сопровождения превращается в кусок текстолита через два или три серьёзных обновления, и экономия при покупке этого не компенсирует.
Как понять, что с прошивкой что-то не так
Прямых индикаторов нет, но косвенные попадаются регулярно. Устройство определяется как неизвестное и висит с восклицательным знаком в диспетчере. Или наоборот, система уверенно подтягивает драйвер от настоящего устройства, поля которого скопированы, после чего начинаются конфликты. Бывает, что плата в списке есть, а обращения к памяти проходят через раз.
Ни один из этих признаков сам по себе не означает, что вас непременно заметят. Зато каждый означает, что конфигурация собрана небрежно, а небрежность в таких вещах редко бывает единственной.
Что реально можно сделать самому
Если вы умеете обращаться с цепочкой сборки прошивки, многое делается руками: собрать конфигурацию под свою систему, снять параметры подходящего устройства, пересобрать образ и залить его на плату. Инструменты открытые, документация есть, порог входа не запредельный.
Если не умеете, честнее признать это сразу. Полуграмотная самостоятельная настройка хуже стоковой: получается устройство с противоречивыми полями, которое вызывает вопросы с любой стороны. В этом случае разумнее брать плату там, где её отдают уже настроенной, и заплатить за эту работу.
Что спросить у продавца
Три вопроса снимают большую часть будущих проблем.
Как плата настроена и подо что именно. Рассказы про универсальную совместимость не значат ничего, нормальный ответ всегда конкретный.
Кто занимается прошивкой и как часто она обновляется. Если продавец не может внятно сказать, кто автор и когда был последний релиз, вы покупаете лотерейный билет.
Что происходит, когда конфигурация перестаёт быть актуальной. Нормальный вариант это обновление, которое приходит владельцам. Плохой это молчание и предложение взять новую плату.
Платы с настроенной прошивкой и понятной историей обновлений собраны здесь: https://getdma.io
Коротко
Плата сама по себе это половина покупки. Вторая половина это прошивка и человек, который её поддерживает. Стоковая конфигурация работает ровно до первой внимательной проверки, самодельная без опыта обычно хуже стоковой, а нормально настроенная и сопровождаемая живёт годами. Разница в цене между этими вариантами почти всегда меньше стоимости одного потерянного аккаунта.
Поделиться статьей с друзьями!

