Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Перепаковка пакетов драйверов

Ответить
Настройки темы
Перепаковка пакетов драйверов

Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: ya158
Дата: 27-09-2011
Описание: Обновление
Вложения
Тип файла: 7z RPDRIVERS291.7z
(337.9 Kb, 280 просмотров)
Тип файла: 7z DelLangDP.7z
(2.96 Mb, 125 просмотров)
Поскольку уважаемый Fanzuga забросил эту тему, то она передана мне.
В шапке скрипт RPDRIVERS291.7z от Fanzuga - старый и для новых драйвер-паков не пригоден. Выложен для истории и самостоятельного изучения.
Предыдущая версия шапки
Цитата Fanzuga:
Хотелось бы поделиться с общественностью опытом перепаковки драйверпаков от Bashrat the Sneaky © и сделанных на его основе.
Зачем это надо? Не секрет, что Башрат делает свои пакеты на основе многоязычных инсталляторов. Что это означает на практике? На практике это означает, что в в пакете масса условно бесполезных файлов, справка и локализация на разных языках. Вам нужна справка к драйверу Nvidia на японском языке? Мне нет.
До мысли выкорчевывать их я дошел сравнительно давно. Однако с некоторых пор мне надоело делать это вручную, то лишнее удалишь, но ненужное оставишь.

Поэтому я написал сценарий автоматизирующий эту рутинную операцию:

Выгоды очевидны:
Меньше места на диске.
Быстрее распаковка/сканирование -> Установка в целом.

Версия 2.91 перепаковщика от 16.04.2008. Боекомплект. Ссылка в шапке
Предназначен для перепаковки и сортировки пакетов драйверов видео, аудио и сеть. Удаляет файлы локализации (кроме рус. и англ.), контрольные панели ATi, сортирует пакеты по производителям. Внесены изменения в связи с изменением структуры драйверпаков в версии 8.04.

Примерный результат следующий: из пакетов GRAPHICS A, B и SOUND A, B общим объемом 300 Мб путем чистки и перепаковки были получены пакеты объемом 199 Мб. При этом редкие драйверы были упакованы отдельно, при желании их легко исключить из дистрибутива сэкономив еще ок. 60 Мб.

В целом инструмент оттестирован и готов к работе. Если кто-то возьмется за дальнейшее совершенствование, милости прошу, готов ответить на вопросы.

Принцип работы:
Распаковываете содержимое архива в папку на диске.
В архиве содержится консольная версия архиватора 7-zip (4.57) необходимая для работы скрипта.
Копируете пакеты драйверов, которые хотите перепаковать.
ВНИМАНИЕ!!! Обязательно сохраните оригинальную версию пакета.

В данной теме прошу отписываться о багах, опыте установки перепакованных пакетов, а также вносить предложения по раширению функционала.

Если Вы хотите чтобы перепаковщик драйверов автоматически удалял неиспользующиеся драйвера, проголосуйте в теме Редкое железо.

Сопутствующие темы:
Интеграция драйверов
Пакеты драйверов от Bashrat the Sneaky

Enjoy!


Моя версия скриптов для перепаковки драйверпаков от Башрата
Внимание! Исходные драйверпаки теперь надо класть в папку OLD.

