Показать полную графическую версию : Drivers Pack, быстрая интеграция
Драйвера которые можно интегрировать в установленную систему
http://unattended.org.ua/files/soft-image/DP-2009_7.png (http://unattended.org.ua/drivers_pack)
инструкция по созданию:
Скачиваем пакеты драйверов, например Bashrat The Sneaky, и распаковываем в папку C:\D\
Перемещаем все файлы из C:\WINDOWS\inf, в другую папку (папка C:\WINDOWS\inf должна стать пустой)
Интегрируем при помощи утилиты SetupCopyOEMInf.exe драйвера в систему (http://oszone.net/2780)
В папке C:\WINDOWS\inf переименовываем файлы для создания уникальных имен (например oem40.inf в LAN_oem40.inf)
Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
преимущества:
Интеграция проходит быстрее, во время установки не будет появляться окно о неподписанных драйверах, после настройки устройств драйвера можно корректно удалить, не нужно интегрировать драйвера в дистрибутив, драйвера можно использовать в установленной системе...
---
тут можно почитать отзывы (http://tfile.ru/forum/viewtopic.php?t=79433&postdays=0&postorder=asc&start=0)
а тут можно скачать (http://unattended.org.ua/drivers_pack)
prokazzza
27-04-2007, 01:50
bodro
А не проще ли это все это сделать через nLite???? Которая интегрирует нужные драйвера прямо в дистрибут и не надо заморачиваться.
Boa Soft
01-05-2007, 01:01
bodro
Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
Все не так просто. Во-первых, вся соль метода SetupCopyOEMInf в том, что по мимо того, что создаются файлы oem*.inf, создаются и одноименные *.pnf. Вот в этих файлах как раз и сохраняется путь к папке с оригинальным инфом и драйвером. Без этих файлов просто будет запрос на поиск нужных файлов.
Кроме того, происходит создание ссылок в infcashe. Так что, Ваш метод неработоспособен.
Можно попробовать тоже самое, но с сохранением и pnf.
Переменовывать файлы не надо - система сама обеспечивает уникальность. К тому же, при переименовывании нарушится связь с соответствующими предкомпилированными pnf.
prokazzza
можно, но в nLite нужно прописывать каждый драйвер в отдельности (так было во времена когда я им пользовался), при количестве >100 шт. это уже нереально.
При интеграции в nLite после настройки оборудования драйвера нельзя удалить, нельзя использовать в установленной системе, при необходимости изменить драйвера, необходимо переделывать дистрибутив.
Boa Soft
Да файлы *.pnf необходимы, они создаются в папке %windir%\inf которую мы используем:
Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
Кроме того, происходит создание ссылок в infcashe. Так что, Ваш метод неработоспособен.
Был использован не на одном десятке компьютеров и ноутов ...работает )
Переменовывать файлы не надо - система сама обеспечивает уникальность. К тому же, при переименовывании нарушится связь с соответствующими предкомпилированными pnf.
Все файлы в %windir%\inf нужно переименовывать по аналогии oem40.inf в LAN_oem40.inf, oem40.pnf в LAN_oem40.pnf, oem41.inf в LAN_oem41.inf, oem41.pnf в LAN_oem41.pnf... При простом распаковывании файлов в папку inf система не сможет обеспечить их уникальность, а переименование позволит избежать конфликтов при использовании разных пакетов, например LAN и Sound.
prokazzza
02-05-2007, 22:20
bodroв nLite нужно прописывать каждый драйвер в отдельности
Такого ДАААвно нет, выбор - вставить папку драйверов.
Dirk Diggler
06-05-2007, 00:04
Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
не понял... ЧЕМ создается инсталлятор???
И интересно, не делает ли кто драйверпаков для принтеров и сканеров? 8-)))
не имеет особого значения чем создавать инсталлятор, я использовал InnoSetup
Dirk Diggler
06-05-2007, 01:10
не понял. это можно и sfx-архив использовать, если от него нужно лишь поместить некие файлы в 2 каталога. Только как винда эти дрова подхватит? Вот я поставил винду, у меня куча нераспознанных устройств в диспетчере оборудования. Я распаковываю эти файлы, получаю кучу инфов в %windir%\inf и дрова C:\D\. Далее что? Жать кнопку "переустановить" в настройках каждого устройства?
при переименовывании нарушится связь с соответствующими предкомпилированными pnf. ну, это как раз не проблема - можно повторно перекомпилировать PNF послепереименования... Вот простой CMD-скрипт, автоматизирующий сей процесс:@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
:: Путь к каталогу с дровами
SET OEMDRV=C:\D
:: Стартовый номер OEM-файла
SET INUM=10000
:: Цикл копирования/переименования
CD /D %OEMDRV%
@echo Копирование INF-файлов...
for /f "tokens=* delims=" %%i in ('dir /B/S/A:-D *.inf') do (
COPY %%i %WINDIR%\inf\oem!INUM!.inf>nul
SET /A INUM+=1
)
:: Компиляция PNF
%~dp0SetupCopyOEMInf %OEMDRV%
не делает ли кто драйверпаков для принтеров и сканеров?
Делают (http://forum.driverpacks.net/viewtopic.php?id=587)
Dirk Diggler
не понял. это можно и sfx-архив использовать, если от него нужно лишь поместить некие файлы в 2 каталога.
да можно, но тогда теряется возможность корректной деинсталляции
Dirk Diggler
07-05-2007, 19:40
На сайте сказано Создание Unattended Windows Использование Drivers Pack избавит от необходимости интеграции драйверов в дистрибутив, дает возможность выбора устанавливаемых драйверов и последующего их удаления
можно пару комментариев, как это сделать? я в этом чайник, с установкой в работающую систему более-менее понятно, но в дистр? избавьте меня от необходимости разбираться досконально во всех механизмах работы, скажите пару слов, как это?
с установкой в работающую систему более-менее понятно, но в дистр?
основная идея в том чтобы дистрибутив не трогать, принцип тотже что и для установки обычного софта
Boa Soft
13-05-2007, 22:54
По поводу метода установки. Проверил - работает. Беру часть своих слов обратно. Достаточно только сгенереных PNF и INF файлов. Остальное не важно.
Немного модифицировал. На первом проходе сканится папка с драйверами и копируются в %SystemRoot%\inf inf - файлы с уже уникальными именами (имя состоит из OEM_ и пути и имени файла от корневой папки с выкинутыми слэшами ).
На втором проходе сканится папка драйверов и вызывается SetupCopyOEMInf для каждого найденного файла. При нужном наборе ключей новые oem*.inf не создаются а используются скопированные на первом проходе. Создаются только PNF.
На третьем проходе все соданные Inf и Pnf перемещаются в указанную папку. Осталось поместить их на целеывой диск в процессе установки . например, через $OEM$ структуру.
Скачать для тестов можно сдесь:
http://tools.oszone.net/BoaSoft/tools/mycopyoeminf.7z
Жду отзывов.
По поводу установки неподписанных драйверов получил следующее: ВСЕ драйверы, устанавливаемые простым копированием INF/PNF будут идти как неподписанные, т.к. пропускается шаг установки CAT-файлов в хранилище... Этим он отличается от метода с применением SetupCopyOemInf во время установки. Поэтому подавление проверки подписи обязательно, например через WINNT.SIF, но даже это не гарантирует положительного результата... Так у меня получилось с драйвером от ATI - после корректной установки установщих молча заменил часть файлов на подписанные файлы из дистрибутива (SP2.CAT), после чего драйвер естественно стал неработоспособным - только ручная переустановка (того же самого "неподписанного" драйвера) исправила ситуацию.
BoaSoft
чем отличается твой EXE от MSFN-овского кроме доп.копирования?.. хорошо бы еще добавить инфу об успехе/неудаче компиляции.
Boa Soft
16-05-2007, 23:15
amel27
По поводу установки неподписанных драйверов получил следующее: ВСЕ драйверы, устанавливаемые простым копированием INF/PNF будут идти как неподписанные, т.к. пропускается шаг установки CAT-файлов в хранилище...
Хм. Я то тестировал и на суспрепном образе и на простой установке с использованием утилитки подавления проверки подписи.
А вот интересно, простое копирование соответствующих cat-файлов, созданных в процессе SetupCopuOemInf, в
%SystemRoot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
не решит этой проблемы?
чем отличается твой EXE от MSFN-овского кроме доп.копирования?.. хорошо бы еще добавить инфу об успехе/неудаче компиляции.
Чтобы небыло попапов, встроено подавление проверки цифровой подписи. Остальной механизм описывал ранее. Там не только генерация pnf, но и ряд дополнительных функций по созданию уникальных имен и копированию файлов.
Инфу добавить можно. Просто утилиту "склеил" за полчаса из кусков раных проектов для проверки работоспособности.
Boa SoftА вот интересно, простое копирование соответствующих cat-файлов, созданных в процессе SetupCopuOemInf [...] не решит этой проблемы?при отключенном подавлении проверки цифровой подписи имеем:
- подписанные драйверы: ставятся нормально - уставновщик сначала восстанавливает целостность базы хранилища сертификатов, добавляет туда найденные CAT-файлы, перекомпилирует PNF и только потом продолжает установку... хотя при этом теряется скоростное преимущество метода;
- неподписанные драйверы: проходят этап копирования файлов, регистрации интерфейсов, установку классов, на последнем этапе установщик обнаруживает отсутствие подписи и запускает откат... если во время установки были подтянуты другие системные inf-файлы, то откат может не пройти до конца и оставить "хвосты" в виде нерабочих устройств - у меня так случилось со звуковухой от M-Audio... опять же, налицо работа установщика "вхолостую".
ВЫВОД: компиляцию PNF и установку драйвера желательно проводить при одной политике "Driver Signing".
ADD: по ходу нашел как запустить SetupCopyOEMInf до запуска основного SETUP... еще пару проверок и отпишусь
Boa Soft
Оказалось, что для работы SetupCopyOemInf через Fake-Setup достаточно зарегистрировать три DLL-ки: SOFTPUB.DLL, WINTRUST.DLL, INITPKI.DLL (именно в таком порядке). Последняя DLL-ка при регистрации запускает службу «Cryptographic Services» (CryptScv), поэтому придется дождаться ее старта…
хочу еще попробовать видоизменить метод и попытаться восстановить из архива всю базу сертификатов, благо до запуска основного SETUP службы еще не сформированы и можно смело распаковывать все что угодно…
в общем, установка с переносом всего каталога сертификатов проходит нормально… последовательность действий:
- останавливаем службу CertSvc и делаем резервную копию каталогов:
%WINDIR%\inf
%WINDIR%\System32\CatRoot
%WINDIR%\System32\CatRoot2
- зачищаем эти каталоги и запускаем службу;
- копируем INF-файлы в каталог %WINDIR%\inf, переименовываем в OEMxxxxx.INF;
- компилируем INF-ы в PNF-файлы, по ходу формируем базу CAT-файлов.
- останавливаем службу CertSvc и пакуем каталоги в 7z-архив:
%WINDIR%\inf
%WINDIR%\System32\CatRoot
%WINDIR%\System32\CatRoot2
- восстанавливаем из архива каталоги, запускаем службу.
полученный архив можно смело восстанавливать на стадии фейкового сетупа (через PRESETUP.CMD), так как криптослужбы на этом этапе еще не инициализированы.
З.Ы. если есть интерес, могу выложить батники, автоматизирующие эти этапы.
Boa Soft
20-05-2007, 11:18
amel27
Оказалось, что для работы SetupCopyOemInf через Fake-Setup достаточно зарегистрировать три DLL-ки: SOFTPUB.DLL, WINTRUST.DLL, INITPKI.DLL (именно в таком порядке). Последняя DLL-ка при регистрации запускает службу «Cryptographic Services» (CryptScv), поэтому придется дождаться ее старта…
Очень интересно. Можно попробовать дописать.
в общем, установка с переносом всего каталога сертификатов проходит нормально… последовательность действий:
А если только каталоги OEM_*.CAT скопировать? Метод не сработает?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.