PDA

Показать полную графическую версию : DIT - Driver Install Tools


Страниц : [1] 2 3 4 5

Boa Soft
18-08-2012, 15:46
Boa Software DIT V1.0 - Driver Install Tools

Причина разработки данной программы - острая необходимость в автоматизации установки драйверов для Windows Vista/Windows 7 в автоматическом режиме.
На настоящий момент я не нашел готового решения, которое меня бы устраивало. Есть много разработок для установки драйверов, но они или не поддерживают того что мне нужно, или не совсем корректно отбирают драйвера (частый грех - предложение драйверов для другой системы или битности). Я постарался учесть все свои пожелания.

Пока программа чисто для автоматизации установки, консольная, не имеет интерфейса. Но, возможно, в будущем получит развитие и для ручной установки пакетов.

Текущая версия программы 1.0.5.2

Новое в текущей версии.

1. Добавлена папка NTALL для универсальных драверов, обрабатываемая независимо от версии и битности системы.
2. Место единого finish.ini обрабатываются все файлы INI в паке соответствеено битности и версии системы а так же в папке NTALL.
3. В фалах финишера сделано изменение - в любой секции любой из типов кондиций может содержать до 999 записей.
Нумерация стала трехразрядная (было HWID*_01 - max 99 записей в секции, стало HWID*_001 - max 999 записей в секции).
4. В фалах финишера добавлен фильтр по версии и битности os.
5. Каталогизатор - значение фильтра по умолчанию можно задать вручную (было - всегда WINALL).
6. Каталогизатор - автоматически создается заготовка для финишера. Какие кондиции включать в болванку - натраивается в секции Template.

Назначение.
Программа предназначена для автоматической установки или обновления драйверов.


Возможности программы.
Поддерживаемые системы - Xp, Server2003, Vista, Server 2008, Server 2008R2, 7, 8
Поддерживаются как 32 так и 64 бит версии системы (Используется 32 или 64 бит программы.)
Программа универсальна и можно использовать драйвер-паки любого сборщика, но в нововведениях учитываются в основном
изменения в драйверпаках от SamLab - http://samforum.ws
Программа консольная и с пользователем не взаимодействует.
Все настройки находятся в DIT.INI.

Работа с программой

Для начала создаем папку, в нее помещаем 32 и 64 версии программы, файл настроек и 7zip библиотеки из комплекта.
Далее, решаем, где будут находится драйвера
Если драйверы будут находится на жестком диске, то просто создаем папку и в ней папки платформ:
Nt5x86 и Nt5x64 - для XP и Server 2003
Nt6x86 и Nt6x64 - для Vista и старше.
NtALL - для универсальных пакетов, без различия по битности и версии os.
В них помещаем драйвер паки, соответственно битности.
В настройках программы указываем путь к этой папке.
Если драйвера у нас находятся на съемном носителе - то есть два варианта.
Первый - если программу будем запускать так же с этого носителя, то помещаем папку драйверов в папку программы
а в настройках используем переменную %SELF%, раскрывающуюся в путь к папке программы.
Второй посложнее, но более удобный. Если мы запускаем программу из другого места, то она может найти сама расположение
папки с драйверами. Для этого надо указать (и положить в корень нашего носителя) тэг-файл и указать в настройках
путь к папке с драйверами используя переменную %SOURCE% или %CDROM%.
Остальные настройки программы можно не изменять. Или изменить при понимании их назначения.

Далее самое важное - при помощи прилагаемой программы CatDrv необходимо проиндексировать все драйвер паки.
Запускаем программу, жмем на единственную кнопку и выбираем все пакеты из нашей созданной папки - сначала в подпапке x86 и
дожидаемся завершения работы. Потом тоже повторяем с x64.
Если вы думаете (а оно так и есть), что пакеты собраны не совсем корректно, то отметьте перед сканированием
'Исключая 64 бит драйвера' при сканировании папок с 32 бит драйверами или
'Исключая 32 бит драйвера' при сканировании папок с 64 бит драйверами соответственно.
Для настоящей версии при использовании пакетов с правильными маркерными папками в этом нет необходимости.
Для универсальных пакетов используйте только 'Включая все драйверы'