История последних изменений
B]27.09.11[/b]
Адаптировал скрипты под последние на данный момент беты и финалы. Обновил ATI Tray Tools до 1.7.9.1571 (beta). Совместно с JohnnyD отлажена установка панелей nVidia и PhysX
28.08.10
Адаптировал скрипты под последние на данный момент беты и финалы. Обновил ATI Tray Tools до 1.7.9.1560 (beta) и 7za.exe до 9.20. Драйверпаки теперь перепаковываются вместе с ini файлами для установки панелей (для video драйверпаков пути в этих файлах меняются с D\G на D\V)
01.09.10
Адаптировал скрипты под последние на данный момент беты и финалы. Драверпаки перепаковываются теперь так, чтобы файлы inf и ini(только из корня) были расположены в начале архива (автор идеи BadPointer. Подробнее.)
06.06.10
Исправлена незначительная ошибка (подробнее)
21.05.10
Благодаря помощи YikxX окончательно доделал перепаковку панелей nVidia (NvCplSetupInt.exe). Обновил до версии 1.6.9.1486 и перепаковал инсталлятор ATI Tray Tools (добавил в состав инсталлятора русскую справку для версии v1.0.1.527) - для тихой установки используйте ключи: -y -gm2 -fm0.
15.05.10
Исправлена ошибка. Аддон для устранения ошибки, о которой подробнее написано здесь и здесь создавался не только при nvcod.dll с версией большей или равной 1.9.14.99. Те, кто уже скачал могут не скачивать заново, а заменить в файле DelLangDP_Video.cmd в 290 строке число 19144 на 1914499
13.05.10
Благодаря помощи YikxX и Mr dUSHA, ещё раз переделал перепаковку панелей nVidia (NvCplSetupInt.exe). Тестировал на полурабочей карточке - по косвенным признакам панели установились. Жду тестирования от YikxX на ноутбуке. Скрипты актуальны под последнии беты. Введено определение имени получаемого драйверпака на основе имён исходных драйверпаков. При обнаружении в драйверах nVidia соустановщика nvcod.dll с версией большей или равной 1.9.14.99 выводится предупреждение и создаётся аддон для устранения ошибки, о которой подробнее написано здесь и здесь.
22.04.10
Благодаря помощи YikxX и Mr dUSHA, переделал перепаковку панелей nVidia (NvCplSetupInt.exe). Скрипты актуальны под последнии финалы.
12.01.10
Адаптировал скрипты под последнии на данный момент беты и финалы. По сравнению с предыдущей версией изменились только скрипты, поэтому можно простоскачать архив со скриптами dp.7z.
30.11.09
Адаптировал скрипты под последнии на данный момент беты и уменьшил размер архива.
01.02.09
Исправлены ошибки.
29.01.09
Исправлены ошибки.
Добавлена обработка Audigi и XFI.
Изменена структура папок (новые скрипты не подходят для старой версии).
22.04.09
Обновлены скрипты для совместимости с последними ночными билдами
Исправлены ошибки.
30.07.09
Обновлены скрипты.
Немного изменена логика работы
Добавлена обработка панели nVidia (пока не проверялось на реальной машине)

Отправлено: 05:16, 01-12-2006

 

Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


Я все равно не понял что с чем ты сравнивал. Хорошо бы все поконкретней расписывать: названия паков, размеры, методы сжатия.

Цитата ya158:
Так что при использовании словаря 128 - выигрыш в размере пака только для видео - 10Мб, что для CD-дистрибутива важно. Буду делать выбор размера словаря.
Это получается разница в 10%, тогда при худшем раскладе разница должна быть 4%, а обычно меньше. Я предполагаю ты используешь мой скрипт с 32МБ словарем? А какие показатели со словарем 48 и 64?

Цитата ya158:
Правда мои параметры при использовании 128Мб словаря дают меньший размер по сравнению с параметрами скрипта BadPointer-а аж в ~300kб .
Тогда это с чем было сравнено.

Цитата ya158:
Не обязательно. У нас на работе многие компьютеры вообще не имеют приводов. Есть просто USB-CD. И потом, по-моему, много памяти надо при упаковке, а не при распаковке
Для распаковки действительно требуется меньше памяти, но требуется выделить ее как минимум под словарь. При распаковке драйверпаков с 64мб словарем, я часто видел окно ошибки выдаваемое Windows, когда тот не успевает выделить необходимое количество виртуальной памяти за определенное время и это заканчивается тем, что после длительной пробуксовки с файлом подкачки, распаковка так и не происходит успешно. В таких случаях я распаковываю драйвер на другом компе и копирую на флешку распакованный драйвер.

Кстати, я использую 16GB флешку("Инь и Ян" от QUMO) с переключателем защиты от записи(чтобы вирусы не заражали флешку). С USB-CD все равно не всегда можно запустить загрузочный диск, тем более на старом компе.

Отправлено: 09:28, 23-08-2010 | #431



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496

Профиль | Отправить PM | Цитировать


