Разное

Windows xp режим vga: Безопасный режим windows XP?

Выживание Windows XP x32 на современных ПК c процессором Intel / Хабр

Речь пойдет про платы периода 2016-2021+, т.е. процессоры Skylake и выше. На платформe AMD почти те-же проблемы, но чуть меньше. Все что относится к Windows XP также применимо к Windows 2003 Server за исключением мелких деталей. C Windows XP/2003 x64 ситуация тоже схожа, но изначально условия несколько благополучнее (нет проблем с драйверами в системах с памятью выше 4Гб). Статья не является «пошаговой инструкцией», в основном теория и способы решения проблем. На вопрос «Да кому сейчас нужен этот XP?» мой персональный ответ — это хобби, протащить алмаз код 2001 года через паутину современного железа…

Если попытаться установить XP c установочного носителя (cdrom/usb/hdd), установщик вывалится в BSOD 0xA5.

Этот код ошибки относится к подсистеме ACPI, которая выбирается установщиком как приоритетная. В установщике можно выбрать режим без использования ACPI, затем это отразится на работе Windows — 1) ограниченное управление питанием процессора/частоты и возможное ограничение на кол-во обнаруженных ядер, 2) часть устройств содержит код инициализации/управления/. .. в ACPI таблицах DSDT/SSDT, этот код никогда не будет задействован. Я режим «без ACPI» никогда не использовал и не тестировал, возможно есть и другие ограничения (самое известное — отсутствие программного способа выключить компьютер).

Вернемся к приоритетному режиму, с активным ACPI. Cтандарт менялся, выходило несколько версий, для нас ключевые версии ACPI 1.0b и ACPI 2.0, разница между ними существенная, а вот разница между ACPI 2.0 и например ACPI 6.1 со стороны Windows я подозреваю отсутствует (imho). Windows XP поддерживает только версию 1.0b, Vista и выше поддерживают обе версии. Производители мат. плат ориентируются на актуальные версии Windows, совместимость с Windows XP больше не требуется, поэтому код bios реализует только версию 2.0(или одну из последующих версий). Основные отличия стандарта 2.0 от 1.0b:

  1. синтаксис ACPI Source Language (ASL) расширен на ~13 новых комманд

  2. появился 64-битный доступ к памяти/полям структур

  3. на хранение/арифметику всех целых чисел выделяется 64 бита вместо 32 бит.

Причина почти всех BSOD 0xA5 это пункт 1. ACPI Source Language (ASL), для решения этой проблемы существует два различных файла ACPI.sys реализующих новый синтаксис. Второй файл взят из бета версии Longhorn и имеет также реализацию пунктов 2. и 3.

Итак, установщик более не радует нас BSOD 0xA5, можно устанавливать Windows c активным ACPI. Для управления используется клавиатура, после первой перезагрузки включается графическая часть установщика и можно использовать еще и мышь. Эти устройства давно с USB интерфейсом и у большинства пользователей с ширпотреб. материнскими платами подключены к портам южного моста. Южный мост у Intel еще с предыдущих платформ переименован в PCH (Platform Controller Hub) и на микросхеме h210(и выше) содержит только USB3 контроллер (в предыдущих платформах Ivy/Sandy/??? был совмещенный USB2/USB3 контроллер). Windows XP имеет встроенные драйвера только на USB1/USB2, для USB3 встроенные драйвера появились только в Windows 8. Так как же управлять USB-клавиатурой подключенной к USB3 контроллеру в установщике без драйверов? Помощь приходит со стороны мат. платы, почти во всех BIOS есть эмулятор PS/2 клавиатуры/мышь. Это программный эмулятор, работающий на уровне SMM (System Management Mode), он преобразует аппаратные события со стороны USB3 контроллера в виртуальный IO порт 0x60-0x64, для Windows и даже DOS это выглядит как аппаратное устройство и они активируют свои PS/2 драйвера. Эмулятор ущербный, с клавиатурой еще как-то можно работать, но мышь эмулируется на уровне «если прицелиться, то можно попасть в нужную точку на экране», но для установщика этого эмулятора хватает.

