Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   DIT - Driver Install Tools (http://forum.oszone.net/showthread.php?t=240836)

Boa Soft 18-08-2012 15:46 1972333

DIT - Driver Install Tools
 
Вложений: 1
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 1972534

Замечены некоторые нюансы при индексации драйверов. Это относится к драйверам, имеющим в своем составе несколько папок. Например, 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 1972538

Boa Soft, отлично! Буду тестировать на следующей неделе.

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

Boa Soft 18-08-2012 23:43 1972584

Цитата:

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

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

yurfed 18-08-2012 23:48 1972588

Цитата:

Цитата Boa Soft
Поддерживаемые системы - Xp, Server2003, Vista, Server 2008, Server 2008R2, 7, (8-теоретически) »

Просто интересно, сколько такой пакет будет весить. Думаю порядка 6-8ГБ.
Это чисто "спортивный" интерес.

Boa Soft 19-08-2012 00:24 1972614

Цитата:

Цитата yurfed
Просто интересно, сколько такой пакет будет весить. Думаю порядка 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 1972774

Цитата:

Цитата Boa Soft
3. Распаковываются только необходимые драйвера, а не пакет целиком.
4. В отличии от моего старого метода с DPInst установка идет значительно быстрее. »

:good:

Boa Soft 19-08-2012 23:31 1973010

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

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

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

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

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

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

vovansa 20-08-2012 01:50 1973086

грамматика. поправить succecfullu на successfully
то, что бросилось в глаза сразу ))

CtrlSoft 21-08-2012 11:46 1973877

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

Boa Soft 23-08-2012 01:04 1975074

Обновил версию в шапке: главное исправление - нормально запускается на XP.

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

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

hobbit25 23-08-2012 01:29 1975082

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

Boa Soft 23-08-2012 09:25 1975195

Цитата:

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

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

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

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

CtrlSoft 23-08-2012 10:31 1975239

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

Boa Soft 24-08-2012 16:21 1976278

Цитата:

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

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

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

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

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

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

Mr dUSHA 25-08-2012 00:20 1976529

Цитата:

Цитата Boa Soft
Вообще. По дизайну. не то, что вылетает окно о неподписаности драйвера, а просто игнорируется драйвер. »

Может режим не интерактивный, или с дескрипторами оконными что-то не так, что ей ГУИ сообщений вывести некуда?

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

Boa Soft 25-08-2012 08:31 1976619

Цитата:

Цитата Mr dUSHA
Может режим не интерактивный, или с дескрипторами оконными что-то не так, что ей ГУИ сообщений вывести некуда? »

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

Boa Soft 25-08-2012 14:19 1976758

Еще думаю прикрутить обработку панелей. Как в моем фейке. Делать просто обработку формата башратовских панелей не охота - много возни и не очень мне оно нравится.

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

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

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

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

Boa Soft 08-09-2012 00:49 1985011

Текущая версия программы 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 1985512

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

quarq 09-09-2012 15:14 1985543

Цитата:

Цитата SamLab
Boa Soft, выбор из драйверов от висты 6.0 / семерки 6.1 и восьмерки 6.2 »

хотелось бы усугубить вопрос предыдущего оратора!,а именно : учитывается ли совместилось 6.х => 6.2 и 6.0 => 6.1

Boa Soft 10-09-2012 01:40 1985905

Цитата:

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


Выбираются по степени совпадения секции.

Для 7 32бит например Ntx86.6.1 - Ntx86.6.0 - Ntx86.6 - Ntx86 - Nt - секция без экстендера.

К тому же, для 64 бит игнорируются все 32 бит секции, а для 32 64.

Драйвера сортируются по такому критерию - степень совпадения HWID, при несовпадении Compatible ID, сопоставимость секции, дата драйвера - все от самого лучшего до самого наихудшего. Драйвера непригодные для системы отсекаются.

Есть ньюанс. Некоторые драйвера содержат секции и 6.0 и 6.1 но, в одном из файлов секция с экстендером 6.0 пустая а секция 6.1 - рабочая и наоборот. В программе это учитывается и если пустая секция совподает с текущей версией системы - то драйвер игнорируется, ибо не встанет все равно.

Точно сверять екстендер тоже нельзя. Драйвера для USB 3.0 от AMD содержат экстендер NTx86.5.1.1, но при этом прекрасно ставятся на виндовс старше и включая XP. Для меня это было откровением, но Mr dUSHA просветил, что подобная ситуация нормальна.

Далее, после сортировки, программа ставить поочередно, от лучшего к худшему и прекращает процесс после первого удачно установленного драйвера для устройства.

Boa Soft 10-09-2012 01:57 1985907

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

Так же, у меня была мысль добавить в индекс поле, указывающее для какой (каких) систем этот драйвер.

С новой организацией пакетов можно отбросить неподходящие драйвера по имени папок.

Но, идеально сделать невозможно, так как очень много драйверов без экстендера вообще.
К тому же, есть драйвера с generic hwid типа PCI\CC_XXXX. Такого типа драйвера помечаются как только для ручной установки. Например, матроксовский мост Matrox Extio PCI Standard PCI-to-PCI Bridge имеет HWID PCI\CC_0604 и ставится на любой чипсет - что интел что нв. Эта проблема не решаема в принципе. Если будет GUI версия, то в ней драйвер будет предлагаться для ручного выбора. Теоретически, можно проверить наличие других компонентов матрокса с уникальным HWID (к примеру) и установить из финиша этот драйвер. Но, я с этим пока не заморачивался.

К стати, пример финиша с ошибками - я не подумал, что для составного устройства надо проверять наличие родительского и потом ставить детей (пример - все USB 3.0, нетмосовские портовки). А я в нем забил проверку детей. В настоящей версии кофигурация железа читается один раз после в самом начале, и появившиеся "дети" составного родительского устройства в лог не попадут.

quarq 10-09-2012 10:57 1986032

спасибо за столь развернутый ответ но все же я не получил ответа на свой вопрос, пробую его перефразировать

известно что драва от 6.0 и от 6.1 ставятся на 6.2 (win8) учитывает ли прога или будет ли она учитывать эти особенности в противном случае на win8 на данный момент будут игнорироваться почти все драйвера и ставить будет нечего
а также на win7 не будут ставиться драйвера от win vista коих огромное множество и многие производители вообще не делают различий между данными системами и шлепают драйвера по старинке лишь заявляя полную совместимость с новыми системами также обстоят дела и с системой nt5.0 => nt5.1 при этом тоже в "отвал уйдут" процентов 30% драйверов