Вот что показали тесты.
Я упаковывал папку D\V, в которой находятся драйвера из DP_Graphics_A_wnt5_x86-32_1008b1.7z, DP_Graphics_B_wnt5_x86-32_1007r1.7z, DP_Graphics_C_wnt5_x86-32_1007r1.7z после обработки моим скриптом. Размер папки 981 537 012 байт. далее упаковываю при помощи следующего скрипта:
Код: Выделить весь код
set nameDP=DP_Graphics
Tool\hidcon Tool\7za a %nameDP%.7Z D\V\*  -ssw -mmt -m0=BCJ2 -m1=LZMA:d128m:fb128 -m2=LZMA:d19:fb273 -m3=LZMA:d19:fb273 -mb0:1 -mb0s1:2 -mb0s2:3
Tool\hidcon Tool\7za a %nameDP%1.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d128m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%1.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d128m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
Tool\hidcon Tool\7za a %nameDP%2.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d64m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%2.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d64m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
Tool\hidcon Tool\7za a %nameDP%3.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d32m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%3.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d32m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
В результате получаю:
DP_Graphics.7Z (128 Мб) 144 324 687 байт
DP_Graphics1.7Z(128 Мб) 144 377 423 байт
DP_Graphics2.7Z(64 Мб) 149 540 262 байт
DP_Graphics3.7Z(32 Мб) 154 219 034 байт

По поводу 300 кб я ошибся (запускал упаковку с некорректными параметрами).
По поводу распаковки. Если ПКМ на папке -> "Добавить к архиву 7z", то в появившемся окне пишется память, необходимая для упаковки и распаковки. Там нет возможности выбрать 128Мб словарь, но для 24Мб словаря требуется для распаковки 26 Мб памяти, для 32 - 34Мб, для 48 - 50, для 64 - 66. То есть можно предположить, что для распаковки архива с 128Мб словарём потребуется не более 140 Мб памяти. Я думаю, что это не много.

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 15:33, 23-08-2010 | #432


Аватара для magon

Ветеран


Сообщения: 506
Благодарности: 72

Профиль | Отправить PM | Цитировать


Цитата ya158:
То есть можно предположить, что для распаковки архива с 128Мб словарём потребуется не более 140 Мб памяти. Я думаю, что это не много. »
Это не считая той памяти, которую занимает среда предустановки - это еще порядка 128 МБ

Отправлено: 16:43, 23-08-2010 | #433


Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


DP_Graphics.7Z (128 Мб) 144 324 687 байт (это 94% от пака 32мб или 97% от пака 64мб)
DP_Graphics1.7Z(128 Мб) 144 377 423 байт (это 94% от пака 32мб или 97% от пака 64мб)
DP_Graphics2.7Z(64 Мб) 149 540 262 байт (это 97% от пака 32мб)
DP_Graphics3.7Z(32 Мб) 154 219 034 байт
Таким образом можно сказать каждое увеличение словаря вдвое улучшает сжатие на 3%.


Может такая ситуация нераспространенная, но у меня на работе у многих относительно офисных компов 256MB, а есть еще несколько Pentum III. Также DriverPack Solution занимает в памяти порядка 20МБ(это еще не много если учесть что он чуть ли весь браузер IE подгружает). 7z при холостой работе использует порядка 10МБ. Это относительно немного, но на компах с нехваткой памяти все это будет свопиться на диск и затем подгружаться заново.
Конечно с Micorsoft Office тоже не очень комфортно работать на таких компах и некоторые добиваются того чтобы им добавили память.

Я не настаиваю на конкретном размере, просто результаты измерений показали что дальнее увеличение размера словаря дает все меньший выигрыш и поэтому я рекомендовал 32, как наиболее сбалансированный размер. Если смысл перепаковки в этой ветке добиться максимальной степени сжатия то я не возражаю.


Вообще-то всю эту перепаковку я затеивал в первую очередь чтобы ускорить индексацию паков за счет перемещения inf в начало архива, а подбор оптимального размера словаря было уже второстепенным вопросом. В этой связи я думаю тебе стоит использовать параметры без добавки "D\V\"(то есть как было в моем скрипте), а то я подозреваю сейчас такая перепаковка не увеличит скорость индексации. В идеале я бы хотел чтобы все сборщики драйверпаков упаковывали таким образом.

Отправлено: 17:12, 23-08-2010 | #434


Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496

Профиль | Отправить PM | Цитировать


Цитата BadPointer:
Таким образом можно сказать каждое увеличение словаря вдвое улучшает сжатие на 3%. »
Дело не в процентах, а в самих мегобайтах . 10 Мб на CD - это достаточно много, можно добавить аддон или какой-нибудь драйверпак.

Цитата BadPointer:
. Если смысл перепаковки в этой ветке добиться максимальной степени сжатия »
Не максимального сжатия, а минимального размера - для этого и удаляются языки и некоторые панели.

Цитата BadPointer:
В этой связи я думаю тебе стоит использовать параметры без добавки "D\V\" »
Эта добавка указывает из какой папки брать драйвера (посмотри повнимательнее мой полный скрипт).