Управлять установщиком теперь возможно, далее будет BSOD 0x7B, про эту ошибку все и так знают — Windows не может найти ни одного поддерживаемого контроллера дисков(накопителей), решение тоже всем известное — в файлы установщика интегрировать AHCI драйверы производителя, для Intel есть много вариантов:

  1. простой и универсальный iaStor v11. 2.0.1006, работающий на любом Intel контроллере

  2. продвинутые Intel RST/RSTe

  3. StorAHCI из Windows 8 как в виде портированных исходников от минимум двух авторов так и в двоичном виде

  4. MS AHCI из Windows 7

  5. опенсорсный UniATA

Для NVMe накопителей также есть несколько вариантов универсальных драйверов: open source OFA 1.3/1.5, Windows 7 NVMe Driver, Samsung NVMe Driver

В итоге мешающие препятствия преодолены, Windows можно установить и загрузить до состояния графического рабочего стола. Но работать в такой системе некомфортно, решаемые(-частично) проблемы:

1) по прежнему используется неэффективнaй PS/2 эмулятор мыши/клавиатуры

2) некоторые приложения ведут себя странно, рывки анимации или похожие глюки

3) процессор всегда потребляет существенную мощность

4) доступно 1.5-3.2Гб ОЗУ при установленном размере физической памяти 4Гб и выше

5) нет доступа к дополнительным накопителям с GPT разметкой

6) расширенные инструкции AVX/AVX2/AVX-512

По каждому пункту:

1) по прежнему используется неэффективнaй PS/2 эмулятор мыши/клавиатуры

Вместо эмулятора нужен драйвер USB3 контроллера, Intel для XP драйвер не выпускала. После ряда экспериментов выяснилось что для Intel USB3 контроллера подходят три различных драйвера с разной стабильностью и совместимостью, самый лучший это портированный из Windows 8 драйвер от Microsoft. Для активирования более быстрого UASP режима накопителей есть три драйвера почти одинакового качества: а)VIA uas б) Microsoft uaspstor в) Etron uas. USB3 драйвер можно также интегрировать в установщик, но процесс достаточно сложный. Драйвера сторонних производителей USB3 для Windows XP это отдельная тема, «кто у кого что украл и при чем здесь индусы»

2) некоторые приложения ведут себя странно, рывки анимации или похожие глюки

Проблема связана со счетчиком производительности. В разных версиях Windows для этого счетчика разный выбор из доступных аппаратных способов. Даже между Windows XP SP1 и SP2 выбор разный. Для SP3 выбор состоит из двух вариантов: а) ACPI Timer б) TSC процессора. Выбор определяет BIOS. С этим счетчиком актуален вопрос «Кто же напортачил, авторы спецификации ACPI 2. 0, которые сэкономили на одном бите регистра и этим сломали совместимость c пред. стандартом или это авторы современных BIOS, которые своенравно интерпретируют назначение этого бита ?» Мое маленькое расследование почему важен этот бит:

Аппаратный таймер ACPI и предположительно часть других аппаратных ACPI-блоков на современных Intel-мат. платах отключены за ненадобностью (не используются в Windows 7-10, но могут использоваться в Vista или других «не windows» ОС). Этот бит говорит операционной системе можно ли вообще использовать таймер ACPI. Логично не устанавливать этот бит поскольку таймер отключен, но BIOS по прежнему устанавливает этот бит , так как в ACPI 2.0 за ним закрепили еще одну функцию — индикатор наличия рабочего HPET таймера. От таких «оптимизаций» у Windows XP сносит крышу и она использует выключенный ACPI таймер как счетчик производительности(прошедшего времени). Решение проблемы — один из системных файлов патчится чтобы состояние этого бита интерпретировалось всегда как «0» и выбор счетчика был только один — TSC. Еще один камень в сторону авторов BIOS — на плате Gigabyte h210 при отключении HPET в bios этот бит по прежнему равен «1», т.е. явная ошибка

3) процессор всегда потребляет существенную мощность

Проблема снова связана с отключенными аппаратными ACPI блоками. В стандарте ACPI описаны два режима пониженного потребления мощности С2 и С3, для перехода процессор должен записать определенные значения в определенные порты ACPI железа, потом происходит БАХ и наступает мрак, на процессор тактовые импульсы больше не подаются + остальная магия, связанная с состоянием внутреннего кэша и т.д. Поскольку теперь ACPI на плате в урезанном режиме, Windows XP в режимы С2/С3 не переходит, хоть и записывает все что нужно в порты. Мрак не наступает, процессор крутится как ни в чем не бывало. Логично спросить — а как же экономят энергию Windows 7-10? Очень просто — они используют только возможности центрального процессора без задействования подсистемы ACPI.