далее интересно как себя поведет ваша прога в следующем случае:

Цитата:

[Manufacturer]
%MfgName%=NVIDIA,NTx86,NTx86.6.0,NTamd64.6.0,NTamd64,NTx86.6.1,NTamd64.6.1,NTx86.6.2,NTamd64.6.2

[NVIDIA]
%NVIDIA.DeviceDesc%=NVHDA322CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTx86]
%NVIDIA.DeviceDesc%=NVHDA322CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTamd64]
%NVIDIA.DeviceDesc%=NVHDA642CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTx86.6.0]
%NVIDIA.DeviceDesc%=NVHDA32V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTamd64.6.0]
%NVIDIA.DeviceDesc%=NVHDA64V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101

[NVIDIA.NTx86.6.1]
%NVIDIA.DeviceDesc%=NVHDA32V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTamd64.6.1]
%NVIDIA.DeviceDesc%=NVHDA64V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTx86.6.2]
%NVIDIA.DeviceDesc%=NVHDA32V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101


[NVIDIA.NTamd64.6.2]
%NVIDIA.DeviceDesc%=NVHDA64V2CHAPO,HDAUDIO\FUNC_01&VEN_10DE&DEV_0001&SUBSYS_10DE0101

тоесть это все находится в одном инфе и сам драйвер действительно универсальный для всех систем

Boa Soft 10-09-2012 11:14 1986038

Цитата:

Цитата quarq
далее интересно как себя поведет ваша прога в следующем случае: »

Ваш драйвер установится на любую систему начиная от XP и заканчивая 8.

[NVIDIA] допустима для ЛЮБОй 32 бит и для xp 64 бит

[NVIDIA.NTx86] допустима для ЛЮБОй 32 бит

[NVIDIA.NTamd64] для любой 64 бит

[NVIDIA.NTx86.6.0] - для висты и старше

[NVIDIA.NTamd64.6.0] для 64 бит висты и старше

[NVIDIA.NTx86.6.1] - для 7 и старше


[NVIDIA.NTx86.6.2] - для 8 и старше


На 7 драйвера от висты будут ставится, если нет пустой секции для 7 в этом дравере.
Например, в драйверах ати.

7 на висту не станут, если явно задано что они для 7 - одна секция NTx86.6.1 или .NTamd64.6.1.

Все зависит от производителя дравера. Отобрать идеально невозможно - у половины драйверов у секции нет экстендеоа - значит они формально подходят для любой ситемы.

Единственный способ - иметь разные индексы для каждой системы. и РУКАМИ удалять несовместимые драверы из индекса.
В новых пакетах разделили на общие для висты и для 7. При индексации можно настроитьигнорирование папок, например, висты.

SamLab 10-09-2012 11:19 1986040

Boa Soft, Судя по описанию в вашей программе учтено много того, чего нет у конкурентов, осталось надеяться, что вы ее не забросите и сделаете хотя бы начальный интерфейс для нее

quarq 10-09-2012 11:59 1986052

Цитата:

Цитата Boa Soft
РУКАМИ удалять несовместимые драверы из индекса »

удалять ни чего ненадо надо вводить новые критерии тоесть если секция [Manufacturer] толком не определена,смотреть название пака , если название не определено,то определять по названию папки внутри пака

Цитата:

Цитата Boa Soft
В новых пакетах разделили на общие для висты и для 7 »

идея хорошая но порочная проверял я эти папки порой полная бредятина заявлено win7 на самом деле vista
в универсальных драйверах (all) просто навал инфов и длл от разных систем (да драйвер действительно универсальный но секции [Manufacturer] там определены конкретно)
именно по этому я пиши :
Цитата:

удалять ни чего ненадо надо вводить новые критерии тоесть если секция [Manufacturer] толком не определена,смотреть название пака , если название не определено,то определять по названию папки внутри пака
жесткая привязка как это делают большинство авторов прог приводит к написанию новых (с теме же граблями)

Makemd 10-09-2012 17:27 1986217

В логе пишет "bad index signature" и на этом процесс завершается

Boa Soft 10-09-2012 23:16 1986386

Цитата:

Цитата Makemd
В логе пишет "bad index signature" и на этом процесс завершается »

Пересоздайте индексы заново каталогизатором из текущего комплекта. С начальной версии поменялся формат индексов.

Boa Soft 10-09-2012 23:41 1986394

Цитата:

Цитата quarq
идея хорошая но порочная проверял я эти папки порой полная бредятина заявлено win7 на самом деле vista
в универсальных драйверах (all) просто навал инфов и длл от разных систем (да драйвер действительно универсальный но секции [Manufacturer] там определены конкретно) »

Согласен полностью. НАФИГА из универсального атишного дравера для 7 и висты делать два не универсальных?
Неправильный inf все равно не установится - там есть блокирующая секция для неиспользуемой системы.

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

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

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

Проблемы могут быть, если отсутствует дравер для 7 а есть дравер для висты, нормально не работающий на 7, у которого отсутствует блокирующая секция.

На счет 7 драверов с точно заданной и единственной секцией для 7, на висту такой дравер не станет.

Mr dUSHA 11-09-2012 02:06 1986448

Цитата:

Цитата Boa Soft
Вот и не особо хочется делать фильтр по именам папок. »

Поддерживаю.
ИМХО привязка к именам папок и файлов - это и есть порочная идея. Программа должна быть максимально универсальна и независима от "псевдостандартов" придуманных драйверособирателями и активно используемых "сборщиками сборок". И лучше пусть "сборщики сборок" повышают свой уровень интеллектуального развития в процессе сортировки драйверов, чем программа скатывается до того, что будет пытаться автоматически разбирать кучу накиданного ей мусора, применяя логику этих самых псевдостандартов.

SOLON7 11-09-2012 09:03 1986505

ВСЕМ

Идея конечно хорошая.
НО
1.Идея использовать Апи аля DifxApi и UpdateDriverForPlugAndPlayDevices не очень хорошая, так как для установки 64 битной винде сам скомпиленная прога должна быть 64 битной.
Поэтому я пришел к выводу что лучше использовать devcon


2.[NVIDIA] допустима для ЛЮБОй 32 бит и для xp 64 бит
[NVIDIA.NTx86] допустима для ЛЮБОй 32 бит
[NVIDIA.NTamd64] для любой 64 бит
[NVIDIA.NTx86.6.0] - для висты и старше
[NVIDIA.NTamd64.6.0] для 64 бит висты и старше
[NVIDIA.NTx86.6.1] - для 7 и старше
[NVIDIA.NTx86.6.2] - дл

