Войти

Показать полную графическую версию : Создание дисков с автоматической установкой драйверов


Страниц : [1] 2 3 4 5 6 7 8 9 10 11 12 13

vek
19-12-2005, 13:46
Есть идея: Создать универсальный диск автоматической установки драйверов, т.е. вставляете диск, он сканирует установленные на компьютере драйвера, сравнивает их с записанными на диск, а затем предлагает обновить устаревшие и/или установить недостающие. (надеюсь я понятно изложил :-) ).
Помогите реализовать идею в жизнь! Спасибо!
[hr]
Тестируем:
Программа-дополнение для K-systems (http://forum.oszone.net/post-752067-184.html)

[hr]
Интерфейс для Пакетов Драйверов (http://forum.oszone.net/thread-109872.html)

vserd
19-12-2005, 14:55
Как обнаружить PNP устройства можешь посмотреть в коде UnknownDevices (h__p://www.halfdone.com/Development/UnknownDevices/). с не PNP наверняка сложнее, но таких устройств всем еньше и меньше.

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

После выяснения ID устройств, нужно будет просканировать inf на компакте (искать инфы обязательно в архивах CAB, RAR, ZIP, 7z), затем сравниваешь и если нашел нужные выясняешь версии драйверов в дистрибутиве и в системе.

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

MKN
19-12-2005, 15:15
Думаю, что универсальный CD с дровами делать - занятие весьма сложное, а самое главное неблагодарное, т.к. вариаций железа и дров к нему - не меряно ! К тому же всё это хозяйство постоянно обновляется и изменяется и не всякие дрова возможно подготовить для автоустановки. Практичнее иметь диск с набором разных драйверов(которые по мере необходимости просто дописываются на него) и несколькими утилитами для определения конфигурациии оборудования. Выяснил что за железо на компе - установил подходящий драйвер - это не так уж и долго.

vserd
19-12-2005, 15:32
MKN
смотря что понимать под "универсальный диск". В моем понимании, это все дрова к оборудованию на фирме, и в обязательном порядке, утиль который составит списочек и покажет только те которые подходят на этот комп, а я установлю, а еще лучше это файлик который потом можно запустить на установку и дрова поставятся автоматом.

vek
19-12-2005, 15:39
Думаю, что универсальный CD с дровами делать - занятие весьма сложное, а самое главное неблагодарное, т.к. вариаций железа и дров к нему - не меряно ! Не согласен. Например я не так часто обновляю драйвера. Например на моей видеокарточке стоят дрова, вышедшие в начале года, а на рабочих компьютерах вообще никогда не обновлялись.
Практичнее иметь диск с набором разных драйверов(которые по мере необходимости просто дописываются на него) и несколькими утилитами для определения конфигурациии оборудования
Если речь идет об одном компьютере - то вполне логично, но если у тебя их 10 или более, то становится немного проблематично. Тем более что записанные параметры железяк постоянно теряются.

vek
19-12-2005, 15:45
а еще лучше это файлик который потом можно запустить на установку и дрова поставятся автоматом
а еще лучше если этот файлик даст возможность выбора: установить или пропустить.

MKN
19-12-2005, 15:58
Под универсальностью я подразумеваю пригодность этого диска ко всем(хотелось бы) возможным случаям, применимо к моей работе - постоянная смена компов, соответственно непредсказуемое железо и дрова! Ежели же компы одни и те же, их много, да ещё и одинаковые - тут уж и думать нечего, т.е. всё давно придумано - образ HDD(или для каждого компа свой)со всеми потрохами - экономия и времени и нервов очевидная!

vserd
19-12-2005, 16:46
vekа еще лучше если этот файлик даст возможность выбора: установить или пропустить.
А откуда АВТОМАТИЧЕСКАЯ УСТАНОВКА знает МОЮ ХОТЕЛКУ устанавливать этот драйвер или нет?
Не вырывай из контекста.
Тут у утилиты два режима.
1. Интерактивный, в список попадают только драйвера под железо на этом компе, я могу выбрать что ставить что нет.
В интерактивном режиме также должна быть возможность выбрать для установки драйвера принтера, сканера и т.п. текники, которая не подключена, но в полне возможно будет подключена.

2. Автоматический. В этом режиме (можно за несколько проходов/запусков) формируется список драйверов, которые есть на диске (в полне возможно что будет несколько версий, тогда выбирается самые новые), потом формируется файл, который либо можно запустить как командник, Rundll32 или любым другим способом, либо запуск на установку этой же утилитой.
промежуточный этам с сохранением нужен обязательно, как для документирования, так и вполне реального ручного прописывания установки устройства на другой стадии.


MKNПод универсальностью я подразумеваю пригодность этого диска ко всем(хотелось бы) возможным случаям, применимо к моей работе - постоянная смена компов, соответственно непредсказуемое железо и дрова!
ну все не получится однозначно, особенно если торговля компами на потоке, но покрытие до 90 % запросто (тебе даже не нужно записывать их на диск, просто скидывать на сетевую шару и все). Весь вопрос в утиле, который будет сканировать диск, и выбирать именно этот драйвер. Пока такого нет.
Вот когда vek или ктолибо другой, при поддержке и критике коллективного разума сделают его, тогда будем двигаться дальше.

ALL
Может кто знает: на MSFN такого еще не писали/обсуждали? Идея носится в воздухе, и хотелка есть но времни ее реализовать нет :(

MKN
19-12-2005, 17:20
И ещё, всё-таки хотелось бы обратить внимание на драйверы, которые производителем упакованы в собственные инсталяторы(да ещё без возможности применить ключ тихой установки!) - каким образом их подготовить для автоустановки?

vserd
19-12-2005, 17:50
MKN
обратить внимание на драйверы, которые производителем упакованы в собственные инсталяторы(да ещё без возможности применить ключ тихой установки!) -
Тут нуже индивидуальный подход к каждому. :(
Можно попытаться просмотреть содержимое инсталяций, можно делать скрипты AutoIt. Без ручной подготовки никак :(
Но собственно это уже следующий этап :)

vserd
19-12-2005, 18:58
MKN
обратить внимание на драйверы, которые производителем упакованы в собственные инсталяторы(да ещё без возможности применить ключ тихой установки!) -
Тут нужен индивидуальный подход к каждому. :(
Можно попытаться просмотреть содержимое инсталяций и выдернуть их, можно делать скрипты AutoIt. Без ручной подготовки никак :(
Но собственно это уже следующий этап :)

Debugger
19-12-2005, 19:28
Имхо, возможности определения имеющихся девайсов недостаточно, чтобы не возникло навязшей на зубах проблемы с одинаковыми Hardware ID's различных встроенных аудиокодеков, желательно добавить определение производителя и модели материнской платы и при установке звука плясать уже от этого. Типа - GigaByte - в основном Realtek, Asus - SoundMax, Asrock - Realtek и C-Media etc

Я тут полностью перешел с WPI на Boa Soft Post-Installer и сейчас потихоньку забиваю в него автоустановку дров. BSPI с его возможностью перезагрузки в процессе установки имхо как нельзя лучше для этого подходит. А если бы в нем еще и сабж реализовать - цены бы ему не было.

vserd
19-12-2005, 19:43
Debby. Типа - GigaByte - в основном Realtek, Asus - SoundMax, Asrock - Realtek и C-Media etc
А что есть утиль который может определить производителя?
если есть дай ссылку. Даже если это интерактив.

Судя по запросам публики, прога выйдет не маленькая по возможностям, пускай для начала хоть список PNP оборудования в файл кидать будет. :))

Debugger
19-12-2005, 19:52
обратить внимание на драйверы, которые производителем упакованы в собственные инсталяторы

Я заметил, что большинство производителей используют все тот же InstallShield, просто многие упаковывают его в один файл, которые легко открывается в WinRAR'е или Total Commander'е по Ctrl+PgDn. Также многие прямо указывают в Readme ключи тихой установки. Также многие используют новомодный Microsoft Installer.

Если же есть только .inf файл и сопутствующие ему, можно попробовать сделать свой инсталлер с помощью все того же InstallShield.

Debugger
19-12-2005, 19:58
vserd

В том то и дело, что нет. В поисках перерыл весь (или не весь) интернет. Есть хороший софт (Everest, ASTRA и т.д.), но заставить их из командной строки выдать производителя материнки вряд ли получится.

Debugger
19-12-2005, 20:06
vserd

пускай для начала хоть список PNP оборудования в файл кидать будет

Есть очень хорошая Craig Hart's PCI+AGP Bus Sniffer (http://members.datafast.net.au/~dft0802/downloads.htm). Работает из консоли, и что классно, берет все идэшники из собственного текстового файла, который можно подправить. Более подробно я писал в этой теме (http://forum.oszone.net/showthread.php?t=55734)

Debugger
19-12-2005, 20:28
Немного невнимательно почитал тему. Имхо, слишком жирно сразу взять и написать прогу, которая возьмет и просканирует все дрова на диске и поставит нужные. А что скажете про дрова, упакованные InstallShield'ом? Ихние CAB'ы распаковать не так-то просто, хоть и существует куча программ, это делающих, постоянно глючащих на разных версиях ИнсталлШилда. Хотя бы на первое время наверно будет более целесообразным составить базу по имеющимся inf'ам, или просто Hardware IDs, а потом уже устанавливать дрова с тихими ключами.

vserd
20-12-2005, 12:25
vekЕсть идея: Создать универсальный диск автоматической установки драйверов,
Колись, ты будешь программу писать или только спрашиваешь про готовые?
Бо уменя эта идея уже год болтается в мозгу :))

Debby
Имхо, слишком жирно сразу взять и написать прогу, которая возьмет и просканирует все дрова на диске и поставит нужные

Собственно ничего сложного нет.
команда "сделать список драйверов для этой машины"
1. Сканируем машину на предмет установленного оборудования.
2. Определеяем есть ли драйвера на них (если винда помечает их вопросами и восклицаниями, либо в специальный ключик заносит, значит это можно сделать и в своей проге).
3. Сканируем диск на наличие inf (как в распакованном, так и в архивном виде с определенными типами архиваторов) и вытягиваем из них PnP ID, проверяем есть ли в нашем списке по п.1.
3.1 нет, ищем следующий
3.2 да, сразу вытягиваем версию драйвера, добавляем в список.
4. Формируем список драйверов, выбираем из них самые последние.
5. Записываем драйвера в файл для последующей установки.
Команда "установить драйвера"
1. Считываем из файла информацию о нужном драйвере/драйверах (не факт что это будет то-же файл что п 5 в предыдущем, его могут отредакировать)
2. Устанавливаем драйвер.

Команда "список всех драйверов начиная с этой папки"
1. сканируем диск начиная с этой папки
2. строим список упорядоченный по виду оборудования
3. записываем в файл.

Это для консольной версии, в первом приближении и версии.
Для GUI будет тоже самое, только интерактив, можно даже сделать обертку над консолью.

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

Самое сложное на мой взгляд это отсканировать машину на предмет установленного оборудования и определения не установленности драйвера.

vek
20-12-2005, 12:48
Колись, ты будешь программу писать или только спрашиваешь про готовые?
Если-бы сумел написать уже бы выложил. не сомневайтесь. Я хотел бы увидеть может быть пример кода, советы по реализации и т.д.
Что касается диска, то мне прислали один вариант по обычной почте! Представляете даже такое бывает!
Там в корневом каталоге 600 Mb дров, скомпилированнный exe и еще пара файлов. Кто поможет сломать?

QUADamage
20-12-2005, 13:05
2All
Мне эта тема тоже интересна, и есть некоторые мысли:

Драйвера собирает Башрат, на его сайте http://driverpacks.net/ можно их скачать. В 7z они занимают 170 мегов, в распакованном виде почти гигабайт и драйвера у него почти под все, сам использую их на своем установочном диске.
При установке винды они распаковываются на хард, затем специальной утилитой винде сообщаются пути к дирректориям с драйверами и оттуда винда их ставит сама.
В принципе реализовать похожее уже на установленной винде несложно - надо както запустить процесс установки драйверов самой виндой, она же сама поймет что надо и не надо ставить. Например для Windows PE это сделано специальной утилитой HWPnP, возможно она будет работать и под простую винду, на досуге поэксперементирую.




© OSzone.net 2001-2012