От центрального процессора можно добиться два варианта:

  • классическая инструкция hlt, можно переключится только в режим С1

  • инструкции monitor/mwait, переключается в С7 или С10.

    Решение для Windows XP — патчим один файлик чтобы вместо ACPI С2/С3 использовались те-же два процессорных способа

4) доступно 1.5-3.2Гб ОЗУ при установленном размере физической памяти 4Гб и выше

Проблема давно известная, это программное ограничение появилось в Windows XP SP2. Для решения существует несколько известных утилит, PatchPae или более поздний комбайн «fix128» (все они некорректно меняют DMA функции, см. далее). Потом выяснилось что проблема зарыта гораздо глубже и виной тому Microsoft — она не смогла сделать удобное API для программирования DMA-передач. Вместо этого был монстр, который состоял из закрытых абстракций, коллбаков и подобных трюков. В теории через такой API все равно можно правильно программировать, но так смогли не только лишь все. Когда у вас менее 4Гбайт памяти, то драйвер какого-то устройства работает нормально, но если память переходит за эту границу, драйвер начинает вести себя по-другому. Вместо того чтобы заменить API и мотивировать сторонних разработчиков исправить существующие драйвера, Microsoft пошла короткой дорогой — в SP2 вырезана поддержка памяти выше 4Гбайт, все DMA-передачи теперь также ограничены максимальным 32-битным адресом, система сертификации драйверов дает добро на драйвера, которые даже не работают с памятью > 4Gb, разрабы больше не парятся на тему «а как наш драйвер поведет себя на >4Гб ?»

Полноценного решения проблемы нет в принципе, если у вас есть некое устройство, но его драйвер некорректно работает с памятью >4GB, то устройство «в пролете», надо возвращать обратно лимиты по памяти. У Microsoft тоже есть такой драйвер — печально известный драйвер USB2. Тот же драйвер для Windows 2003 не имеет подобной проблем, но внутри он «другой», с корректным программированием DMA.

Вместо старых утилит снятия ограничений, обновилась WinXPPAE v3.5 от Daniel K., только она содержит правильный патч DMA-передач, восстанавливающий эквивалентный код из SP1 и при этом не создающий новых проблем.

5) нет доступа к дополнительным накопителям с GPT разметкой

Когда-то Paragon Software выпустил GPT драйвер для Windows XP, с тех пор его и используют. Альтернативный вариант это файлы из Windows 2003 поверх встроенных в XP. Для загрузки с GPT раздела этого недостаточно, так как необходима сквозная поддержка начиная с кода бут сектора, есть удачные эксперименты с использованием сторонних загрузчиков

6) расширенные инструкции AVX/AVX2/AVX-512

AVX и выше требуют поддержки со стороны ОС так как нужно сохранять куда-то новые регистры при переключении контекста. Решение частичное — когда то Microsoft расщедрилась и заранее добавила новые поля как резервные в область сохранения контекста. Этих полей достаточно для сохранения всех AVX регистров в x32 режиме, но уже не хватает для всех AVX-512 регистров. Если речь про Windows XP x64, то места по-моему не хватит даже для всех AVX регистров, их там банально больше в два раза.

А теперь время «печали», список нерешаемых(нерешенных) проблем:

  1. Отcутствие WINE for Windows XP (есть конечно One-Core-API, но у него реализация на мой взгляд бескомпромиссная — заменять существующий код XP на код ReactOS/Wine ). Это самая существенная проблема выживания Windows XP, из-за неё почти все новые версии выпускаемого ПО неработоспособны (функция xxx не найдена в библиотеке yyy)

  2. существующие ACPI.sys не дотягивают до уровня хотя бы vista

  3. загрузка Windows 32бит из современного 64-битного UEFI режима

  4. установка/загрузка с GPT накопителя

  5. нет TRIM «на лету» для SSD, можно только периодически запускать сторонние утилиты для принудительного «маркирования» всех неиспользуемых секторов как свободных

  6. поддержка DirectX 10/11 видео-драйверов с более поздних Windows

P.S. Есть пара законченных проектов для ковыряния в кишках ядра XP и портирования драйверов:

  • Remote kernel debug over LAN or USB3 cable,

  • WinXP/W2003 ntoskrnl. exe Emu_Extender

  • ACPI DSDT/SSDT Patcher at boot time for any windows