Не стандарт, мы сами с кварком долго мучались, но в итоге оказалось что не все производители работают как положено. в итоге в DriverX отображаются дрова несовместимые с системой.
С этим вопросом лучше обратится к Кварку и Семлабу, они более авторитетны в ЭТОМ СЛОЖНОМ ВОПРОСЕ.
Лучше не брать на себя ответственность выявления стандарта , как оказалось очень нестабильная тема. Потом будет тысяча нареканий, как впрочем и на форуме DPS.

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

на тему подписался....

Mr dUSHA 11-09-2012 10:01 1986526

Цитата:

Цитата SOLON7
так как для установки 64 битной винде сам скомпиленная прога должна быть 64 битной. »

Так а что Вам то мешает скомпилировать два варианта проги для двух платформ? :)

Цитата:

Цитата SOLON7
Не стандарт, мы сами с кварком долго мучались, но в итоге оказалось что не все производители работают как положено. »

Так ведь то, что драйверописатели не соблюдают Микрософт-овых стандартов в ИНФах, совсем не означает, что прога не должна придерживаться этих самых стандартов в поиске драйвера, согласно которых сама Windows и работает.

Boa Soft 11-09-2012 17:35 1986808

Цитата:

Цитата SOLON7
1.Идея использовать Апи аля DifxApi и UpdateDriverForPlugAndPlayDevices не очень хорошая, так как для установки 64 битной винде сам скомпиленная прога должна быть 64 битной.
Поэтому я пришел к выводу что лучше использовать devcon »

Подход оправдан только при отсутствии компилятора на 64 бит. При правильном написании две версии делаются только переключение платформы в среде разработки При небольшом размере программы мне проще сделать две версии для разной битности, чем мучатся с парсингом вывода devcon и обработкой ошибок. И, девкона или в дпинст тоже надо два. В гуи версии, возможно, будет та же технология. что и в BS-post - 32 бит прога и переходник 64 бита.

Кроме того, есть одно но. Если мы ставим дравера из папки а потом ее удаляем, то имеем проблему с тем, что при втыкании аналогичного устройства система ищет, откуда ей взять дравер. И не находит.
DPInst предварительно делает установку пакета в хранилище через DriverPackagePreinstall. Девкон этого не умеет. А я хочу попробовать реализовать это, может опционально, у себя в программе.

Цитата:

Цитата Mr dUSHA
Поддерживаю.
ИМХО привязка к именам папок и файлов - это и есть порочная идея. Программа должна быть максимально универсальна и независима от "псевдостандартов" придуманных драйверособирателями и активно используемых "сборщиками сборок". И лучше пусть "сборщики сборок" повышают свой уровень интеллектуального развития в процессе сортировки драйверов, чем программа скатывается до того, что будет пытаться автоматически разбирать кучу накиданного ей мусора, применяя логику этих самых псевдостандартов. »

В каталогизаторе можно задать исключаемые папки. Таким образом исключить обход папок с несовместимыми дровами. Но, вся ответственность на сборщике пакета и на том, кто запускает программу.
Попутно, есть небольшая идея - внести в список устанавливаемых вручную все драйвера со стандартными PCI\CC_ ACPI\PNP *PNP ибо такие дравера невозможно установить автоматически.
Очень яркий пример из этой серии - дравер pci-e ATI - он садится на любую платформу и приводит к неработоспособности системы.
Где бы только взять точный список стандартных HWID? В DDK может быть?

Цитата:

Цитата SOLON7
Не стандарт, мы сами с кварком долго мучались, но в итоге оказалось что не все производители работают как положено. в итоге в DriverX отображаются дрова несовместимые с системой.
С этим вопросом лучше обратится к Кварку и Семлабу, они более авторитетны в ЭТОМ СЛОЖНОМ ВОПРОСЕ.
Лучше не брать на себя ответственность выявления стандарта , как оказалось очень нестабильная тема. Потом будет тысяча нареканий, как впрочем и на форуме D »

Цитата:

Цитата Mr dUSHA
Так ведь то, что драйверописатели не соблюдают Микрософт-овых стандартов в ИНФах, совсем не означает, что прога не должна придерживаться этих самых стандартов в поиске драйвера, согласно которых сама Windows и работает. »

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


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


Цитата:

Цитата SOLON7
3. Спасибо Боа за интересную прогу, если хотите можете взять мои наработки (исходники DRiverX), может быть и помогу , сам пишу на дельфях... »

Интересно бы было посмотреть.

RStorm 11-09-2012 21:52 1986979

Boa Soft, ошибка в названии файла sources\$OEM$\$$\OEM\Tools думаю должно быть DIT_xx86.exe

Mr dUSHA 12-09-2012 02:16 1987091

Цитата:

Цитата Boa Soft
Попутно, есть небольшая идея - внести в список устанавливаемых вручную все драйвера со стандартными PCI\CC_ ACPI\PNP *PNP ибо такие дравера невозможно установить автоматически. »

Вот здесь http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx и дальше по подкатегориям по типам шин смотри описалово по идентификации устройств на них.

Кроме того из этой заглавной странички линк http://go.microsoft.com/fwlink/?LinkId=49039 на скачку файла с таблицами типов устройств, а в частности "DEVICE TYPE CODES" для расшифровки только по одному \CC_ предназначения драйвера.
Единственное, чего там нет, так это подробного описания третьего опционального байта "Interface Type" для разных типов устройств. Но это уже при большой надобности можно нагуглить в других источниках, поскольку вообще идентификация устройств относится не к микрософтовским выдумкам, а к спецификациям шин (PCI, USB, SCSI, и т.д.....)

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

SOLON7 12-09-2012 21:49 1987612

Boa Soft, вообще было замесательно обьеденить всех программеров..
и пилить прогу для установки дров...

Цитата:

Цитата Mr dUSHA
Так ведь то, что драйверописатели не соблюдают Микрософт-овых стандартов в ИНФах, совсем не означает, что прога не должна придерживаться этих самых стандартов в поиске драйвера, согласно которых сама Windows и работает. »

Лучше не стоит дальше тему поднимать. это Риторический вопрос а не технический..
Мне мс не даст исходники своего ядра....

Mr dUSHA 12-09-2012 22:10 1987622

Цитата:

Цитата SOLON7
Мне мс не даст исходники своего ядра.... »

Дык зачем исходники, если все стандарты расписаны вдоль и поперек в документации?

quarq 16-09-2012 01:19 1989374