Замечены некоторые нюансы при индексации драйверов. Это относится к драйверам, имеющим в своем составе
несколько папок. Например, Nvidea. В частности, это касается на данный момент паков
DP_Graphics_A_wnt6-x86_1106M.7z
DP_Graphics_Mobile_wnt6-x86_1106M.7z

В их индексах надо заменить x86\G_A\Nvidia\1\Display.Driver; на x86\G_A\Nvidia\1\;
иначе будет распакована только папка x86\G_A\Nvidia\1\Display.Driver и драйвер не установится.
Тобиш, если есть вложенные папки в папке драйвера и inf лежит не в корневой папке драйвера,
то надо поправить имена папок в индексе так, чтобы они указывали на корневую папку. Путь к inf-файлу не трогаем.
В последней версии индексатора это уже учтено.

Так же, есть нюанс с точпадами, более нигде не реализованный.
У точпадов обычно несколько HWID, соответствующих одному устройству.
Из них обычно пара соответствует Hwid и Compatible Id стандартной мыши. Так вот, в результате точпадовский драйвер всегда будет устанавливаться
и без наличия точпада. Поэтому после сканирования надо удалить строки, содержащие HWID стандартной мыши.
В последней версии индексатора это уже учтено.


Все. Программа подготовлена к использованию.

Далее можно запустить программу вручную или прописать ее в SetupCompleteCmd.


Во вложении - DIT.7z - сама программа и пример готовых индексов для тестов.


Программа еще на стадии разработки и будет совершенствоваться.

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

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

Жду отзывов. Они очень помогут дальнейшему развитию.

Boa Soft
18-08-2012, 22:18
Замечены некоторые нюансы при индексации драйверов. Это относится к драйверам, имеющим в своем составе несколько папок. Например, Nvidea. В частности, это касается на данный момент паков
DP_Graphics_A_wnt6-x86_1106M.7z
DP_Graphics_B_wnt6-x86_1106.7z
DP_Graphics_Mobile_wnt6-x86_1106M.7z

В их индексах надо заменить x86\G_A\Nvidia\1\Display.Driver; на x86\G_A\Nvidia\1\; иначе будет распакована только папка x86\G_A\Nvidia\1\Display.Driver и драйвер не установится.

Тобиш, если есть вложенные папки в папке драйвера и inf лежит не в корневой папке драйвера, то надо поправить имена папок в индексе так, чтобы они указывали на корневую папку. Путь к inf-файлу не трогаем.

В следующей редакции я наверно поправлю индексатор и сделаю в нем список исключений, которые надо исправлять автоматически.

Вот думаю, если выложить (после доработки) софтину на Башратовском форуме, не заклюют там, что без разрешения сделал что-то к их пакетам...

CtrlSoft
18-08-2012, 22:27
Boa Soft, отлично! Буду тестировать на следующей неделе.

%CDROOM% - исправьте на %CDROM%
игнлририруя их днесовместимость

Boa Soft
18-08-2012, 23:43
Boa Soft, отлично! Буду тестировать на следующей неделе.
%CDROOM% - исправьте на %CDROM%
игнлририруя их днесовместимость »

Выяснилась неработоспособность 64 бит версии. Не мог проверить в живую - на работе 32 бит. Уже нашел ошибки и исправил.

yurfed
18-08-2012, 23:48
Поддерживаемые системы - Xp, Server2003, Vista, Server 2008, Server 2008R2, 7, (8-теоретически) »
Просто интересно, сколько такой пакет будет весить. Думаю порядка 6-8ГБ.
Это чисто "спортивный" интерес.

Boa Soft
19-08-2012, 00:24
Просто интересно, сколько такой пакет будет весить. Думаю порядка 6-8ГБ.
Это чисто "спортивный" интерес. »

Если собираетесь совместить дистрибутивы всех систем на один диск, то да.

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