Черный экран при загрузке XP » Страница 3

Черный экран при загрузке XP возникает при включении компьютера, системный блок при этом издаёт постоянные сигналы, экран монитора остаётся чёрным. Или вообще сигналов никаких нет и ваш системный блок не подаёт никаких признаков жизни, причин здесь может быть довольно много.

  • Друзья, время не стоит на месте и статье, которую вы сейчас читаете, уже несколько лет, недавно у нас вышла новая статья, описывающая более подробно причины возникновения данной неприятности — Почему не включается компьютер. 

Такой вариант, компьютер включился нормально, прозвучал один короткий сигнал говорящий нам о том, что процедура POST «самотестирование при включении питания компьютера» пройдено нормально, ваш компьютер при включении как бы проверяет сам себя на работоспособность, то есть компьютер по всем признакам включился нормально, а экран монитора чёрный. В большинстве подобных случаев неисправность связана с монитором, выходом из строя платы формирования и обработки видеосигнала. Эту неисправность мы с вами сами устранить не сможем. Но давайте рассмотрим неполадки, которые тоже часто встречаются и мы сможем устранить их сами.

Как это не банально звучит, в первую очередь нужно проверить включён ли ваш компьютер, подаётся ли электричество, в каком состоянии сетевой фильтр, а розетки исправны.

 

Посмотрите, как подсоединён монитор к системному блоку. Если на мониторе периодически загорается индикатор питания, но экран так и остаётся чёрным, проверьте подключение кабеля VGA или DVI, правильно ли они подключены,  достаточно ли плотно сидят на своих местах.

 

У вас элементарно могут слететь драйвера на видеокарту и монитор не сможет отобразить выставленное разрешение экрана, читайте Input Not Supported.

Рассмотрим ещё один вариант, при включении системный блок запускается, но сигнала о пройденной процедуре POST нет, экран чёрный, системный блок работает, в этом случае почти всегда виновата оперативная память, или севшая батарейка CMOS, реже видеокарта.

Давайте попробуем извлечь модули оперативной памяти и посмотреть на контакты, они могут окислиться, тогда их нужно почистить резинкой и поставить на место, попробуйте поменять модули оперативки местами, может на материнской плате присутствуют свободные разъёмы для оперативной памяти попробуйте использовать их, не поленитесь, замените батарейку CMOS на материнской плате, может помочь.

Далее обратите внимание правильно и надёжно подключена видеокарта, как внутри системного блока, так и снаружи, у неё также нужно почистить контакты.

 

 На фото можно увидеть, что кабель DVI не привинчен и не плотно сидит на своём месте.

Другое дело, если системный блок издаёт постоянные сигналы при включении компьютера, тогда по ним можно определить, какой именно девайс вышел из строя в вашем системном блоке. Например неисправностям видеокарты будет соответствовать один сигнал, а неисправности оперативной памяти другой, процессору третий и так далее, расшифровка звуковых сигналов BIOS описана в нашей статье Звуковые сигналы BIOS.

При неудачном запуске компьютера мы будем пытаться определить неисправность полагаясь на звуковые сигналы  BIOS, а что можно сделать когда компьютер не загружается и не выдаёт определенного звукового сигнала, изображение при этом на экране отсутствует.

  1. Первое, что нужно сделать, это полностью обесточить компьютер и оставить его в покое на некоторое время.
  2. Второе, удостовериться в правильном подключении всех разъёмов и устройств.
  3. При отключённом питании, откройте корпус и посмотрите плотно ли вставлены в соответствующие разъёмы видеокарта и модули оперативной памяти.
  4. Если вы до этого экспериментировали с параметрами BIOS, нужно сбросить все настройки по умолчанию, наша статья BIOS настройки по умолчанию.
  5. Попробуйте запустить компьютер с минимально необходимыми устройствами, если у вас несколько жёстких дисков, оставьте тот на котором установлена операционная система, отключите всевозможные карты расширения, ТВ-тюнеры и так далее, отключите дисковод.
  6. Подсоединяйте устройства по одному и включайте компьютер, так определится неисправное комплектующее.
  7. Выньте модули оперативной памяти и посмотрите на контакты, они могут окислиться, потрите их  резинкой и поставьте на место, попробуйте поменять модули оперативной памяти местами, если на материнской плате присутствуют свободные разъёмы для оперативки используйте их. Попробуйте вставлять оперативную память по одному модулю по очереди и пробуйте включать компьютер, вероятно какой-то модуль вышел из строя.
  8. Если вы так не смогли определить неисправность, вспомните какие действия вы производили в последнее время с вашим компьютером, может причина кроется именно в них. Знайте так же, что ни одну комплектующую в вашем компьютере вы сами, своими силами отремонтировать не сможете, и в сервисных центрах этим заниматься не будут. Решается это только заменой неисправного оборудования.
  9. Севшая батарейка CMOS, так же бывает причиной чёрного экрана.
  10. Замените кабель для монитора DVI или VGA                                                                                      

