Войти

Показать полную графическую версию : Распаковка инсталляторов от nVidia и ATi


Страниц : [1] 2

Sve
13-12-2004, 03:34
В общем, при первичной распаковке, все файлы имеют неполное расширение, заканчивающееся на _ и шифрованы. Как бы расшифровать? Спрособ описанный для инсталляторов Intell здесь не прокатывает, что setup -a, что setup -a -p C:\123123123, даже если этот каталог сам создаешь на диске. А очень хочется постоянно дополонять диск свежими дровами. Кстати, еще вопрос: почему, если имеется свежие драйвера, но не подписанные и драйвера, которые идут вместе с Windows, винда предпочтет именно подписанные при автоматической установке? Как поправить?

Akufrol
14-12-2004, 07:25
Ну вообще-то это надо прописать в winnt.sif в разделе Unattended
Надо поставить параметр DriverSigningPolicy=Ignore
И тогда винде будет пофигу на подпись, она поставит самые свежие дрова
Вообще у меня прокатывало, но есть подозрение, что она все же свои дрова больше любит :-)

qeraser
14-12-2004, 12:40
Способ проверен на 66.93_win2kxp_english

1) Распковываешь архив (например WinRAR)
2) Создаешь в распакованной папке cmd файл (например reduce-size.cmd)
такого содержания:TITLE nVidia 66.93 driver cleanup
@echo off

ECHO undoing the idiotic compression
PAUSE
md expanded
expand *.*_ expanded
del /Q *.*_
cd expanded
ren *.dl_ *.dll
ren *.tv_ *.tvp
ren *.sy_ *.sys
ren *.ex_ *.exe
ren *.cf_ *.cfg
ren *.hl_ *.hlp
ren *.cp_ *.cpl
ren *.xm_ *.xml
move /Y *.* ..
cd ..
rd expanded
ECHO deleting useless setup utility
del setup.skin
del setup.iss
del setup.inx
del setup.ini
del setup.ibt
del setup.exe
del setup.bmp
del layout.bin
del engine32.cab
del data2.cab
del data1.cab
del data1.hdr
3) собственно запускаешь его. Как бонус будут удалены ненужные файлы

Теперь мой вопрос к знатокам.
Возмодно ли как-нибудь поджать дрова при помощи сжатия (cab и т.д)
при использовании OemPnPDriversPath, для уменьшения размера.

EgOrus
14-12-2004, 16:05
qeraser
нельзя
есть вариант с подменой файла setup.exe и использованием батника, кот. распаковывает дрова с диска на винт, с помощью спец. утилитки рекурсивно сканирует папки с дровами и вносит в реестр пути для поиска дров, потом запускается оригинальный setup.exe как start setup.exe, выполняется и после завершения отдает управлению опять батнику, кот. подчищает за собой и возвращет реестр в первозданный вид.
преимущества - экономия места (у меня дрова на 120 мег, занимают в архиве 32), ненужно прописывать все папки с дровами в ключе OemPnPDriversPath.
недостатки - сложность в применении для начинающих, и самое главное изменение дистрибутива, т.е. любой вид установки буть то unattend или нет, будет использовать данный метод
Тема на MSFN - SOLVED: drivers from CD (http://www.msfn.org/board/index.php?act=Print&client=printer&f=88&t=12566)

Vadikan
14-12-2004, 20:38
A если положить драйверы в SFX архив (где указать путь для распаковки %systemdrive%\Drivers) разместить его, скажем в $OEM$\$1\Temp и прописать команду на его запуск в winnt.sif
[GuiUnattended]
DetachedProgram = "%SystemDrive%\Temp\drivers.exe"
Тогда он запустится на Т-39, распакует архив, а когда дело дойдет до установки драйверов, то в соответствии с путем в OemPnPDriversPath они и поставятся. Т.е. [Unattended]
OemPnPDriversPath="Drivers\000_intel_INF;Drivers\001_gigabit_LAN;Drivers\002_monitor"
Мне кажется так проще будет, чем какие-то утилиты применять (хотя я тему drivers from CD даже не читал, сорри)

EgOrus
15-12-2004, 10:37
Vadikan
все правильно проще, просто есть кое какие ньюансы, кот. нужно проверить, будут ли они работать. Когда я этот вариант рассматривал, что-то меня не устроило.
А для qeraser, наверное подойдет, я поспешил с таким категоричным заявлением - нельзя :)