Цитата:

Цитата Mr dUSHA
Дык зачем исходники, если все стандарты расписаны вдоль и поперек в документации? »

чушь там написана... причем два стандарта до висты и после, а также куча дополнительных поправок к примеру
если секция мануфактуры не определена то по старому стилю это 2000 винда по новому это виста !
если nt написано в секции то это одно значение если кроме него прописано nt5.1(или любое другое или куча других) то значение параметра резко уменьшается
а главное что майкрасофт сама не придерживаться своих стандартов
и при всем при этом они же глубоко умалчивают как сама винда при этом бардаке отделяет мух от котлет...

Mr dUSHA 17-09-2012 00:39 1989990

Цитата:

Цитата quarq
если секция мануфактуры не определена то по старому стилю это 2000 винда по новому это виста ! »

А можно в студию ссылку на МСДН, где видно это самое деление на два стандарта (до Висты и после)?

Цитата:

Цитата quarq
и при всем при этом они же глубоко умалчивают как сама винда при этом бардаке отделяет мух от котлет... »

Если есть сомнения в точности документации, то как раз для этого случая есть IDAPro.

quarq 18-09-2012 13:47 1990824

Mr dUSHA, не могу указать точный источник, изучал именно эту проблему несколько лет тому назад
но информация из "сервис мануала" по написанию драверов
вот есть некоторая информация общая по этому вопросу:
http://translate.googleusercontent.c...dG7Qe54y1w9BFQ

Makemd 18-09-2012 15:24 1990870

Цитата:

Цитата Boa Soft
Пересоздайте индексы заново каталогизатором из текущего комплекта. С начальной версии поменялся формат индексов. »

Пробовал каталогизатором который в шапке прилеплен - тот же эффект. Может что-то не правильно делаю..

Mr dUSHA 19-09-2012 02:28 1991239

Цитата:

Цитата quarq
вот есть некоторая информация общая по этому вопросу »

Так вот MSDN то как раз и есть тот самый "сервис мануал", и он для меня - основной источник информации. Только никакого деления на "до висты" и "после висты" там нет.
Начиная с Висты в Setupapi изменился принцип ранжирования драйверов при поиске Виндой наиболее подходящего для установки для найденного нового оборудования (именно там как раз учитывается при присвоении ранга наличие/отсутствие расширения .nt в имени секции). Это все подробно расписано там же, в соседнем разделе, посвященном установке драйверов. Но это несколько другая тема.
У нас же разговор был именно про синтаксис INF-ов, и их правильный парсинг средствами своей программы с целью определить, для какой Винды предназначен драйвер.

З.Ы.: МСДН рекомендую читать в оригинале, на английском, а не машинные переводы, в которых смысл очень часто искажается именно из-за ущербности движка этого самого машинного переводчика.

DR_WELL 07-10-2012 00:24 2000680

Цитата:

Цитата Makemd
Цитата Boa Soft:
Пересоздайте индексы заново каталогизатором из текущего комплекта. С начальной версии поменялся формат индексов. »
Пробовал каталогизатором который в шапке прилеплен - тот же эффект. Может что-то не правильно делаю.. »

Приветствую,

Столкнулся с такой же проблемой. Удалось решить?

DR_WELL 07-10-2012 02:33 2000726

Boa Soft,

Как побороть проблему с индексами?

читать дальше »

Код:

Load DriverPaks index files
  Loading index from: DP_AMDfilter_wnt6-x64_1110.csv
    Error loading index
  Loading index from: DP_Audio_wnt6-x64_1111.csv
    Error loading index
  Loading index from: DP_CardReaders_wnt6-x64_11041.csv
    Error loading index
  Loading index from: DP_Chipset_wnt6-x64_1206.csv
    Error loading index
  Loading index from: DP_Gaming_wnt6-x64_812.csv
    Error loading index
  Loading index from: DP_Graphics_A_wnt6-x64_1203.csv
    Error loading index
  Loading index from: DP_Graphics_B_wnt6-x64_1203.csv
    Error loading index
  Loading index from: DP_Graphics_Mobile_wnt6-x64_1203.csv
    Error loading index
  Loading index from: DP_LAN_wnt6-x64_1208.csv
    Error loading index
  Loading index from: DP_MassStorage_wnt6-x64_1208.csv
    Error loading index
  Loading index from: DP_Misc_wnt6-x64_1202.csv
    Error loading index
  Loading index from: DP_Monitors_wnt6-x64_911.csv
    Error loading index
  Loading index from: DP_Touchpad_Mouse_wnt6-x64_1203.csv
    Error loading index
  Loading index from: DP_Webcam_wnt6-x64_1103.csv
    Error loading index
  Loading index from: DP_WLAN_wnt6-x64_1203.csv
    Error loading index
Load index files complete. Total index records: 0



finish.ini как заполняется? Автоматически?

Boa Soft 08-10-2012 15:14 2001402

Вложений: 1
Цитата:

Цитата DR_WELL
Как побороть проблему с индексами? »

Цитата:

Цитата DR_WELL
Столкнулся с такой же проблемой. Удалось решить? »

По ошибке попала старая версия.
Правильная версия во вложении.

DR_WELL 08-10-2012 15:36 2001409

Цитата:

Цитата Boa Soft
По ошибке попала старая версия. »

Спасибо. Все отработало.

Осталься вопрос по finish.ini... как заполняется? Автоматически?

Boa Soft 11-10-2012 23:34 2003817

Цитата:

Цитата DR_WELL
Осталься вопрос по finish.ini... как заполняется? Автоматически? »

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

BadPointer 20-10-2012 19:36 2009143

Цитата:

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

Не знаю точно с чем ты сравниваешь. Раньше DPS и DIA действительно записывали только один HWID, причем самый короткий и затем еще его обрезали чтобы найти фрагмент HWID'а совпадающий с тем что выдает устройство, совместимость драйверов определялась исключительно по тому в какой папке находился драйверпак.

Но примерно 2 года назад я ввел описываемую функциональность в DPS, а затем DIA и DriverX адаптировали этот подход, разве что DIA по прежнему использует DPInst. Теперь наличие этой функциональности является ожидаемым минимумом для подобных программ.

С другой стороны, если ты независимо от DPS, DIA, DriverX сразу пришел к правильному решению, то это уже положительно говорит о твоем настрое.

У меня есть некоторые вопросы:
1. Зачем при индексации предлагается исключать драйверы определенных разновидностей? На мой взгляд это лишнее.
2. Зачем в индексы заносится столбец DPInst?
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку.

