Как мне удалось запустить Radeon R7 240 на Windows Server 2022
После переноса Windows Server 2022 из облака на домашний компьютер возникла проблема с видеодрайвером. Базовый адаптер Microsoft предлагал максимум 1280×1024, а одна из попыток установить драйвер закончилась чёрным экраном. Я уже подумывал о покупке T400 или RX 580, но сначала решил разобраться с имеющейся видеокартой.
Мой компьютер собран на платформе X99: процессор Xeon E5-2697 v4, 64 ГБ оперативной памяти и пожилая Radeon R7 240. Монитор подключён через HDMI. В Windows 11 видеокарта работала, поэтому менять её без необходимости не хотелось.
Помог драйвер, сохранившийся в старой Windows на соседнем разделе. Пакет оказался выпущен ещё в 2019 году. С ним Server загрузился после перезагрузки и предложил разрешение 3840×2160 при 30 Гц. Менять видеокарту или её прошивку не понадобилось.
Перенос системы
В облаке у меня работал Windows Server 2022 с двумя дисками. Я скачал оба образа в формате QCOW2 и разворачивал их на своём компьютере по очереди: места для всех промежуточных файлов одновременно не хватало.
Порядок был таким: преобразовал QCOW2 в VHDX, подключил образ для чтения, сохранил содержимое нужного раздела в WIM и восстановил его на подготовленный раздел локального диска. Затем настроил загрузчик и буквы дисков. Прежнюю Windows 11 оставил на случай, если Server не запустится и потребуется восстановление.
Запасная система понадобилась довольно скоро. Однако ещё до проблем с драйвером я обнаружил два варианта загрузки одного накопителя: UEFI OS и Windows Boot Manager. Первый приводил к ошибке MainFrame.xml, а второй запускал Server. В дальнейшем я выбирал Windows Boot Manager.
Установка драйвера и чёрный экран
Неудачей закончилась попытка установить AMD 27.20.20913.2000. Драйвер удалось поставить принудительно, но вместо рабочего стола появился чёрный экран, на котором система и оставалась. В журналах повторялись ошибки dwm.exe — процесса, отвечающего за отображение окон. Выяснилось, что в пакете был изменён INF-файл, а каталог подписали заново.
Я загрузился в резервную Windows 11 и отключил этот драйвер в реестре установленного Server. Рабочий стол вновь появился, теперь уже с базовым адаптером Microsoft. Правда, в списке разрешений остался единственный вариант — 1280×1024, а монитор определился как универсальный.
Это позволило продолжить настройку системы, но мириться с таким разрешением на своём мониторе я не собирался.
Другие попытки
Сначала я проверил настройки прошивки материнской платы. В разделе CSM переключил Video с Legacy на UEFI, а для Boot option filter выбрал UEFI only. После перезапуска изображение исчезло уже при включении компьютера, поэтому я вернул прежние значения.
Поскольку я одновременно изменил два параметра, установить причину не удалось. В итоге CSM остался включён, для видео был выбран Legacy, а для загрузки — UEFI и Legacy. Позже рабочий драйвер установился именно с этими настройками.
Затем я проверил параметры загрузки Windows. Отключил оставшийся BASEVIDEO и перезагрузился, но разрешение по-прежнему составляло 1280×1024. Отдельный запуск с highestmode тоже ничего не изменил. Этот параметр позволяет загрузочным приложениям использовать максимальный графический режим, доступный через прошивку; его описание есть у Microsoft. В моём случае он не помог, и после проверки я удалил временную запись загрузки.
Где обнаружился подходящий драйвер
После этого я решил выяснить, какой драйвер использовала прежняя Windows 11. В её хранилище обнаружилась папка:
...\System32\DriverStore\FileRepository\u0346830.inf_amd64_35731e557194973d
В ней находился AMD 26.20.12028.2 от 16 августа 2019 года с исходным INF-файлом u0346830.inf. В журнале старой Windows сохранилась запись о том, что этот пакет применялся к моей видеокарте. На тот момент раздел с Windows 11 был доступен из Server.
Заодно стало понятно, почему недостаточно просто найти «драйвер для R7 240». Видеокарта может присутствовать в INF, но подходящего раздела для Server в файле не окажется. Так было с проверенным пакетом 27.20.1034.6: моя карта в нём значилась, однако разделы предназначались для клиентской Windows. В Crimson 17.7.1 для Windows 8.1 нужный идентификатор тоже нашёлся, но раздел для Windows 10 был пуст.
В пакете 2019 года содержался точный идентификатор моей видеокарты:
PCI\VEN_1002&DEV_6613&SUBSYS_80941462
Там же был раздел NTamd64.10.0...16299, который Server мог выбрать. Ограничение ProductType=1, обозначающее клиентскую Windows, в нём отсутствовало. Подробнее о таких строках рассказано в документации Microsoft.
Я проверил подпись каталога: Microsoft Windows Hardware Compatibility Publisher. Она оказалась действительной, а INF соответствовал каталогу. Изменять пакет или повторно его подписывать не потребовалось.
Установка
Помня о предыдущем чёрном экране, я сначала скопировал ветку реестра SYSTEM и сохранил сведения об установленном драйвере. Затем добавил найденный пакет через PnPUtil, пока не устанавливая его на видеокарту. Windows приняла пакет и определила его как наиболее подходящий для аппаратного идентификатора устройства.
В командах ниже используется условный путь ...\Drivers\R7-240. В папке должен находиться весь пакет со вложенными файлами, а не только INF. Команды следует запускать от имени администратора.
Добавление пакета:
pnputil /add-driver "...\Drivers\R7-240\u0346830.inf"
После проверки пакета и подготовки способа отката можно выполнить установку:
pnputil /add-driver "...\Drivers\R7-240\u0346830.inf" /install
Параметры команды перечислены в справке PnPUtil. Я не копировал файлы вручную в работающую Windows: установку выполняла сама система.
На случай повторного появления чёрного экрана я заранее создал задачу от имени системы. Она должна была удалить новый пакет через десять минут, если я не отменю откат. Перед удалением задача сверяла имя пакета и контрольную сумму. В моём случае пакет получил имя oem0.inf, но на другом компьютере этот номер может относиться к совершенно другому драйверу.
Здесь я сам добавил себе работы: изображение появилось, но отменить откат вовремя я забыл. Таймер сработал и удалил драйвер. Пришлось установить тот же пакет повторно, проверить рабочий стол и убрать задачу. Заодно я убедился, что откат действительно работает. Резервную Windows всё же сохранил на случай полного зависания компьютера.
Результат
В диспетчере устройств появилась AMD Radeon R7 240 с драйвером версии 26.20.12028.2, ошибок устройства не было. Монитор определился как P27A2V. Стали доступны подходящие разрешения: 3840×2160 при 30 Гц и 2560×1440 при 60 Гц.
В dxdiag я проверил режим 3840×2160, 32 бита, 30 Гц. Там же отображались WDDM 2.6 и включённое ускорение Direct3D. Сам монитор сообщал о предпочтительном режиме 4К при 60 Гц, но на моей системе для 4К доступны только 30 Гц. Причину этого я пока отдельно не исследовал.
Затем я перезагрузил компьютер. Server запустился с тем же драйвером и разрешением, рабочий стол работал. Примерно через час после запуска я проверил журналы: новых сбоев графики не обнаружилось. Игры и серьёзную нагрузку я не тестировал — для этого компьютера они мне не нужны. Задача заключалась в том, чтобы вернуть нормальное изображение и убедиться, что после перезагрузки чёрный экран не появится снова.
Покупку другой видеокарты я пока отложил. Старую Windows тоже оставил: с её помощью удалось и отключить неудачный драйвер, и найти рабочий. Если вы столкнулись с похожей проблемой, стоит проверить, какой пакет прежде работал с вашим оборудованием. Мне подошёл 26.20.12028.2 — без изменения INF и отключения проверки подписей.
Солнце проснулось: Земле предстоит неделя магнитных бурь
В России появился неубиваемый Honor X8e за 28 тысяч рублей: усиленный корпус, IP69K, батарея на 7700 мА·ч, камера 108 Мп и 256 ГБ памяти
В России быстро увеличиваются мощности центров обработки данных
Honor представила смартфоны 700, 700 Pro и 700S с дополнительным экраном и сверхтонкой рамкой
Samsung выпустила One UI 9.0 для Galaxy A06 5G — самого доступного смартфона линейки Galaxy A
Второй серийный МС-21 для «Аэрофлота» почти готов к полёту: российская альтернатива Boeing 737 и Airbus A320
Вышла GeForce 8800 GTX — 20 Years of a Legend: для игры о распаковке видеокарты нужна RTX 4070, а лучше RTX 5080
Thea Energy испытывает необычный термоядерный реактор с 300 малыми и 12 большими магнитами