Появился вопрос связанный установкой неподписанных драйверов (без WHQL):
в winnt.sif есть 2 ключа отвечающие за поведение системы при установки драйверов без WHQL подписи
DriverSigningPolicy=Ignore - с этим все понятно, позволяет устанавливать неподписанные драйвера
NonDriverSigningPolicy=Ignore - этот насколько я понимаю отвечает за поведение системы при нахождение неподписанного драйвера (не выдает предупреждения о том что драйвер не подписан)
С другой стороны я читал на msfn, что неподписанные дрова не устанавливаются даже если в winnt.key выставлены вышеуказанные ключи. Объясняется это тем что за установку отвечает 3 ключика в реестре
'HKLM\Software\Microsoft\Driver Signing'
'HKCU\Software\Microsoft\Driver Signing'
'HKCU\Software\Policies\Microsoft\Windows NT\Driver Signing\BehaviorOnFailedVerify'
Причем первый ключ виндовый setup при запуске автоматически выставляется на 1, даже если его ручками выставить нужным образом в HIVESFT.INF. Второй ключ винда автоматически выставляет с 0 (Ignore) на 1 (Warn), при каждой попытке установить неподписанный драйвер (как пишет microsoft, это одна из функций ситсемы WindowsFileProtection).
По идее как раз эту проблему должны решать ключи DriverSigningPolicy и NonDriverSigningPolicy.

Откуда взялась проблема? Сейчас я использую вышеописанный метод с подменой setup.exe и запуском батника, кот. стартовал помимо всего прочего утилитку WatchDriverSigningPolicy.exe, отслеживающую вышеуказанные ключи в реестре и правила их нужным образом когда необходимо.
В связи с постом Vadikan хочу снова попробовать методу установки дров на t39, но не уверен в действенности ключей DriverSigningPolicy и NonDriverSigningPolicy, и времени на тестирование возможных вариаций мало. Есть конечно простой выход - прописать запуск WatchDriverSigningPolicy.exe после распаковки дров через сценарий SFX. Но хочется для себя уяснить необходимость этого.
Кто нибудь точно может сказать достаточно ли прописать лишь 2 ключа в winnt.sif, или нужно предпринимать еще что-то, для нормальной установки неподписанных драйверов.

VseDoFeNi
16-12-2004, 00:18
2 ALL
C дровами для nVidia детально не разбирался. Дрова для ATI...
Раньше делал так:
1 в TC извлекал из инсталятора папку 2KXP_INF
2 копируем ее содержимое в $OEM$\$1\DRIVERS\GR\ATI
3 туда же кладем папку с распакованной control-panel
4 в любой батник, запускаемый из cmdlines.txt добавляем строку
if exist %WINDIR%\system32\drivers\ati2mtag.sys start /wait %SystemDrive%\Drivers\Gr\ATI\control-panel\Setup.exe /S

В результате получаем установленные драйверы видюшки ATI и Control-Panel.
Подобную процедуру можно проделать с драйверами Intel Extreme Graphics.

Ну и не забыть прописать правильные пути в winnt.sif.

Можно конечно сэкономить место на CD с упаковкой драйверов и распаковкой их на Т-39, но это отдельная тема.

qeraser
16-12-2004, 11:59
EgOrus
Неподписаные драйвера NVIDIA, которые у меня были не установились (из OemPnPDriversPath). Официальные же (подписаные) встали как положено. На MSFN слышал, что большинство неподписаных все-же устанавливается. Поэтому надо тестить самому. Это что касается NVIDIA, как с другими драйверами, не знаю. Интересно что думает по этому поводу народ, обладающий большей статистикой и опытом установки дров.

Способ от Vadikan обладает одним неудобством:
в секцию DetachedProgram можно внести только один параметр:
например DetachedProgram = "%SystemDrive%\Temp\drivers.exe".
Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать. Хотя это не критично, но создает определенную путаницу в структуре диска. Нет наглядности расположения программ, драйверов и т.д, ведь не все надо архивировать. Что думаете по этому поводу?

Vadikan
17-12-2004, 00:12
qeraser
Способ от Vadikan обладает одним неудобством:
в секцию DetachedProgram можно внести только один параметр:
например DetachedProgram = "%SystemDrive%\Temp\drivers.exe".
Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать. Хм, а если *.CMD файл создать, указать к нему путь, а в нем уже прописать команды на запуск остальных задач?

qeraser
17-12-2004, 12:25
Vadikan

Я не подумал о таком варианте. Спасибо, буду пробовать.

EgOrus
17-12-2004, 13:07
qeraser
Vadikan
Я же писал что бат файлы на t39 не отрабатываются (даже через cmd.exe /c run.cmd), и это один из ньюансов. Компилите exe'шники.

TrueAlex
17-12-2004, 14:24
EgOrus
Можно winrar'ом заархивировать этот cmd в exe с автозапуском этого cmd, который и запустит все остальное ;))))))))))))

В дистрибутиве винды есть файл drivers.cab, который, как я понимаю, как раз содержит все виндовые дрова. Может быть можно в него добавить и свои? По-крайней мере, XPCreate с какой-то целью его перепаковывает....

