PDA

Показать полную графическую версию : [addon] Утилита конструктор TextMode MassStorage-аддона (конструктор)


Страниц : 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

prokazzza
05-10-2008, 00:20
Mr dUSHA, не читал ветку, может где писалось, в чем конкретное отличие от Башратовского интегратора MassStorage Text Mode???

Mr dUSHA
05-10-2008, 02:12
в чем конкретное отличие от Башратовского интегратора MassStorage Text Mode??? »

Гм... Основное отличие в том, что утилита не использует башратовских настроечных INI-файлов вообще, а собирает информацию непосредственно из INF-файлов драйверов. Поэтому она никак и не привязана к башратовским пакетам, а может обрабатывать любое самосборное дерево драйверов.
Кроме того, не знаю, реализовано ли у Башрата добавление в реестры текстового и графического этапов параметра PnpInterface для нуждающихся в нем драйверов...

Изначально утилиту я писал "под себя".
А в своей сборке я не использую никаких интеграторов драйверов вообще, как собственно и стандартных пакетов драйверов. Вместо этого интегрирую только необходимые TextMode-драйверы, а на графическом этапе поддержку дерева каталогов с драйверами (копируемого на винчестер при установке ОС через $OEM$-папки) реализует собственнописный фейк-сетап.

YikxX
05-10-2008, 11:11
Кроме того, не знаю, реализовано ли у Башрата добавление в реестры текстового и графического этапов параметра PnpInterface для нуждающихся в нем драйверов... » Нет, не реализовано.

Я так понимаю, параметр PnPInterface берется из inf-файла? Если он там есть - то добавляется. Нет - не добавляется. Так?

Mr dUSHA
05-10-2008, 11:45
Я так понимаю, параметр PnPInterface берется из inf-файла? Если он там есть - то добавляется. Нет - не добавляется. Так? »
Да. Так.
Тайный смысл этого действа заключается в том, что этот параметр если есть в inf-файле, то есть и в оригинальном txtsetup.oem этого драйвера. Поэтому и возникает иногда такой спецэффект, что если драйвер добавить стандартным способом с дискеты по F6, то все нормально работает, а если интегрировать - то не работает.

Кроме того многие txtsetup.oem содержат еще некоторые другие, специфические уже для конкретного драйвера, параметры, добавляемые в реестр текстового и начала графического этапов, которые возможно тоже влияют на нормальную работоспособность драйвера.
Я думаю, что возможно стоит реализовать еще и парсинг txtsetup.oem для тех драйверов, у которых он есть в комплекте (применимо например к башратовскому пакету), что возможно обеспечит более корректную интеграцию и стабильную работу...

YikxX
05-10-2008, 14:41
у которых он есть в комплекте (применимо например к башратовскому пакету) » Так у Башрата их нет и не было никогда

Mr dUSHA
06-10-2008, 02:16
Новая версия программы

Новое в версии 1.6.0:

Добавлены ключи командной строки -WXP, -W2K3, -P32, -P64 для указания целевой платформы, для которой нужно производить отбор драйверов.
Расширена информативность лога работы программы, выдаваемого в консоль.
Оптимизация кода, мелкие правки.

BXA
06-10-2008, 09:31
Я думаю, что возможно стоит реализовать еще и »

Наверное стоит добавить поддержку интеграции на графическом этапе, чтобы не лепить симбиоз с z-drv-inst /то-есть распаковку 7z, прописывание путей к каталогам распаковки, снятие проверки цифровой подписи, хотя там установка панелей при первом входе через finish.ini но его можно аккуратно перенять в принципе/

Просто вариант когда данные об интеграции берётся не из башратовского инфа, где он может допустить ошибку, описку и т.п., затем ошибка например с пробелами с некороткими hwid, вкрадывается после конвертирования в msst.ini конвертером от BS. А в данном случае вся информация собирается и тестируется самим вендором. Потом действительно можно в дерево драйверов добавить свою ветку не заморачиваясь с конвертированием в формат башрата. Вобщем графический этап + установка панелей при первом входе...

Mr dUSHA
06-10-2008, 12:18
чтобы не лепить симбиоз с z-drv-inst /то-есть распаковку 7z, прописывание путей к каталогам распаковки, снятие проверки цифровой подписи, »
Распаковку пакетов драйверов и динамическое формирование и прописывание в реестр путей к папкам драйверов возможно реализовать только с помощью фейк-сетапа, до запуска оригинального установщика (setupORG.exe или непосредственного вызова InstallWindowsNt из Syssetup.dll).
Связано это с особенностью устройства библиотеки setupapi.dll, которая во время первой загрузки и инициализации копирует из реестра список путей из ключа
HKLM,Software\Microsoft\Windows\CurrentVersion,DevicePath в свою внутреннюю строковую переменную. Так что если уже в оригинальном установщике где-то на Т-39 с помощью родной встроенной функциональности PreSetup запустить перечисление каталогов драйверов, то эффекта не будет никакого.