Boa Soft 20-10-2012 23:12 2009248

Цитата:

Цитата BadPointer
С другой стороны, если ты независимо от DPS, DIA, DriverX сразу пришел к правильному решению, то это уже положительно говорит о твоем настрое. »

Началось еще с моих утилит для установки драверов для хп. Там отбор и анализ для сохранения дров (KTD по банратовской технологии) был сделан достаточно тупо - брался полный HWID, сравнивался, потом обрезался, потом сравнивался. В сохранение попадало много мусора. Дальнейшее развитие не получило.

Потом пришла 7...

Потом я адаптировал под свои нужды технологию Stand Alone Driverpack utility for all OS (XP, 2k3, 2k8, Vista, Win7)
http://forum.driverpacks.net/viewtopic.php?id=5336. По сравнению с интеграцией через DISM появилась возможность оперативно менять драйвера, уменьшился размер образа, ушли проблемы с предварительной распаковкой всех файлов драйвера итд.

Минусы - долгое время работы, отсутствие избирательности, необходим большой объем для временной папки.

DPS иногда пользовался, но напрягала проблема с ошибками при малейших проблемах в системе с IE.

Далее толчек к развитию дала помошь Mr.dUSHA в разборке inf - файлов средствами setupapi
Так же, я изучил ранжирование драверов и сделал нормальный поиск по HardwareID и CompatibleID.

Цитата:

Цитата BadPointer
1. Зачем при индексации предлагается исключать драйверы определенных разновидностей? На мой взгляд это лишнее. »

Ориентация шла на башратовские пакеты, где драйвера раздельно для каждой разрядности. Чтобы не попадались 64 бит для 32 и наоборот.

Цитата:

Цитата BadPointer
2. Зачем в индексы заносится столбец DPInst? »

Там может быть 4 значения.
DPINST - автоматическая установка средствами PnP api при наличии возможности точного сопоставления с HWID устройства.

MDPINST - ручная установка средствами PnP api при отсутствии возможности точного сопоставления с HWID устройства (точпады, тюнера итд). Дравер не выбирается автоматом. В консольной версии заглушка ибо нет взаимодействия с юзером.

RUN - - автоматическая установка посредством запуска родного инсталлятора с нужными параметрами при наличии возможности точного сопоставления с HWID устройства.

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

Цитата:

Цитата BadPointer
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку.
Честно говоря, не предусматривал такую возможность. Но, можно просто удалить пакеты, оставив только индексы. »


Boa Soft 21-10-2012 00:00 2009287

Цитата:

Цитата BadPointer
3. Можно ли запустить прогу в холостом режиме? Мне бы хотелось посмотреть какие драйверы прога нашла, но при этом не запуская саму установку. »

Только что обновил программу - можно использовать ключик -t или -test и все действия по установке и распаковке будут пропущены - только скан оборудования, загрузка индексов, отбор драйверов и создания листа распаковки.

BadPointer 21-10-2012 01:11 2009326

Новая версия проги завершается после вывода первых трех строк
Вот фрагменты лога.
Код:

[2012-10-21,0:46:53] Operating System:
[2012-10-21,0:46:53]  Product Name:                Microsoft Windows XP
[2012-10-21,0:46:53]  SP:                        Service Pack 3
[2012-10-21,0:46:53]  Arch:                        x86


[2012-10-21,0:46:53]  CommonProgramW6432:        Not defined
[2012-10-21,0:46:53]  TEMP:                        D:\DOCUME~1\HUNTER\LOCALS~1\Temp
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] *** End Common information *****************************************************
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Error loading setup api. Programm halted!
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Operation aborted
[2012-10-21,0:46:53] Programm terminated abnormally!!!
[2012-10-21,0:46:53]
[2012-10-21,0:46:53] Total time: 0.31sec.

*** Log end at: 2012-10-21 0:46:53 *********************************************

Предыдущая версия у меня работала(запускал без драйверпаков).

Сейчас напишу коротко что я заметил по предыдущей версии с включенным подробным логом.
1. Оформление секции Device Info в логе мне напоминает то как оформлено в DPS, впрочем здесь вряд ли можно было сделать как то по другому.
2. Хотя прога подробно описывает процесс выбора драйвера по степени совместимости, по логу сложно сравнить версии установленного и предлагаемого к установке драйвера.
3. У меня отключен интегрированный сетевой адаптер(я использую PCI карту) в диспетчере устройств и прога ошибочно считает что драйвер не установлен.
4. Я заметил некоторые опечатки в логе "Memoru", "Assept".
5. Прога ищет драйверы для XP в папке только в папке Nt5x86. DPS, а затем и DriverX ушли от необходимости учета названия папки для определения совместимости драйвера. DIT по видимому уже обладает достаточно хорошим алгоритмом подбора драйверов чтобы также отказаться от подобной зависимости.

Когда будет время, я собираюсь более тщательно проверить сам процесс подбора драйверов.

Boa Soft 21-10-2012 01:41 2009336

Цитата:

Цитата BadPointer
Новая версия проги завершается после вывода первых трех строк »

Поправил. В ХП нету DifXapi.dll. Еще один повод не свызыватся с этими апи.

Цитата:

Цитата BadPointer
. Оформление секции Device Info в логе мне напоминает то как оформлено в DPS, впрочем здесь вряд ли можно было сделать как то по другому. »

Делал эту часть лога подобно ему.

Цитата:

Цитата BadPointer
2. Хотя прога подробно описывает процесс выбора драйвера по степени совместимости, по логу сложно сравнить версии установленного и предлагаемого к установке драйвера. »

Ну, там есть же описание устройства и найденные к нему дравера. А в отладочном логе - да, не выводится.

Цитата:

Цитата BadPointer
3. У меня отключен интегрированный сетевой адаптер(я использую PCI карту) в диспетчере устройств и прога ошибочно считает что драйвер не установлен. »

Посмотрю, как там флаги правильно поправить.
Цитата:

Цитата BadPointer
5. Прога ищет драйверы для XP в папке только в папке Nt5x86. DPS, а затем и DriverX ушли от необходимости учета названия папки для определения совместимости драйвера. DIT по видимому уже обладает достаточно хорошим алгоритмом подбора драйверов чтобы также отказаться от подобной зависимости. »

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

BadPointer 21-10-2012 02:01 2009345

Цитата:

Цитата Boa Soft
Не хочется от такого деления отказаваться, ибо легко выкинуть дрова для любой битности или системы. И finish для каждой свой.
Например, в дистрибутиве 7 не нужны дравера от хп.
Вообще, любое деление по любым признакам можно признать спорным. »