EgOrus
17-12-2004, 14:42
TrueAlex
Не уверен что запустит, но идея интересная, я думаю что на этом этапе установки запуск cmd-файлов просто ограничен. тогда уж легче сделать каскад из sfx-архивов: прописать запуск маркерного архива по окончению распаковки sfx-архива с дровами.
Можно и вручную драйвера добавить и через nlite, вариантов много, но смысл в том чтобы как можно меньше менять source-дистрибутив, т.к. если мне нужна чистая установка, предположем для отладки или установки на глючное железо, то я не смогу ее осуществить, т.к. изменен сам дистрибутив.Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать.Получится если только вариантов установки 2, одна с маркерами другая без, в архиве ведь должен быть только маркер для одной установки, а если дял другой мне нужно тоже эти же дрова использовать то не выйдет.

Кстати мне до сих пор не удалось заставить работать батники (или скомпилить нормальный рабочий exe из bat'ника, - у меня пока batники с переменными и конструкциями типа for... не выполняются). Думаю может плюнуть и написать длиннющую CMD строчку кот. будет заменять батник.

VseDoFeNi
17-12-2004, 18:56
EgOrus

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


Короче делаем так:
winn1.sif
***
***
OemPnPDriversPath="Drivers\пути_ко_всем_дровам
***
DetachedProgram = "%systemdrive%\drivers\drivers.exe"
***
и т.д. в том же духе

winn2.sif
***
OemPnPDriversPath="Drivers\исключаем_ненужные_дрова
***
DetachedProgram = "%systemdrive%\drivers\drivers.exe"
***
и т.д. и т.п.

winn3.sif
***
OemPnPDriversPath="Drivers\можно_вааще_ничего_не_писать
***
DetachedProgram = можно_вааще_ничего_не_писать
***
все остальное.

winn4.sif
winn5.sif
winn6.sif

Вариантов море, давно юзаю. Хоть для каждой материнки свой sif пиши или для каждого случая. И плевать на то, что все это будет скопировано на винт, в конце установки закилять не долго. А менять будешь только драйверы в sfx архиве или что там еще кому нибудь надо.
Кстати, ни nLite ни Xplode-----XPCreate не юзаю.

EgOrus
17-12-2004, 19:29
VseDoFeNi
гм... а это к чему? обсуждается совсем не это, то что ты описал и так известно, имелось ввиду интеграцию дров в drivers.cab дистрибутива винды, и проблема при выборе маркера, т.к. как раз в ключе DetachedProgram, и выполняется sfx-архив, кот. распаковывает маркерный файл, определяющий что из софта ставить и какие настройки применять. В условиях ограниченности CD 700 мегабайтами, паковать одно и тоже не имеет смысла.

EgOrus
17-12-2004, 20:21
Можно winrar'ом заархивировать этот cmd в exe с автозапуском этого cmdработает :) правда локальные переменные созданные внутри cmd, не воспринимаются...

Vadikan
17-12-2004, 21:07
EgOrusправда локальные переменные созданные внутри cmd, не воспринимаются...Это задаваемые через SET?

EgOrus
17-12-2004, 21:29
Vadikan
да нет, где-то ошибся, все вроде нормально, работает.
Это даже лучше чем компилить exe, т.к. позволяет в дальнейшем редактировать cmd.
Сейчас еще попробую vbs, если с ним не получится, опять поропбую cmd-файлы прилепить.
TrueAlex
большой респект за идею :)

Не получилось, а vbs вообще не должны на этой стадии установки работать :( Даже cmd.exe на этой стадии не запускаются.

TrueAlex
18-12-2004, 09:43
EgOrus
Я, честно говоря, это в шутку сказал, не думал, что действительно срабоает :)
Кстати, тогда вместо Winrar можно еще использовать iexpress. Ну это для тех кого вопрос лицензионности волнует или нету Winrar.

Я кстати, немного в тему не въезжаю ;) А зачем делать эти маркерные файлы и т.п. вещи применительно к драйверам? Почему не запихать все в одном месте, винда же сама найдет, то что надо... Или бывают какие-то проблемы при установке? Я пока что не сталкивался, правда и устанавливал, только лишь на две машины, ну и на виртуальные еще...

EgOrus
20-12-2004, 21:44
А зачем делать эти маркерные файлы и т.п. вещи применительно к драйверам?Проблема была в общем-то одна: при записи на CD часто нехватает места, особенно в случае когда делаешь универсальный не DVD диск, поэтому драйвера пакуются, и распаковываются в t39, чтобы уже быть готовыми к употреблению виндовым сетапом :) там же должны распаковываться маркерные файлы (если используются), вот и была проблема совместить распаковку этих 2х архивов в DetachedProgram. Маркерные файлы к дровам отношения не имеют - это лишь один из способов создания различных установок с одного диска (т.е. чтобы разные файлы ответов использовали разные наборы софта и настроек).




© OSzone.net 2001-2012