К тому же, большинство драйверов общие для разных систем (например XP и Server2003) (Vista и 7 и сервер 2008).
Посему - не так страшно.

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

В отличии от "конкурентов" уже реализовано следующее:
1. Программа по содержимому секции Manufacturer отсеивает несоответствующие версии системы и битности драйвера.
2.Программа сортирует драйвера по рангу, подобно установщику windows.
По HWID (наилучшее совпадение)
По CompatibleId (похуже совпадение)
По содержимому секции Manufacturer - драйвер NTamd64.6.1 подходит для 7 лучше чем NTamd64.6.0 или NTamd64.6
И, наконец, по дате выпуска.
3. Распаковываются только необходимые драйвера, а не пакет целиком.
4. В отличии от моего старого метода с DPInst установка идет значительно быстрее.

PS Samlab`овский DRPSu12.3-Final весит около 3,13.

CtrlSoft
19-08-2012, 14:09
3. Распаковываются только необходимые драйвера, а не пакет целиком.
4. В отличии от моего старого метода с DPInst установка идет значительно быстрее. »
:good:

Boa Soft
19-08-2012, 23:31
Обнаружил небольшой баг - текущая папка при запуске должна быть папкой программы. Т.Е. при запуске из батника надо перейти в ее папку а затем запустить. Иначе не находит библиотеки 7зип. Поправлю в ближайшее время.

Сегодня пробовал в боевых условиях при установке Win7 x64. Все отработало успешно.

Так же, задумался, как бы прикрутить это к установке XP. Только часть технологии - отбор драйверов.
По идее, тоже должно ускорить процесс и система не будет забиваться мусором.

Когда делал индексатор, то обнаружил огромное количество дублирующихся HWID в драверпаках.

В чепсетных - вообще около 6 папок с USBфильтром от AMD.

Так что, надо делать утилиту для поиска дублей и оптимизации пакетов.

vovansa
20-08-2012, 01:50
грамматика. поправить succecfullu на successfully
то, что бросилось в глаза сразу ))

CtrlSoft
21-08-2012, 11:46
Boa Soft, если можно, x32, замените на x86. Думаю так удобнее воспринимается учитывая тип архитектуры Windows в программе установки Windows.

Boa Soft
23-08-2012, 01:04
Обновил версию в шапке: главное исправление - нормально запускается на XP.

Программу уже активно применяю при установке системы. Пока только 7.

На ХП проблема осложняется тем, что пока программа не имеет возможности подавлять проверку цифровых подписей для установки неподписанных драйверов, а в пакетах для XP их великое множество. Даже встречаются некорректно подписанные inf для intel.

hobbit25
23-08-2012, 01:29
Boa Soft, то есть изложенное Вами в этом посте http://forum.oszone.net/post-1972534-2.html поправлено?! в новой версии?!

Boa Soft
23-08-2012, 09:25
Boa Soft, то есть изложенное Вами в этом посте http://forum.oszone.net/post-1972534-2.html поправлено?! в новой версии?! »

Да, уже поправлено. В индексаторе. Он сам переименовывает папки по списку замен. Если найдете что-либо подобное, то просто нужно будет добавить это в список замен в его файле настройки.
Так же, там решается проблема с точпадами - автоматически убираются HWID, равные стандартной мыши.

Пока программа не поддерживает работу с неподписанными драйверами, но, это вопрос времени.

ЗЫ Это будет доступно только для XP.

CtrlSoft
23-08-2012, 10:31
Boa Soft, может для начало попробовать такой метод? http://forum.oszone.net/post-1957981-55.html

Boa Soft
24-08-2012, 16:21
Boa Soft, может для начало попробовать такой метод? http://forum.oszone.net/post-1957981-55.html »

Теоретически можно сделать. Для Хп как вспомогательное средство я делал автонажималку.

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

Так что, возможно остается только метод с внесением путей в рестр (или SetupOemCopyInf) и запуск рескана устройств.

Или же (что более утопично) - избавится от неподписаных дров.

Есть третий вариант - переписать UpdateDriverForPlugAndPlayDevices на основе имеющихся в сети исходников от Win 2000, но не знаю, на сколько это имеет смысл.

Mr dUSHA
25-08-2012, 00:20
Вообще. По дизайну. не то, что вылетает окно о неподписаности драйвера, а просто игнорируется драйвер. »
Может режим не интерактивный, или с дескрипторами оконными что-то не так, что ей ГУИ сообщений вывести некуда?

Да и вообще UpdateDriverForPlugAndPlayDevices базируется на setupapi-шных функциях, так что надо туда копнуть еще.

Boa Soft
25-08-2012, 08:31
Может режим не интерактивный, или с дескрипторами оконными что-то не так, что ей ГУИ сообщений вывести некуда? »

К сожалению, это не так. При запуске без флага INSTALLFLAG_NONINTERACTIVE и недостающих фалах драйвера выскакивает стандартное окно, предлагающее указать месторасположение файла.

Boa Soft
25-08-2012, 14:19
Еще думаю прикрутить обработку панелей. Как в моем фейке. Делать просто обработку формата башратовских панелей не охота - много возни и не очень мне оно нравится.

К стати, из-за идиотского формата пакетов не ставятся многие видеокарты. Причина - часть файлов лежит в языковом пакете а физикс-х - в своем.
Решений два - более правильное - перепаковать все вместе, более гимморойное - создать вручную для этих пакетов индексы и скопировать в них строки из пакетов графики, содержащие эти папки. Тогда индексы будут проанализированы и пакеты будут распакованы.

Новый формат пакетов для 7/Vista мне не понравился. Вернее, его реализация. Ну, я еще понимаю, что разделить на 7 и висту пакеты, которые просто в оригинальных дровах лежат в разных папках. И. то потом неудобно и обновлять хуже. Но, нафига делить УНИВЕРСАЛЬНЫЕ дрова. В ати все файлы для 7 и виты одинаковы, кроме инфа и каталога. В результате такого деления размер в распакованном виде растет в два раза.

Последняя версия работает более-менее стабильно, находит все совпадающие HWID. Для XP ввел удаление OEM инфов, и сброс путей поиска в реестре иначе установщик пытается искать по старым путям. Испытание показало тоже нормальную работу.

Проблема с неподписанными драйверами возможно будет решена.

Boa Soft
08-09-2012, 00:49
Текущая версия программы 1.0.1.3

Новое в текущей версии.

1. Исправлен алгоритм поиска совпадающих HWID, теперь устройства, помеченные как для ручной установки
не устанавливаются автоматически.
2. Исправлен алгоритм поиска совпадающих HWID, в частности, ошибка сортировки по дате.
3. Исправлены ошибки в процедуре распаковки, приводящие в некоторых случаях к нераспаковке некоторых папок.
4. Добавлено удаление дублей устройств с одинаковым HWID, чтобы избежать многократного обновления драйвера.
5. Добавлен механизм установки панелей.
6. Добавлена обработка ошибок установки.
7. Добавлен хронометраж как по стадиям так и общий.
8. Исправлен вывод информации в лог о найденных устройствах и драйверах.
9. Добавлено подавление проверки цифровых подписей (только для XP и Server 2003)
10. Индексатор - исправлена обработка некорректных INF - файлов.


Во вложении в шапке - DIT.7z - сама программа, DIT_Vista-Seven.7z - комплект для интеграции в дистрибутив vista или 7.


PS Судя по количеству отзывов и сообщений об ошибках программа не сильно заинтересовала народ. К сожалению, на ограниченном числе конфигураций сложно отловить все ошибки и ньюансы такого сложного процесса как установка драйверов.

SamLab
09-09-2012, 14:10
Boa Soft, выбор из драйверов от висты 6.0 / семерки 6.1 и восьмерки 6.2 по каким критериям идет по версии Windows или нет? например самая известная оболочка DPS в этом плане выбирает чисто 5.x или 6.x и на семерку может поставить дрова от висты или восьмерки, что соответственно ведет к неработоспособности драйверов




© OSzone.net 2001-2012