Я не говорю что нужно отказываться от разбиения по папкам. Я имею ввиду что прога не должна ориентироваться на то в какой папке они находятся для определения совместимости и искать только там. DPS и DriverX просматривают все подпапки и подбирают драйверы исходя из совместимости самих драйверов. Подобный подход может позволить избавится от необходимости дублировать один тот же универсальный драйвер в разных папках.

Boa Soft 21-10-2012 11:23 2009440

Цитата:

Цитата BadPointer
Я не говорю что нужно отказываться от разбиения по папкам. Я имею ввиду что прога не должна ориентироваться на то в какой папке они находятся для определения совместимости и искать только там. DPS и DriverX просматривают все подпапки и подбирают драйверы исходя из совместимости самих драйверов. Подобный подход может позволить избавится от необходимости дублировать один тот же универсальный драйвер в разных папках. »

Так было в Stand Alone Driverpack utility for all OS и изначально я ориентировался именно на Башратовкие драйвера.
Можно достаточно легко переделать, надо только в FINISH добавть идентификатор системы и сделать его единым для всех систем.

BadPointer 21-10-2012 11:43 2009448

Finisher был необходим при использовании DPInst. Если в DIT используется тот же метод что и в devcon, то finisher можно полностью удалить.

Boa Soft 21-10-2012 11:54 2009461

Цитата:

Цитата BadPointer
Finisher был необходим при использовании DPInst. Если в DIT используется тот же метод что и в devcon, то finisher можно полностью удалить. »

Чем панели от ати и звучек некотрых ставить тогда? С NV если лишннего не удалять и так все в порядке.

Финишер не башратовский а свой. Ставит панели и помогает с составными устройствами - типа USB 3.0 контроллеров и нетмосовских портовок.

BadPointer 21-10-2012 12:00 2009468

Я уже не первый год ставлю драйверы через devcon не используя какого-либо finisher'а и не замечал отсутствия панелей. Ты уверен что finisher необходим?

Boa Soft 21-10-2012 12:13 2009473

Цитата:

Цитата BadPointer
Я уже не первый год ставлю драйверы через devcon не используя какого-либо finisher'а и не замечал отсутствия панелей. Ты уверен что finisher необходим? »

У NV панель ставится ко-инсталлером. У AMD/ATI - как отдельная программа. У Реалтека - ко-инсталлером, у конексантов, соундмакса, IDT(точно не помню) - только родным сетапом.

Плюс составные устройства. Пока например на хост-контроллер USB 3.0 не поставиш драйвера, не будут видны его "дети" - корневые контроллеры.
Можно конечно запустить весь процесс заново, но это тоже определенные расходы времени. Пока решено прописыванием в финиш и обновлением дров для "детей" при наличии родительского контроллера.

Boa Soft 24-10-2012 00:56 2011064

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

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

1. Процедура обработки экстендеров переписана с целью возможно большего соответствия указаниям MDSN.
2. Небольшая чистка кода от мусора.
3. Добавлено дополнительное поле фильтра для дополнительного отбора драйверов в зависимости от версии OS.
4. Использованием фильтра можно управлять через UseOsFilter
4. Новый формат файлов индекса.
5. Каталогизатор переведен на новый формат индекса.
6. В каталогизатор добавлена поддержка автодобавления фильтра. Настраивается через ини-файл.
7. Небольшие доработки вывода в лог.
8. Добавлен ключь -test или -t для симуляции работы без распаковки пакетов и их установки.


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

Boa Soft 26-10-2012 14:46 2012639

В следующей версии, которою сейчас тестирую, будут такие новшества:
1. Появится папка NTALL для пакетов, общих для всех систем.
2. В finish.ini так же добавлен фильтр по версии OS
3. В индексаторе можно задать версию ос по умолчанию, которая будет записываться в фильтр, если не найдено соответствие по маркерным папкам.
4. При индексации автоматически создается заготовка для finish.ini, куда заносятся имя пакета, inf в качестве маркерного файла и HWID*_XX. Секция создается для каждого inf-файла. Это позволит упростить работу по заполнению finish
5. Автоматичиское создание текстового файла со списком поддерживаемых венднров и устройств попапочно для каждого пакета драйверов.

1-3 пункты уже реализованы, 4 в разработке и отладке (почти готов), 5 - в планах.

DR_WELL 26-10-2012 14:48 2012642

Цитата:

Цитата Boa Soft
В следующей версии, которою сейчас тестирую, будут такие новшества:
1. Появится папка NTALL для пакетов, общих для всех систем.
2. В finish.ini так же добавлен фильтр по версии OS
3. В индексаторе можно задать версию ос по умолчанию, которая будет записываться в фильтр, если не найдено соответствие по маркерным папкам.
4. При индексации автоматически создается заготовка для finish.ini, куда заносятся имя пакета, inf в качестве маркерного файла и HWID*_XX. Секция создается для каждого inf-файла. Это позволит упростить работу по заполнению finish
5. Автоматичиское создание текстового файла со списком поддерживаемых венднров и устройств попапочно для каждого пакета драйверов. »

Отлично. Буду ждать. Сейчас закончу создание образов для Altiris DS и займусь драйверами.

Boa Soft 02-11-2012 23:29 2017641

Текущая версия программы 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.


Boa Soft 04-11-2012 18:52 2018707

Программа успешно протестирована на Win 8 x86

dorosa 05-11-2012 09:31 2019092

Цитата:

Цитата Boa Soft
Программа успешно протестирована на Win 8 x86 »

А так же на WinPE3.1 x86 и x64
отлично ставит драйвера.

AlexM22204 05-11-2012 22:50 2019589

Boa Soft, а что выбрать в пункте "Версия OS по умолчанию" в утилите CatDrv, если у меня Windows 7 SP1 x86, а то там много всего... :o

Boa Soft 06-11-2012 02:13 2019730

Цитата:

Цитата AlexM22204
Boa Soft, а что выбрать в пункте "Версия OS по умолчанию" в утилите CatDrv, если у меня Windows 7 SP1 x86, а то там много всего... »

Смысл в том, что утилита определяет дополнительный фильтр по маркерным папкам. Для каждого драйверпака - свое.

hobbit25 06-11-2012 19:46 2020311

Boa Soft, Все равно что то не особо понятно с
Цитата:

Цитата Boa Soft
дополнительный фильтр »

можете если не сложно поточнее "разжевать" что к чему

