Войти

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


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 27 28

JohnnyD
23-08-2011, 22:25
он сделан отдельным паком » Знаю, скачан, распакован куда положено.
nView Desktop Manager является частью панели » Нет, это отдельный компонент драйвера, у него даже установщик свой (nviewsetup.exe). Кстати, как удобнее всего пожать кучу файлов в CAB без сжатия?
из-из кривого родного установщика » Да, я уже в курсе (http://forum.oszone.net/post-1737591-1153.html). Так что либо через анус, либо дрова не выше 258.96 :(

Пытался как обычно - сначала просто драйвер от Башрата, перепакованный здешним скриптом, потом с перепаковкой nView обратно в каб, как в оригинале... И так и эдак - болт. Правда, их оба (nView и PhysX) можно и через финишер поставить, но он криво работает - 2 раза запускает установщик, почему-то думая, что у меня на компе стоят и обычная и мобильная видюхи. :) И с таг-файлами не поиграешься - все названия то одинаковые.

Опытным путем вычислил последние версии дров со "старым" инсталлятором: 258.96_desktop(notebook)_winxp_32bit_international_whql и 259.81-Quadro-winxp-32bit-international-whql - может понадобится кому...

ya158
23-08-2011, 22:55
JohnnyD,
Мне сейчас не на чем эксперементировать. Вот какие задумки - после обработке моим скриптом путь к PhysX получается "%DPSROOT%\D\V\N1\PhysX_9.10.0514_SystemSoftware.msi", а в оригинале он лежит "%DPSROOT%\D\G\N1\PhysX_9.10.0514_SystemSoftware.msi". Может в этом проблема?

Далее. Поскольку, если я не ошибаюсь, на Т34 не работает и оригинальный NvCplSetupInt.exe, то попробовать подсунуть INF-файлу драйвера вместо оригинального NvCplSetupInt.exe пустышку (вопрос: проверяет ли INF-файл драйвера установилась ли или нет панель и вся остальная херемория?). Если драйвер это проглотит, то тогда панельможно пробовать устанавливать через финишер.

Кстати, как удобнее всего пожать кучу файлов в CAB без сжатия? »
Что-то типа
Tool\cabarc -m NONE -p -r -P ПАПКА N ФАЙЛ.Cab

потом с перепаковкой nView обратно в каб, как в оригинале... »
Это как - просто удаляешь папку NvCplSetupInt и заменяешь мой фейк NvCplSetupInt.exe на оригинальный?

но он криво работает - 2 раза запускает установщик, почему-то думая, что у меня на компе стоят и обычная и мобильная видюхи. »
Это ерунда - если пройдёт фокус с пустышкой на Т39, то можно написать скрипт, который будет проверять установлена или нет панель (по наличию файлов панели в Program Files или ещё чего-нибудь) и, если не установлена, то запускать инсталлятор. Запускать такой скрипт можно через финишер.

JohnnyD
23-08-2011, 23:33
Может в этом проблема? » Нет, это я исправил.

Это как - просто удаляешь папку NvCplSetupInt и заменяешь мой фейк NvCplSetupInt.exe на оригинальный? » Ты путаешь панель и nView - это 2 разных компонента драйвера. С установкой панели (NvCplSetupInt.exe) то как раз в новых версиях проблем нет. А вот nView и PhysX не ставятся при обработке INF-а, как было раньше. Перепаковка обратно в CAB - потому что в оригинальном драйвере nView запакован в него (кроме сетапа), а не раскидан по всей папке как у Башрата в виде отдельных файлов. И (в старой версии драйверов) он тупо не ставится, если не запакован в CAB, а раскидан по всей папке, как у Башрата. Теперь понятно? :) Запаковываю в CAB, естественно, после обработки здешним скриптом.

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

ya158
24-08-2011, 00:09
Запаковываю в CAB, естественно, после обработки здешним скриптом. »
И после этого всё равно не идёт? А INF-файл драйвера точно запускает nviewsetup.exe на Т39? Запаковывать в каб силами скрипта в принципе не ппроблема.