Видеокарта PCI Express должна плотно находиться в своём разъёме.

 

Обязательно закреплена болтом или специальной защёлкой.

 

 Модуль оперативной памяти не плотно находится в своём разъёме.

 

Контакты модулей оперативной памяти.


сбой — Windows XP загружается только в режиме VGA и вылетает при повышении разрешения

Задавать вопрос

спросил

Изменено 10 лет, 7 месяцев назад

Просмотрено 1к раз

Компьютер моего ребенка (Windows XP, SP3) начал (как кажется) зависать при загрузке. Он загружается только в безопасном или VGA-режиме, а если я пытаюсь поднять разрешение с 640х480, то просто сам перезагружается, а в журнале событий появляется ошибка. Когда он загружается не в режиме VGA, монитор выключается сразу после отображения логотипа Windows. Кажется, что Windows действительно работает, но я ничего не вижу на экране (монитор выключен из-за отсутствия сигнала).

В последнее время ничего не устанавливалось, насколько я знаю, за исключением обычных обновлений Windows.

Спасибо, Harel

Ниже приведена ошибка журнала событий:

 Тип события: Ошибка
Источник события: системная ошибка
Категория события: (102)
Идентификатор события: 1003
Дата: 15.04.2012
Время: 16:27:11
Пользователь: Н/Д
Компьютер: -----
Описание:
Код ошибки 1000008e, параметр 1 c0000005, параметр 2 f745b0bf, параметр 3 ede24f98, параметр 4 00000000.
Дополнительные сведения см. в Центре справки и поддержки по адресу http://go.microsoft.com/fwlink/events.asp.
Данные:
0000: 53 79 73 74 65 6d 20 45 Система Е
0008: 72 72 6f 72 20 20 45 72 ррор Эр
0010: 72 6f 72 20 63 6f 64 65 код рор
0018: 20 31 30 30 30 30 30 38 1000008
0020: 65 20 20 50 61 72 61 6d Парам.
0028: 65 74 65 72 73 20 63 30 эфиры c0
0030: 30 30 30 30 30 35 2с 20 000005,
0038: 66 37 34 35 62 30 62 66 f745b0bf
0040: 2с 20 65 64 65 32 34 66 , ede24f
0048:3938 2с 20 30 30 30 30 98, 0000
00:50: 30 30 30 30 0000
 
  • windows-xp
  • сбой
  • дисплей

5

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

windows xp — инструмент, чтобы узнать, какая видеокарта установлена ​​в моей системе?

спросил

Изменено 7 лет, 3 месяца назад

Просмотрено 17 тысяч раз

для Win XP есть?

  • dxdiag, msinfo и т. д. не показывают ничего, кроме «универсального VGA»
  • windows-xp
  • видеокарта

Причина появления Generic VGA заключается в том, что у вас не установлен правильный графический драйвер и вы используете драйверы Windows по умолчанию.

Я настоятельно рекомендую вам попробовать GPU-Z. Хотя с драйверами он очень точен и может определять многих производителей и моделей, без установленных правильных драйверов это 50/50, и у меня были смешанные результаты.

Далее я бы попробовал Speccy, но если GPU-Z выйдет из строя, то скорее всего не получится.

Если оба вышеперечисленных способа не работают, надежное решение состоит в том, чтобы перейти к диспетчеру устройств , затем дважды щелкнуть значок Generic VGA и перейти на вкладку Details , затем найти длинный идентификатор устройства, который должен выглядеть как-то похоже на PCI\VEN_1002&DEV_9612&SUBSYS_3656103C&REV_00 и загуглите (или скопируйте в свой вопрос, и вы должны получить ответ).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *