Wednesday, November 4, 2009

Интеграция драйверов в образ windows 5.х версий

Покопался в нёдрах ОС и нашел для себя способ подсовывания драйверов новых в уже "установленную" копию операционки.
Жаль, без переподписывания "правильным" сертификатом layout.inf файлика совсем красиво это не удалось сделать (файл драйверов дублируется в двух местах). Если править layout.inf файл то все драйвера "встроенные" в windows из дистрибутива станут автоматически неподписанными из-за чего появится много "сексуальных" моментов при работе с устройствами...


Для меня в любом случае есть некоторые непонятные пока моменты которые я не смог разрешить, изучаю на предмет проблем всё-равно т.к. возможно что и drvindex.inf файл тоже является хитрым и после его модификации чтото может отвалиться.

Вся операция заключена в нескольких шагах:

1. создаю каталог куда кладу драйвер.
2. дальше создаю файл ответов для makecab примерно такого содержимого (в моем случае).
 Называю его drv.ddf
.OPTION EXPLICIT
.Set CabinetNameTemplate=intel_net.CAB
.Set Cabinet=on
.Set Compress=on
e1000325.din
E1000325.sys
e1000msg.dll
NicCo.dll
NicEtCo.dll
NicEtCoE.dll
NicInst.dll
NicInstE.dll
PROUnstl.exe

3. запускаю makecab /f drv.ddf В конце получив архив intel_net.cab
4. кладу CAB два раза в образ по адресам \Driver Cache\i386 и \Driver Cache
5. открываю notepad с файлом \inf\drvindex.inf В нём надо вписать ссылку на

CAB с перечислением находящихся там файлов. Делается это так (в моем случае):
В секции [Version]
находим параметр CabFiles=
добавляем туда наш. Она станет CabFiles=SP3,driver,intel_net
Дальше спускаемся на пару строк и создаем секцию [intel_net] в ней перечисляем все файлы в

нашем CABе.(аналогично как перечислял в файле ответов список файлов)
Теперь идем в самый конец файла и в секции [Cabs] добавляем ссылочку на наш новый.
intel_net=intel_net.cab

6. все inf файлы из драйвера копируем в \Windows\inf каталог.
7. всё сохраняю и перезагружаю машину. Проходя стадию определения устройств, Windows

Mini-setup будет "из коробки" понимать сетевые адаптеры в inf файлах.