 |
UniATA TroubleShooter/FAQ
Answers
Q: Из какого .INF устанавливать и какой контроллер выбирать в списке ?
A1: На самом деле это не имеет значения. Для драйвера. А вот для PnP-менеджера,
управляющего загрузкой драйверов, - имеет. К сожалению я пока не знаю какое именно.
Есть смысл сначала попробовать поставить "Standard Dual Channel PCI BusMaster IDE Controller"
из ATA версии INF'а (это та, что с суффиксом 'h' в конце имени файла).
Если система будет считать, что есть более подходящий драйвер, попробовать уже точно указать модель.
Если и это не помогает - тогда то же самое со SCSI версией .INF'а (без суффикса 'h' в конце имени файла).
A2: Установить жестким хаком. А именно - заставить PnP грузить UniATA независимо от наличия подходящего
(с точки зрения PnP менеджера) контроллера:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#CC_0101]
"Service"="uniata"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\primary_ide_channel]
"Service"="uniata"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\secondary_ide_channel]
"Service"="uniata"
Либо вообще установить старым добрым методом - через .REG файл (uniata_w2k.reg).
Подходит не только для 2000, но и для XP.
Q: Как прикрутить UniATA к дистрибутиву WinPE ?
A: Взято с сайта KtP - http://www.geocities.com/bearwindows/winnt4.htm,
говорят, для WinPE этот метод тоже работает.
- скопируйте uniata.sys в \I386 (\minint)
- отредактируйте txtsetup.sif следующим образом
[SourceDisksFiles]
...
uniata.sys = 1,,,,,,_3,4,0,0
...
[SCSI.Load]
uniata = uniata.sys,4 ;must be first line!!!
...
[SCSI]
...
uniata = "Universal ATA driver"
...
Q: А у меня (на новой машине, с моим новым HDD, CD/DVD) не работает...
A: Нехорошо конечно. Но принципиально поправимо. Я буду очень благодарен,
если в bug-report'е вы укажите:
- как именно не работает,
- версию вашей ОС (например Windows 2000 sp3),
- версию UniATA (например uniata 30g),
- результаты работы утилиты PciDumpc.exe
http://alter.org.ua/soft/win/ntpcidump
- полную информацию о PCI устройствах,
- а также список IDE устройств (например Primary Master - HDD, Secondary Master -
CD-ROM, Secondary Slave - ZIP). Список IDE устройств можно получить при помощи утилиты atactl.exe,
входящей в комплект поставки начиная с версии 0.30g, установка самого драйвера для этого не требуется.
- если появляется синий экран, сфотографируйте или запишите что там было.
Это очень поможет мне разобраться, что же именно не работает.
Q: После установки UniATA машина постоянно перезагружается.
A: Скорее всего это должен был быть синий экран. Чтобы убедиться,
а заодно узнать детали происходящего сделайте вот что:
- удалите драйвер из системы (см. также Как удалить UniATA используя прямой доступ к Registry ?)
- зайдите в Мой компьютер -> Свойства -> Дополнительно -> Загрузка и восстановление -> Параметры,
а английской системе это будет My Computer -> Properties -> Advanced -> Startup and Recovery -> Parameters
- снимите отметку Выполнить автоматическую перезагрузку (Automatically reboot)
- снова установите драйвер
- если появляется синий экран, сфотографируйте или запишите что там было.
Q: Работает, но как-то не так.
A: Потребуется собрать логи:
- установите DbgPrint Dump:
DbgPrintLog.exe -full -T DTN -wd X:\dir_for_logs -drv 1 -svc A -drvopt DoNotPassMessagesDown 1
-drvopt StopOnBufferOverflow 1 -drvopt BufferSize 16384 -ovw --nowait DbgDump_init.log
Note 1: Вместо X:\dir_for_logs подставьте имя каталога, который реально существует на вашем
компьютере.
Note 2: При копировании обратите внимание, что это все должна быть одна строка.
- замените драйвер uniata.sys в каталоге System32\drivers на Debug-версию.
- перезагрузитесь и после входа в систему заберите из каталога X:\dir_for_logs полученые логи.
(файл DbgDump_init.log) Это будет информация о инициализации драйвера.
- измените настройки DbgPrint Dump:
DbgPrintLog.exe -drv M -svc M -drvopt DoNotPassMessagesDown 1
-drvopt StopOnBufferOverflow 0 -drvopt BufferSize 16384
- снова запустите сборщик логов:
DbgPrintLog.exe -full -T DTN -wd X:\dir_for_logs -ovw DbgDump.log
- воспроизведите проблему
- остановите сбор логов (Esc в его консоли) и заберите логи.
- отправьте все собранное мне, желательно в архиве.
PS. Более подробно о сборе логов написано здесь:
WinDbg HOWTO для тестировщиков
Q: При установке в NT4 вместе с OS (когда инсталятор спрашивает
про Дополнительные SCSI/RAID контроллеры) выдается ошибка
File caused an unexpected error (0) at
line 1213 in D:\nt\private\ntos\boot\setup\oemdisk.c.
Press any key to continue
.........................
File caused an unexpected error (0) at
line 1607 in D:\nt\private\ntos\boot\setup\arcdisp.c.
Press any key to continue
и наступает Page Fault.
A:
Кажется в 29b исправил. Но если все равно не работает, попробуйте вот что:
После первой фазы копирования файлов во время
reboot'а загрузиться с дискеты/CD
и подменить файл atapi.sys (хранится во временном каталоге)
на uniata.sys (переименовав atapi.sys,
естественно, чтобы иметь путь к отступлению). После этого перезагрузиться и продолжить установку.
Но уже с другим драйвером.
Q: В Менеджере Устройств пишется Конфликт Ресурсов...
A: Пока не знаю как исправлять. Жить не мешает.
На всякий случай можно проверить, каким драйвером обслуживаются ваши контроллеры
с помощью свежей утилиты atactl.exe.
Q: После установки UniATA в w2k/XP перестал работать hibernate.
A: Знаю. Пока думаю как исправлять.
Q: Как собрать UniATA из исходников ?
A: Отныне в архив с исходниками вложен файл building.txt. Кроме того,
о сборке UniATA можно почитать здесь:
http://alter.org.ua/soft/win/uni_ata/building.txt
Q: Как удалить UniATA используя прямой доступ к Registry ?
A:
NT4
w2k/XP
-
Установить
[HKLM\System\CurrentControlSet\Services\Atapi]
"Start"=dword:00000000
[HKLM\System\CurrentControlSet\Services\PciIde]
"Start"=dword:00000000
[HKLM\System\CurrentControlSet\Services\PciIdex]
"Start"=dword:00000000
-
Заходим в
[HKLM\System\CurrentControlSet\Services\UniATA\Enum]
-
Находим там значения вида
"1"="PCI\VEN_1106&DEV_0571&SUBSYS_05711106&REV_06\2&ebb567f&0&39"
"2"="PCI\VEN_1095&DEV_0649&SUBSYS_06491095&REV_02\2&ebb567f&0&48"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
и запоминаем подчеркнутую часть
-
Заходим в
[HKLM\System\CurrentControlSet\Enum\PCI]
и находим там ключи с именами, которые мы запомнили в предудущем пункте.
В моем примере это будут
[HKLM\System\CurrentControlSet\Enum\PCI\VEN_1106&DEV_0571&SUBSYS_05711106&REV_06]
[HKLM\System\CurrentControlSet\Enum\PCI\VEN_1095&DEV_0649&SUBSYS_06491095&REV_02]
а во всех их подключах меняем
[HKLM\System\CurrentControlSet\Enum\PCI\VEN_1106&DEV_0571&SUBSYS_05711106&REV_06\2&ebb567f&0&48]
"Service"="UniATA"
на
[HKLM\System\CurrentControlSet\Enum\PCI\VEN_1106&DEV_0571&SUBSYS_05711106&REV_06\2&ebb567f&0&48]
"Service"="Atapi"
Обратите внимание, "Atapi" - это некий стандартный драйвер, еще возможные вариант стандартных драйверов -
"pciide" и "pciidex". Для Intel'овских контроллеров
это скорее всего будет "intelide", для VIA - "viadsk" или "viaide", в общем поищите подходящих
кандитатов в ветке
[HKLM\System\CurrentControlSet\Services]
-
Заходим в ключи
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#CC_0101]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\primary_ide_channel]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\secondary_ide_channel]
Там тоже может потребоваться редактировани значения "Service".
-
Удалить
[HKLM\System\CurrentControlSet\Services\UniATA]
Если CurrentControlSet отсутствует - это обычно бывает, если работать
например из ERD Commander'а или рядом стоящей рабочей ОС, смотрим в
[HKEY_LOCAL_MACHINE\SYSTEM\Select]
"Current"=dword:00000001
Это и будет номер ControlSet'a. В приведенном примере вместо CurrentControlSet
следует использовать ControlSet001.
См. также
UniATA driver home
Писать сюда:
alterX@alter.org.ua (remove X)
|
 |