Опять же блокировка проверки цифровой подписи достигается из фейк-сетапа патчем всего 3 байт на лету непосредственно в памяти в исполняемом коде библиотеки Syssetup.dll. Другие полезные патчи/правки, такие как правка ранжирования неподписанных драйверов (для отказа от необходимости удаления старых встроенных подписанных MS-овских драйверов из дистрибутива) в коде Syssetup.dll и setupapi.dll также можно накладывать прямо в памяти на эти библиотеки.

Так что использование одного нормального фейк-сетапа избавляет от необходимости использования кучи мусорных утилит и патченых системных библиотек.

BXA
06-10-2008, 15:00
Так что использование одного нормального фейк-сетапа избавляет от необходимости использования кучи мусорных утилит и патченых системных библиотек. »

Ну вот, значит осталось нормальный фейковый сетап прикрутить к Z-MSST ;-)

Boa Soft
06-10-2008, 15:39
Ну вот, значит осталось нормальный фейковый сетап прикрутить к Z-MSST ;-) »

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

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

BXA
06-10-2008, 15:52
Так как утилита уже вполне работоспособная, займусь созданием симбиоза с фейк-сетапом »

А можно без мультизагрузки или её опционально, например я использую графический мультизагрузчик syslinux до этого использовал текстовый BCWD или он и туда и сюда пойдёт ?

Mr dUSHA
06-10-2008, 19:21
Так как утилита уже вполне работоспособная, займусь созданием симбиоза с фейк-сетапом и мультизагрузкой. »
А может утилиту вообще в варианте DLL-модуля еще сделать, чтоб стыковать с программой было проще?

VMROL
07-10-2008, 16:34
Подскажите, в чём может быть проблема?

Беру DriverPack_MassStorage_wxp_x86-32_116_Greg_B вот отсюда http://forum.oszone.net/thread-91146.html, обрабатываю его MSSTMake 1.6.0, в протоколе утилиты вижу следующее:

============================================
Opening INF-file:
Index - 0057
Name - D:\M\S3132D\SI3132D.INF

[i] Selected platform extender [.NTx86.5.1]

[i] Parsing Manufacturer section [SI_HDC.NTx86.5.1]

Duplicated HWID [PCI\VEN_1095&DEV_3132] found
[-] Old driver with date 10/31/2006 replaced
[+] New driver with date 10/03/2007 assigned to this HWID

Duplicated SYS-file [SI3132.sys] found
[i] SYS-file [SI3132.sys] renamed to [SI3133.sys]

[e] Error in copying SYS-file [SI3132.sys]. Error code = 2


[i] Parsing Manufacturer section [SI_HDC.NTx86.5.1] completed


HWID Statistic:
---------------
Total found HWIDs - 34
New assigned HWIDs - 0
Replaced from this INF old HWIDs - 1
Discarded old or bad in this INF HWIDs - 0
Duplicated in this INF HWIDs - 33


[i] INF-file successfully parsed

Closing INF-file
============================================


Здесь идёт речь о переименовании файла SI3132.sys в SI3133.sys. По факту в папке Drivers не появляется файл SI3133.sys. Также информация о несуществующем SI3133.sys добавляется в DOSNET, HIVE, setupreg.reg, TXTSETUP.

Как следствие, после интеграции полученного аддона получаю нерабочий дистриб. Во всяком случае при установке в режиме обновления выдаётся ошибка о невозможности копирования SI3133.sys, делаю "пропустить", после перезагрузки компа программа установки не хочет без SI3133.sys продолжать.

На всякий случай прикладываю весь протокол работы утилиты.

VMROL
07-10-2008, 16:59
Кажись понял.

В инфе S3132D\SI3132D.INF ошибка.

В секции [SI_3132_Service_Install] была строка ServiceBinary=%12%\SI3132.sys, поменял на ServiceBinary=%12%\SI3132D.sys - в протоколе больше нет ошибки.

BXA
07-10-2008, 17:03
По факту в папке Drivers не появляется файл SI3133.sys »

Может файл read-only ?

Mr dUSHA,
По подключению фейкового сетапа нашёл статейку с готовым сетапом + утилитки + командный файл

http://www.msfn.org/board/SOLVED-drivers-CD-t12566.html

Всё довольно прозрачно - вся настройка установки прописывается в открытом команднике, утилитки снимают проверку подписи у драйверов и устанавливают пути сканирования inf для PnP этапа

