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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Drivers Pack, быстрая интеграция (http://forum.oszone.net/showthread.php?t=83162)

bodro 26-04-2007 12:27 579819

Drivers Pack, быстрая интеграция
 

Драйвера которые можно интегрировать в установленную систему



инструкция по созданию:
  1. Скачиваем пакеты драйверов, например Bashrat The Sneaky, и распаковываем в папку C:\D\
  2. Перемещаем все файлы из C:\WINDOWS\inf, в другую папку (папка C:\WINDOWS\inf должна стать пустой)
  3. Интегрируем при помощи утилиты SetupCopyOEMInf.exe драйвера в систему (http://oszone.net/2780)
  4. В папке C:\WINDOWS\inf переименовываем файлы для создания уникальных имен (например oem40.inf в LAN_oem40.inf)
  5. Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.

преимущества:
Интеграция проходит быстрее, во время установки не будет появляться окно о неподписанных драйверах, после настройки устройств драйвера можно корректно удалить, не нужно интегрировать драйвера в дистрибутив, драйвера можно использовать в установленной системе...


---
тут можно почитать отзывы
а тут можно скачать

prokazzza 27-04-2007 01:50 580161

bodro

А не проще ли это все это сделать через nLite???? Которая интегрирует нужные драйвера прямо в дистрибут и не надо заморачиваться.

Boa Soft 01-05-2007 01:01 581511

bodro
Цитата:

Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
Все не так просто. Во-первых, вся соль метода SetupCopyOEMInf в том, что по мимо того, что создаются файлы oem*.inf, создаются и одноименные *.pnf. Вот в этих файлах как раз и сохраняется путь к папке с оригинальным инфом и драйвером. Без этих файлов просто будет запрос на поиск нужных файлов.

Кроме того, происходит создание ссылок в infcashe. Так что, Ваш метод неработоспособен.

Можно попробовать тоже самое, но с сохранением и pnf.

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


bodro 02-05-2007 11:54 582061

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 582324

bodro
Цитата:

в nLite нужно прописывать каждый драйвер в отдельности
Такого ДАААвно нет, выбор - вставить папку драйверов.

Dirk Diggler 06-05-2007 00:04 583560

Цитата:

Создаем инсталлятор, который будет включать файлы из C:\WINDOWS\inf и C:\D\, при установке он должен распаковывать их в %windir%\inf и C:\D\ соответственно.
не понял... ЧЕМ создается инсталлятор???

И интересно, не делает ли кто драйверпаков для принтеров и сканеров? 8-)))

bodro 06-05-2007 00:47 583578

не имеет особого значения чем создавать инсталлятор, я использовал InnoSetup

Dirk Diggler 06-05-2007 01:10 583584

не понял. это можно и sfx-архив использовать, если от него нужно лишь поместить некие файлы в 2 каталога. Только как винда эти дрова подхватит? Вот я поставил винду, у меня куча нераспознанных устройств в диспетчере оборудования. Я распаковываю эти файлы, получаю кучу инфов в %windir%\inf и дрова C:\D\. Далее что? Жать кнопку "переустановить" в настройках каждого устройства?

amel27 06-05-2007 11:16 583642

Цитата:

при переименовывании нарушится связь с соответствующими предкомпилированными 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%


Promise 07-05-2007 01:08 583846

Цитата:

не делает ли кто драйверпаков для принтеров и сканеров?
Делают

bodro 07-05-2007 14:27 584060

Dirk Diggler
Цитата:

не понял. это можно и sfx-архив использовать, если от него нужно лишь поместить некие файлы в 2 каталога.
да можно, но тогда теряется возможность корректной деинсталляции

Dirk Diggler 07-05-2007 19:40 584180


На сайте сказано
Цитата:

Создание Unattended Windows Использование Drivers Pack избавит от необходимости интеграции драйверов в дистрибутив, дает возможность выбора устанавливаемых драйверов и последующего их удаления
можно пару комментариев, как это сделать? я в этом чайник, с установкой в работающую систему более-менее понятно, но в дистр? избавьте меня от необходимости разбираться досконально во всех механизмах работы, скажите пару слов, как это?

bodro 08-05-2007 23:00 584610

Цитата:

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

Boa Soft 13-05-2007 22:54 586461

По поводу метода установки. Проверил - работает. Беру часть своих слов обратно. Достаточно только сгенереных PNF и INF файлов. Остальное не важно.
Немного модифицировал. На первом проходе сканится папка с драйверами и копируются в %SystemRoot%\inf inf - файлы с уже уникальными именами (имя состоит из OEM_ и пути и имени файла от корневой папки с выкинутыми слэшами ).
На втором проходе сканится папка драйверов и вызывается SetupCopyOEMInf для каждого найденного файла. При нужном наборе ключей новые oem*.inf не создаются а используются скопированные на первом проходе. Создаются только PNF.
На третьем проходе все соданные Inf и Pnf перемещаются в указанную папку. Осталось поместить их на целеывой диск в процессе установки . например, через $OEM$ структуру.

Скачать для тестов можно сдесь:

http://tools.oszone.net/BoaSoft/tools/mycopyoeminf.7z

Жду отзывов.

amel27 15-05-2007 07:02 586947