Ну и зачем скрипт писать, финишер и сам умеет это проверять. »
Разве финишер проверяет установлен уже PhysX или нет? Он проверяет установлен ли драйвер (два раза) и, если драйвер установлен (проверка по таг-файлу), то устанавливает PhysX (тоже два раза, если таг-файлы совпадают). Скрипт же будет запускаться по таг-файлу (два раза), проверять установлен ли уже PhysX или нет, и устанавливать первый раз PhysX и просто завершаться без установки PhysX второй раз.

JohnnyD
24-08-2011, 01:42
И после этого всё равно не идёт? А INF-файл драйвера точно запускает nviewsetup.exe на Т39? » Нет, не идет.
Не знаю - видимо нет. В старых версиях - запускал, а сейчас, как я понимаю, все на откуп оригинальному setup.exe отдано...
Разве финишер проверяет установлен уже PhysX или нет? » Да легко! Он умеет проверять наличие любого файла в любом месте, на момент запуска финишера.
exc_1_tagFiles = 4
exc_1_tagFile1 = "%SystemDrive%\ATICCC.ins"
exc_1_tagFile2 = "%DPSROOT%\D\3run\vcredist_x86_2005_sp1\vcredist.msi"
exc_1_tagFile3 = "%DPSROOT%\D\3run\vcredist_x86_2008_sp1.exe"
exc_1_tagFile4 = "%SystemRoot%\system32\atidemgx.dll"

Можно ведь и так сделать:
exc_1_tagFiles = 1
exc_1_tagFile1 = "%ProgramFiles%\NVIDIA Corporation\PhysX\Common\PhysXLoader.dll"

Все это прописывается в INI драйвпака. Слава богу, как раз с тэг-файлами финишер работает отлично. Только не прокатит, по причинам, описанным мною выше.

Скрипт же будет запускаться по таг-файлу (два раза), проверять установлен ли уже PhysX или нет, и устанавливать первый раз PhysX и просто завершаться без установки PhysX второй раз. » Ну, тоже идея. И для установщика nView такой же скрипт можно сделать... Можно еще с параметром exc_1_-infFiles = 0 в секции [NM] поиграться, я так понял - это если хвид устройства совпадает с хвидом прописанном в inf-е из этой команды - то условие не выполняется... Можно там попробовать прописать %DPSROOT%\D\V\N1\NV4*.inf Но я так не пробовал.

ya158
24-08-2011, 08:54
Не знаю - видимо нет. В старых версиях - запускал, а сейчас, как я понимаю, все на откуп оригинальному setup.exe отдано... »
Для проверки надо сделать простой скрипт типа
ECHO nviewsetup.exe запускался>>c:\1.txt
Далее сделать из батника exe-шник и назвать его nviewsetup.exe. Если после установки на диске С: появится файл 1.txt с текстом "nviewsetup.exe запускался", то nviewsetup.exe запускался. Также можно проверить зауск setup.exe - в нём написать:

nviewsetup.exe
ECHO setup.exe запускался>>c:\1.txt

Да легко! Он умеет проверять наличие любого файла в любом месте, на момент запуска финишера. »
Умеет ли он проверять наличие файла и запускать установку только при ОТСУТСТВИИ определённого файла? Где-то есть описание ключей?

JohnnyD
24-08-2011, 09:37
Для проверки надо сделать простой скрипт типа » Не работает. После запуска файл не создается.
Умеет ли он проверять наличие файла и запускать установку только при ОТСУТСТВИИ определённого файла? Где-то есть описание ключей? » Не знаю, вроде я в INI таких команд не видел.
На форуме Башрата, видимо...

ya158
24-08-2011, 14:36
Не работает. После запуска файл не создается. »
Надеюсь ты не просто переименовал батник, а воспользовался специальной утилитой для преобразования bat2exe? Пробовал ли отот файлик называть не nviewsetup.exe, а setup.exe ?
Кстати сам установщик панели NvCplSetupInt.exe (мой, а не оригинальный) нормально запускается и отрабатывает из inf-файла или его надо запускать потом с помощью финишера? Если он нормально запускается, то можно в него внести строку для запуска чего-угодно лишь бы это сработало на Т39. Хотя можно и не на Т39, а позже...

Не знаю, вроде я в INI таких команд не видел. »
Тогда возвращаемся в скрипту ;)