Может имеет смысл добавить всё это хозяйство в формируемую папку Z-MSST ?
получится почти готовый симбиоз - останется спросить разрешение у BS для включения в этот симбиоз утилитки finish.exe + finish.ini (для установки панелей)

ЗЫ
У BS, конечно, утилита крутая (z-drv-inst), но исходников нету, а самому ему в последнее время не хватает времени заниматься проектом /как мне показалось/, а если и хватит, то будет 2 варианта - всяко лучше чем один или ни одного :tomato2:

VMROL
07-10-2008, 17:09
Отсюда предложение. Если утилите дают кривой инф, пусть она как-то проверяет/игнорит его, чтобы не получилось, что файла нет, а ссылки на на него в DOSNET, HIVE, setupreg.reg, TXTSETUP создаются.

Mr dUSHA
07-10-2008, 17:49
По подключению фейкового сетапа нашёл статейку с готовым сетапом + утилитки + командный файл
Всё довольно прозрачно - вся настройка установки прописывается в открытом команднике, утилитки снимают проверку подписи у драйверов и устанавливают пути сканирования inf для PnP этапа »
То, что предлагается там - примитивный и древний вариант.
Я уже давно разработал свой собственный фейк-сетап, в котором все реализовано в едином файле Setup.exe.
Если хотите, почищу из него весь лишний спицефический только для моей сборки мусор, и выложу сюда. Можно даже с исходниками (С++).

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

Кроме того, мой фейк-сетап рассчитан на использование $OEM$-папки, которая копирует драйвера на винчестер в уже распакованном виде.

для включения в этот симбиоз утилитки finish.exe + finish.ini (для установки панелей) »
Опять же, могу добавить такую функциональность в виде выполнения скрипта PostSetup.cmd в сам фейк-сетап, который будет выполняться после оригинального инсталлятора ОС, и еще до перезагрузки, где-то на Т-0.
До сих пор это никто не реализовал потому, что в инсталлятор, если не пропатчить в syssetup.dll Оптимизатор Реестра
[hr]Функция SaveAndReplaceSystemHives описана мной в файле ALL_SRC.cpp.txt в ветке форума:
Внутренности Установщика WinXP (http://forum.oszone.net/thread-106849.html)[hr]Оптимизатор, выполняясь на Т-0 в оригинальном инсталляторе, мешает установке любых прог на этом этапе, а точнее теряются все записи произведенные программой в реестр.

Отсюда предложение. Если утилите дают кривой инф, пусть она как-то проверяет/игнорит его....»
ОК. Подправлю утилиту, добавлю такую проверку.
Я на 116-й версии пакета не тестировал утилиту, а там, в указанном вами ИНФе, действительно ошибка.

BXA
07-10-2008, 22:12
Mr dUSHA, То, что предлагается там - примитивный и древний вариант

Жаль, зато всё прозрачно в "батнике" и распаковка пакетов 7z и прописывание путей...
Может сам попробую сляпать на базе этого варианта + ваш z-msst + finish от BS
/Понятно, что без выбора галочками пакетов драйверов, но я обычно всё равно все распаковываю/

Если хотите, ..... выложу сюда »

Было бы неплохо пощупать с++ :o ...

Mr dUSHA
08-10-2008, 03:04
Было бы неплохо пощупать с++ ... »
Вот такой вот Фейк-сетап у меня примерно. (В архиве и бинарник, и исходники).
Он целяком заменяет оригинальный setup.exe, и в оригинале не нуждается.

Делает следующее:
1. Составляет список путей к драйверам, прописывает в реестр (корень дерева задается через INI-файл).
2. Отключает в реестре SFC (но нужна патченая SFC_OC.DLL)
3. Загружает и патчит прямо в памяти syssetup.dll setupapi.dll на предмет отключения проверки цифровой подписи, понижения ранга неподписаных драйверов, отключения защиты Syssetup.inf от правки (сами файлы не правлятся так что их цифровая подпись не теряется).
4. Запускает инсталятор через функцию InstallWindowsNt (syssetup.dll)

Можно только дописать еще пару строчек кода для реализации распаковки драйверов....


UPD: 09/10/2008 Новая версия, перенесена в шапку.

Real Root
09-10-2008, 00:59
Можно только дописать еще пару строчек кода для реализации распаковки драйверов.... »
Было бы замечательно. А еще больше было бы замечательно, если бы можно было еще и все башратовские драйвера (ланы, видео и т.д.) этим сетапом ставить. Т.к. всеже для многих основной источник дров - это пакеты со всем известного сайта.




© OSzone.net 2001-2012