По поводу установки неподписанных драйверов получил следующее: ВСЕ драйверы, устанавливаемые простым копированием INF/PNF будут идти как неподписанные, т.к. пропускается шаг установки CAT-файлов в хранилище... Этим он отличается от метода с применением SetupCopyOemInf во время установки. Поэтому подавление проверки подписи обязательно, например через WINNT.SIF, но даже это не гарантирует положительного результата... Так у меня получилось с драйвером от ATI - после корректной установки установщих молча заменил часть файлов на подписанные файлы из дистрибутива (SP2.CAT), после чего драйвер естественно стал неработоспособным - только ручная переустановка (того же самого "неподписанного" драйвера) исправила ситуацию.

BoaSoft
чем отличается твой EXE от MSFN-овского кроме доп.копирования?.. хорошо бы еще добавить инфу об успехе/неудаче компиляции.

Boa Soft 16-05-2007 23:15 587776

amel27
Цитата:

По поводу установки неподписанных драйверов получил следующее: ВСЕ драйверы, устанавливаемые простым копированием INF/PNF будут идти как неподписанные, т.к. пропускается шаг установки CAT-файлов в хранилище...
Хм. Я то тестировал и на суспрепном образе и на простой установке с использованием утилитки подавления проверки подписи.

А вот интересно, простое копирование соответствующих cat-файлов, созданных в процессе SetupCopuOemInf, в
Код:

%SystemRoot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
не решит этой проблемы?

Цитата:

чем отличается твой EXE от MSFN-овского кроме доп.копирования?.. хорошо бы еще добавить инфу об успехе/неудаче компиляции.
Чтобы небыло попапов, встроено подавление проверки цифровой подписи. Остальной механизм описывал ранее. Там не только генерация pnf, но и ряд дополнительных функций по созданию уникальных имен и копированию файлов.

Инфу добавить можно. Просто утилиту "склеил" за полчаса из кусков раных проектов для проверки работоспособности.

amel27 18-05-2007 03:27 588169

Boa Soft
Цитата:

А вот интересно, простое копирование соответствующих cat-файлов, созданных в процессе SetupCopuOemInf [...] не решит этой проблемы?
при отключенном подавлении проверки цифровой подписи имеем:

- подписанные драйверы: ставятся нормально - уставновщик сначала восстанавливает целостность базы хранилища сертификатов, добавляет туда найденные CAT-файлы, перекомпилирует PNF и только потом продолжает установку... хотя при этом теряется скоростное преимущество метода;

- неподписанные драйверы: проходят этап копирования файлов, регистрации интерфейсов, установку классов, на последнем этапе установщик обнаруживает отсутствие подписи и запускает откат... если во время установки были подтянуты другие системные inf-файлы, то откат может не пройти до конца и оставить "хвосты" в виде нерабочих устройств - у меня так случилось со звуковухой от M-Audio... опять же, налицо работа установщика "вхолостую".

ВЫВОД: компиляцию PNF и установку драйвера желательно проводить при одной политике "Driver Signing".

ADD: по ходу нашел как запустить SetupCopyOEMInf до запуска основного SETUP... еще пару проверок и отпишусь

amel27 18-05-2007 17:08 588403

Boa Soft

Оказалось, что для работы SetupCopyOemInf через Fake-Setup достаточно зарегистрировать три DLL-ки: SOFTPUB.DLL, WINTRUST.DLL, INITPKI.DLL (именно в таком порядке). Последняя DLL-ка при регистрации запускает службу «Cryptographic Services» (CryptScv), поэтому придется дождаться ее старта…

хочу еще попробовать видоизменить метод и попытаться восстановить из архива всю базу сертификатов, благо до запуска основного SETUP службы еще не сформированы и можно смело распаковывать все что угодно…

amel27 19-05-2007 14:09 588687

в общем, установка с переносом всего каталога сертификатов проходит нормально… последовательность действий:

- останавливаем службу 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 588869

amel27
Цитата:

Оказалось, что для работы SetupCopyOemInf через Fake-Setup достаточно зарегистрировать три DLL-ки: SOFTPUB.DLL, WINTRUST.DLL, INITPKI.DLL (именно в таком порядке). Последняя DLL-ка при регистрации запускает службу «Cryptographic Services» (CryptScv), поэтому придется дождаться ее старта…
Очень интересно. Можно попробовать дописать.

Цитата:

в общем, установка с переносом всего каталога сертификатов проходит нормально… последовательность действий:
А если только каталоги OEM_*.CAT скопировать? Метод не сработает?

amel27 20-05-2007 11:44 588875

Boa Soft
Цитата:

А если только каталоги OEM_*.CAT скопировать? Метод не сработает?
Работает - отписался же в первом из 3-х постов, просто метод копирования всего каталога интересен своей скоростью (нет потерь на поиск и регистрацию CAT-ов) и универсальностью - можно провести тестовую установку, сделать архив базы каталога со всеми CAT-файлами и закинуть в образ... при дальнейших переустановках все должно идти побыстрей, в том числе установка хот-фиксов (там ведь тоже свои CAT-файлы).

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

Dirk Diggler 25-05-2007 15:07 590891

а можно для дилетантов резюме обсуждения в шапку?

bodro 19-12-2008 01:31 984580

Сделал апдейт версии до версии 9.0
тут можно почитать отзывы
а тут можно скачать


Время: 00:30.

Время: 00:30.
© OSzone.net 2001-