DR_WELL 08-11-2012 09:49 2021366

С большим кол-вом фильтров не понятно. Что в итоге ставить по умолчанию.
Вместе с индексами создаются ****_template.ini они для чего? для создания вручную finish.ini ?

Boa Soft 11-11-2012 23:34 2023787

Цитата:

Цитата DR_WELL
Вместе с индексами создаются ****_template.ini они для чего? для создания вручную finish.ini ? »

Файлы финишера автоматически создать практически невозможно. Можно лишь облегчить их создание. ****_template.ini - это болванки для создания файлов финишера. Что туда добавлять - можно настроить в [Template] CatDrv.ini.

По поводу фильтров. Программа смотрит наличие маркерной папки в пути к инфу в драверпаке и в соответствии с секцией Filters добавляет фильтры по версии OS. Если маркерная папка не найдена, ставится фильтр по умолчанию.

Если обрабатываем пакет для XP то ставим по умолчанию ALLXP
Если обрабатываем пакет для x64 Vista\7\8 - то ставим по умолчанию LHX64 (LH - от Longhorn)
Если обрабатываем пакет для x86 Vista\7\8 - то ставим по умолчанию LHX86
Если обрабатываем универсальный пакет - то ставим по умолчанию ALL


PS
SamLab выложил структуру новых пакетов. Я подправил секцию фильтров.


Код:

[Filters]
Server=ALL86S,ALL64S
Vista=ALL6
Win7=ALL7
Win8=ALL8
All=ALL
Ax86=ALL86
Ax64=ALL64

5x64=5X64
5x86=5X86
6x64=60X64
6x86=60X86
7x64=61X64
7x86=61X86
8x64=62X64
8x86=62X86
NTx64=LHX64
NTx86=LHX86
Allx64=ALL64
Allx86=ALL86
AllXP=ALLXP
All6=ALL6
All7=ALL7
All8=ALL8
WinAll=ALL

Скопируйте и замените у себя в CatDrv.ini. Это позволит правильно парсить все новые пакеты.

DR_WELL 12-11-2012 13:33 2024038

Перезагрузка после установки в XP не работает.

В DIT.ini очепятка?

; Если для устройства найдено несколько драйверов, то программа будет пытаться устанавливать
; их по очереди. От лучшего к худшему. Если этот ключ установлен,
; то программа прервет попытки дальнейшей установки после успешной установки первого же драйвера
InatallOnlyFirstBetterDriver=1

С UNC путями умеет работать? Пока диск не подмаплю индексов не видит.

Есть ключи тихой установки?

hobbit25 12-11-2012 22:03 2024411

Boa Soft, а если я собираю драйвера для Windows7 x86/x64 использую пакеты от SamLab то какой фильтр лучше выставить.
заранее спасибо!

DR_WELL 16-11-2012 16:01 2026850

Не ставятся драйвера на некоторые мониторы и видеодаптеры.

Видеокарта

читать дальше »

Install compatible drivers (1)
Device name: Intel(R) 82865G Graphics Controller
Matching HWID: PCI\VEN_8086&DEV_2572
Hardware Class: DISPLAY
Manufacturer: Intel Corporation
Driver Version: 6.14.10.4396
Driver Date: 09/20/2005
Mfg section: *
DP Name: DP_Graphics_C_wnt5_x86-32_1206.7z
DP Path: \Drivers\Nt5x86\DP_Graphics_C_wnt5_x86-32_1206.7z
Inf file: DP_Graphics_C_wnt5_x86-32_1206\D\G\I6\ialmnt5.inf
Sub dir: DP_Graphics_C_wnt5_x86-32_1206\D\G\I6
Selected: Yes
Try to install/update this driver:
Action: DpInst
Install error: 0x800B0100 В этом объекте нет подписи.


Монитор

читать дальше »

Update compatible drivers (1)
Device name: ViewSonic VX912-3
Matching HWID: MONITOR\VSCD71C
Hardware Class: MONITOR
Manufacturer: ViewSonic
Driver Version: 1.5.2.71
Driver Date: 07/03/2012
Mfg section: *,NTia64
DP Name: DP_Monitors_wnt5_x86-32_1209.7z
DP Path: Drivers\Nt5x86\DP_Monitors_wnt5_x86-32_1209.7z
Inf file: 5x86\3\MON\VSO\VS120703_l19.inf
Sub dir: 5x86\3\MON\VSO
Selected: Yes
Try to install/update this driver:
Action: DpInst
Update error: 0x00000103 The function found a match for the HardwareId value, but the specified driver was not a better match than the current driver.



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

Boa Soft 16-11-2012 23:37 2027101

Виде
Цитата:

Цитата DR_WELL
Не ставятся драйвера на некоторые мониторы и видеодаптеры. »

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

Код:

BlockDSPolicy=1

InstallNonInteractive=0

На Vasta/7/8 при неподписанном драйвере будет всплывающее окно. При InstallNonInteractive=1 окна не будет и драйвер будет проигнорирован.

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

Можно попробовать ForceInstallDriver=1, но тогда совместимость драйверов проверяется только программой (и сборщиком пакетов), при ForceInstallDriver=0 последняя инстанции в принятии решения остается за системой.


Вообще, сейчас SamLab выложил пакеты нового формата, где один пакет содержит все драйвера определенного типа под все системы (например - DP_USB3_1211) или все драйвера одного вендера под все системы (например - DP_Video_nVIDIA_Notebook_1211).

Текущая версия уже готова к этому формату - эти пакеты помещаем в папку NTALL.

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

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

DR_WELL 21-11-2012 11:34 2029511

Цитата:

Цитата Boa Soft
Видеоадаптер - для того, чтобы сработала установка неподписаного драйвера под хп необходимо
Код:
BlockDSPolicy=1
InstallNonInteractive=0 »

Сработало.

Цитата:

Цитата Boa Soft
По монитору - уже установленный драйвер лучше предложенного. »

Соит Модуль подключения монитора и ни в какую не обновляется.

Action: DpInst
Update error: 0x00000103 The function found a match for the HardwareId value, but the specified driver was not a better match than the current driver.

Ключи тихой установки есть? Что бы скрыть окно от посторонних глаз?

С UNC путями не работает?

Автоматическая перезагрузка после установки драйверов работать будет?

После установки драйверов затирается HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath на дефолтовый, что не есть гуд. Это можно как нибудь поправить? У меня там прописан путь к драйверам сетевых карт.

SOLON7 28-11-2012 20:33 2034890