JohnnyD
24-08-2011, 15:48
Надеюсь ты не просто переименовал батника, а воспользовался специальной утилитой » Сначала тупо переименовал, а потом уже воспользовался. :) Тогда заработало. Только проверить еще не успел.

Кстати сам установщик панели NvCplSetupInt.exe (мой, а не оригинальный) нормально запускается и отрабатывает из inf-файла » Уже стораз писал, что ДА. :)

то можно в него внести строку для запуска чего-угодно » Ну вот и 3-й вариант нарисовался. :) Установщик физикса запускается с ключем /qn а установщик nView - с ключем -s

ya158
24-08-2011, 20:10
Давай подведём итог. Надо сделать:
1. Собирать автоматически файлы nView в каб (или это не обязательно?). С этим небольшая проблемка - вдруг в следующих версиях драйвера измениться набор файлов.
2. Добавить в мой NvCplSetupInt.exe команды для запуска установщиков физикса и нвью (они точно установятся на Т39?).
3. Сделать скрипт для финишера для установки физикса (если физикс не ставится на Т39), чтобы не запускалась два раза.

Или я что-то забыл?

JohnnyD
24-08-2011, 23:45
1. Было бы неплохо (CAB пакуем без сжатия). Потом все файлы из каталога удаляем, за исключением nviewsetup.exe Набор файлов там обычно не меняется, но если что - можно ведь и адаптировать...
2. Может и установятся, а может и нет - проверять надо. :)
3. Это только если 2-й пункт не прокатит.

Вроде все.

ya158
25-08-2011, 00:30
JohnnyD,
Давай попробуем. Только у меня не на чем тестировать. Попробую завтра сделать необходимые исправления и дать тебе на тестирование. Неплохо было бы, чтобы ты пока проверил второй пункт.

JohnnyD
25-08-2011, 00:38
чтобы ты пока проверил второй пункт » И как я его проверю, без переделанного запускатора то?

ya158
25-08-2011, 00:57
И как я его проверю, без переделанного запускатора то? »
Извини - ступил :)
Лови запускатор. Физикс должен находится в той же папке, что и запускатор и называться PhysX_9.10.0514_SystemSoftware.msi. Файлы для nviewsetup.exe надо запаковать в ручную

JohnnyD
25-08-2011, 01:07
ya158, ок, завтра проверю - сейчас поздно уже...

JohnnyD
26-08-2011, 18:31
Отчет: Физикс установился, а nView - нет. Видимо, ошибка с \wait в батнике. /wait же нужно вроде...
Поменял через WinHex - не установилось ничего, в том числе и драйвер. :o

Может надо панель тоже с /wait запускать, чтобы все по порядку ставилось, не перекрывая друг друга? Типа сначала с wait панель, потом с wait nView, а потом с wait Физикс... Или может у .msi какой-нибудь спец-ключ для этого есть, чтобы ждать?

ya158
26-08-2011, 19:51
JohnnyD,
NvCplSetupInt.exe - это обычный sfx-архив, в котором находится батник NvCplSetupInt.cmd. Можешь его подправить и запустить makeNvCplSetupInt.cmd - создастся NvCplSetupInt.exe (все файлы находятся в папке SFX.
Дописал скрипт, чтобы каб создавался автоматически

JohnnyD
26-08-2011, 20:31
NvCplSetupInt.exe - это обычный sfx-архив, в котором находится батник NvCplSetupInt.cmd. » Действительно, что-то ступил я. :(

А использование ключа fm0 в строке запуска батника чем обусловлено? Вроде не встречал такого ни у кого...

ya158
26-08-2011, 21:46
А использование ключа fm0 в строке запуска батника чем обусловлено? »
Да это видимо из какого-то другого инсталятора - забыл убрать. Я перепаковываю инсталяторы программ имено с помощью таких вот конструкций.

JohnnyD
26-08-2011, 23:48
ya158, Понятно. Попробую убрать. Кстати, конструкция start /wait "%1\nviewsetup.exe" -s не сработала (ошибка Windows не удалось найти -s), сейчас попробую просто start /wait %1\nviewsetup.exe -s

Кстати, в Quadro дровах вообще нет Физикса, как бы это в запускаторе учесть?




© OSzone.net 2001-2012