Вообщем, я решил, что добавлю выбор размера словаря при упаковке и сделаю перемещение inf в начало архива. Можно сделать выбор двумя способами:
1. Запрашивать у пользователя размер в виде числа. Но что будет при вводе например не 128 (или 32), а 127 (или 33) или же вообще 1000? Как отреагирует 7za на размер словаря 127, 33 или 1000? Правда можно сделать проверку на то, чтобы словарь был равен только одному из чисел 32, 48, 64 или 128.
2. Спрашивать у пользователя, хочет ли он использовать словарь 128 Мб или нет. При отказе словарь устанавливается равным 32. Соответственно, нельзя будет выбрать словарь 64 или 48.

Какой вариант лучше?

ЗЫ. Никто не знает как в командной строке организовать так, чтобы задавался выбор, после чего по прошествии какого-нибудь времени выбиралось бы значение по умолчанию.

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 20:52, 23-08-2010 | #435


Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


Размер словаря меня не так интересует: сам решай что лучше. Я просто дал рекомендацию по оптимальному размеру так как эта информация может быть полезной для сборщиков паков для принятия решения.
Ты можешь сделать возможность выбора размера словаря, наподобие того как я сделал в своем скрипте. Для создания интерактивности в bat придется привлекать дополнительные утилиты. Командная строка в Windows все-таки не такая функциональная как в Linux. Я думаю размер словаря может быть любым, но размер в степени двойки более оптимален во многих случаях.

Насчет ускорения индексации.
"D\V\*.ini" - это совершенно точно неправильно. Меня интересуют не все ini, а только те что находятся в корне пака(это ini для finisher'а). Твой скрипт не помещает файлы finisher'а в начало архива. Также я подозреваю что указание пути к inf файлам может привести к тому что только inf из этой папки будут добавлены, а нужно чтобы из всех папок.

Отправлено: 21:09, 23-08-2010 | #436


Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496

Профиль | Отправить PM | Цитировать


Цитата BadPointer:
"D\V\*.ini" - это совершенно точно неправильно. Меня интересуют не все ini, а только те что находятся в корне пака(это ini для finisher'а). Твой скрипт не помещает файлы finisher'а в начало архива. Также я подозреваю что указание пути к inf файлам может привести к тому что только inf из этой папки будут добавлены, а нужно чтобы из всех папок. »
Проверю.

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 22:01, 23-08-2010 | #437


Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496

Профиль | Отправить PM | Цитировать


Обновил перепаковщик.

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 01-09-2010 | #438


Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


По поводу оптимизации inf'ов.

Твой скрипт добавит добавит файл DriverPack_Sound_*.ini дважды, причем во второй раз он будет добавлен где-то в центре или ближе к концу архива поскольку при втором вызове 7z этот ini файл не занесен в список исключений. В результате DPS и DIA придется распаковывать множество файлов чтобы добраться до этого единственного файла. Таким образом ускорение индексации при такой перепаковке не гарантируется.

Отправлено: 19:53, 01-09-2010 | #439


Ветеран


Автор проектов


Сообщения: 1579
Благодарности: 496

Профиль | Отправить PM | Цитировать


Цитата BadPointer:
Твой скрипт добавит добавит файл DriverPack_Sound_*.ini дважды »
Из чего это следует?

-------
Объективная реальность есть бред, вызванный недостатком алкоголя в крови.
Оптимизм есть недостаток информации.
Хочу быть змеёй, чтобы на работу лёжа ходить.
Конструктор инсталляторов на основе 7z SFX + готовые инсталляторы


Отправлено: 18:48, 05-09-2010 | #440



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Перепаковка пакетов драйверов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - DriverPack Solution - установка драйверов ArtXGroup Наборы обновлений для Windows XP/2003/Windows 7 1767 25-11-2024 21:30
[решено] Переупаковка MSI/MSP пакетов Virtuez Автоматическая установка приложений 28 14-03-2024 08:38
DriverPacks BASE (интегратор пакетов драйверов Башрата) - вопросы и ответы YikxX Автоматическая установка Windows 2000/XP/2003 331 15-01-2017 03:13
Драйвер - [решено] Удаление пакетов драйверов kadrus Microsoft Windows 7 4 06-01-2010 17:23
Перепаковка драйверов ragocTb Автоматическая установка Windows 2000/XP/2003 4 31-12-2006 02:20




 
Переход