Boa Soft,
1.А на чем написана прога ??
2.Планируется ли выложить Исходники ??
3. Планируется ли делать ГУИ ??

Boa Soft 29-11-2012 01:02 2034984

Цитата:

Цитата SOLON7
1.А на чем написана прога ??
2.Планируется ли выложить Исходники ??
3. Планируется ли делать ГУИ ?? »

1. Delphi XE2
2. Пока не уверен.
3. Планируется. После окончательной отработки алгоритмов на консольной версии.

SamLab 29-11-2012 13:14 2035211

Boa Soft, При каждом запуске DIT_x64 начинается Delete phantom devices before hardware scan и на этом этапе всегда BSOD (VIDEO_DXGKRNL_FATAL_ERROR) - лог http://rghost.ru/41884025


Boa Soft 29-11-2012 21:52 2035570

Цитата:

Цитата SamLab
Boa Soft, При каждом запуске DIT_x64 начинается Delete phantom devices before hardware scan и на этом этапе всегда BSOD (VIDEO_DXGKRNL_FATAL_ERROR) »

С 8 я достаточно мало работал. Пока с таким поведением не сталкивался.
Отключается в настройках DeletePhantomDevices=0

Код удаления фантомов - взят из примера MS. Видимо, не совсем совместим с 8.

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

Эта функция полезна в случаи переезда на другую платформу или смене компонентов оборудования.

DR_WELL 30-11-2012 09:30 2035726

Попробовал на 8 х64. Отработало все четко. Ноут Lenovo x220.

SamLab 30-11-2012 11:12 2035787

Поставил DeletePhantomDevices=0 - теперь такой же БСОД на стадии Renumerate devices before hardware scan

Boa Soft 06-12-2012 23:08 2040295

Цитата:

Цитата SamLab
Поставил DeletePhantomDevices=0 - теперь такой же БСОД на стадии Renumerate devices before hardware scan »

Странно. Там то же самое, что при "обновить конфигурацию" в диспетчере - кода две строки из команды devcon rescan.

Эти две подпрограммы в принципе не нужны на новой системе, но могут помочь после замены оборудования или удаления драйверов.

Сбоя ни разу не наблюдал.

CtrlSoft 01-03-2013 13:44 2101772

обновление планируется?

SOLON7 02-04-2013 10:50 2124131

Уважаемый Юрий Николаевич. При использование установки Difxapi DriverPackageInstall вызывает ли бсод при левом драйвере ??

Я сам не помню бывал ли бсод. теперь с переходом на Xe2 смотрю в сторону difxapi, если он не вызывает БСОДЫ если драйвер левый то можно спокойно его заюзать !!!

DR_WELL 18-04-2013 15:35 2135127

Boa Soft, обновление будет?

Xaser_VI 22-07-2013 05:49 2188410

Извините за глупый вопрос, но не понял, что прописать в DIT.ini что бы из SetupComplete.cmd запускать DIT_x64.exe и он искал драйвера на ,буква диска\drivers\

veln 07-09-2013 14:31 2214168

Boa Soft, давно использую DP_Install_Tool в своих сборках, за что Вам огромное спасибо
Сейчас хочу перевести на DIT.
Столкнулся с неясной проблемой - запускаю программу через SetupComplete.cmd (пробовал уже в автозагрузку пихать, результат тот же). Программа запускается, определяет оборудование и завершает работу.

читать дальше »
[07.09.2013,16:14:52] Totall devices found 93
[07.09.2013,16:14:52] Unicue devices found 79
[07.09.2013,16:14:52] Inbox driver found 21
[07.09.2013,16:14:52] Problem devices found 0
[07.09.2013,16:14:52]
[07.09.2013,16:14:52] *** Load DriverPaks index files ************************************************
[07.09.2013,16:14:52]
[07.09.2013,16:14:52]
[07.09.2013,16:14:52] Load index files complete. Total index records: 0
[07.09.2013,16:14:52] Operation time: 0.0sec.
[07.09.2013,16:14:52]
[07.09.2013,16:14:52] No index records loading. Programm halted.
[07.09.2013,16:14:52]
[07.09.2013,16:14:52] Total time: 6.178sec.

*** Log end at: 07.09.2013 16:14:52 ********************************************
EOF


Если запускаю на рабочей системе (в DIT.ini ничего не меняю) драйвера устанавливаются без проблем.
Где искать грабли?

ЗЫ: С проблемой разобрался. Слегка накосячил с путем к драйверам.

--defender-- 03-03-2014 12:46 2318475

объясните как настроить чтоб на 7 этапе когда ставится софт из install.cmd запускался DIT_x64.exe и ставил дрова которые я закинул в 7z архивах в папку Drivers\NtAll

програмы в install.cmd ставятся например так start /wait %DiskRoot%\Install\doPDF_7.3.393.exe

UPD: оказалось проблема была в том что в NtAll я закинул индексы сделаные только для 61x64 а нужно было выбрать all.

Теперь возник другой вопрос: как сделать так чтоб не создавались логи и сама папку preload?

а так же непонятно что такое:
; Устанавливать дополнения (панели управления) драйверов
InstallPanels=1

если эта опция включена процесс установки дров занимает более 2 часов.. немогу понять зачем это и что оно дает...

DR_WELL 19-03-2014 12:27 2325646

Цитата:

Цитата --defender--
Теперь возник другой вопрос: как сделать так чтоб не создавались логи и сама папку preload? »


Эта?

; Папка, в которую будут распаковываться архивы.
; Можно использовать системные переменные окружения
UnpackedDriverFolder=c:\TEMP\Drivers\Unpack

Если да, то

; Сохранять ли папку с распакованными драйверами для дальнейшего использования
; При включенном ключе папка будет удалена автоматически
CleanupTmpDirAfterInstall=0


Цитата:

Цитата --defender--
а так же непонятно что такое:
; Устанавливать дополнения (панели управления) драйверов
InstallPanels=1
если эта опция включена процесс установки дров занимает более 2 часов.. немогу понять зачем это и что оно дает... »

Я не использую... у меня стоит InstallPanels=0

--defender-- 24-03-2014 09:12 2327790

Еще проблема: инвидивские дрова ставятся но панель управления nvidia на англиском... че делать?

еще заметил баг: на ноутбуках Dell при попытке установить драйвер на вайфай атерос намертво зависает ноут. помогает только ребут.

id278405157@vk 20-04-2015 17:58 2498377

проект заброшен? стоит ли его использовать? подскажите пожалуйста :)


Время: 01:42.

Время: 01:42.
© OSzone.net 2001-