Edycja pliku CAB instalatora InstallShield sterowników SB


(Krzycholud) #1

Witam

Posiadam urządzenie Toshiba Multimedia Center wewnątrz którego siedzi Sound Blaster Live! 24-bit External. Ponieważ mam Windows 7 x64, a na ten system nie ma sterowników od Toshiby chciałem zainstalować te od Creative, jednak instalator nie chce działać twierdząc, że nie widzi zgodnego sprzętu. Z mojej analizy wynika, że Sound Blaster w Toshibie ma zmieniony identyfikator sprzętu (SB0490 -> SB0500, PID_3040 -> PID_3048).

Kiedyś udało mi się przerobić instalator Creative SB pod Windows XP i zmusić do działania z Toshibą przez zmianę tych wartości w plikach ini instalatora. Niestety, instalator pod Windows 7 jest trochę inaczej zbudowany i plik odpowiedzialny za wykrywanie urządzeń przez instalator zawarty jest prawdopodobnie w archiwum CAB (cabinet), którego nie mogę ugryźć żadnym programem.

Potrzebuję zamienić plik Common\WebDrv.ini zawarty w pliku Support.cab

W oryginalnym jest taka sekcja:

;(SB0490) Sound Blaster Live! 24-bit External

;------------------------------------------------

[Hardware.Map14]

ID = 041E3040

ProductName = Sound Blaster Live! 24-Bit External

DefAppPath = \Creative\SBLive 24-Bit External

FeatureSet	= FeatureSet1

Podejrzewam, że wystarczy zamienić tylko ID:

;(SB0490) Sound Blaster Live! 24-bit External

;------------------------------------------------

[Hardware.Map14]

ID = 041E3048

ProductName = Sound Blaster Live! 24-Bit External

DefAppPath = \Creative\SBLive 24-Bit External

FeatureSet	= FeatureSet1

O ile 7-zip, WinRar wypakowują plik WebDrv.ini bez problemu, o tyle żaden z nich nie potrafi zamienić/zaktualizować archiwum CAB. Ma ktoś jakiś pomysł jak zamienić ten plik ini wewnątrz tego archiwum?

Rozpakowanie całości i spakowanie jako zip ze zmianą rozszerzenia nic nie dają - instalator wyrzuca błąd.

Wspomniany plik Support.cab z instalatora: http://www.wrzuc.to/P8IAeyb3X.wt

Cały instalator znajduje się na stronie Creative: http://support.creative.com/Products/ProductDetails.aspx?catID=1&subCatID=206&prodID=10702&prodName=Live!%2024-bit%20External&subCatName=Live!&CatName=Sound+Blaster&VARSET=prodfaq:PRODFAQ_10702,VARSET=CategoryID:1

Jednoplikowy instalator można rozpakować 7-zipem (WinRarem może też), wtedy dostanie się właściwy instalator o którym mówię.

Mam nadzieję, że ma ktoś jakiś pomysł, albo dysponuje narzędziami to takiej zamiany.


(Dimm Dna) #2

Służy do tego narzędzie Cab SDK nie dostępne na stronie Microsoftu, ale idzie jeszcze je odnaleźć przez wyszukiwarkę. Używasz z konsoli pliku cabarc do rozpakowywania i pakowania. Widzę że w tym pliku masz wewnętrzny folder. Czeka cię trochę zabawy.


(Krzycholud) #3

Sprawdziłem CabSDK i po kilku kombinacjach w wierszu poleceń udało mi się zrobić archiwum cab o takiej samej strukturze jak oryginalne. Instalator bez problemu zaakceptował podstawiony plik i uwzględnił zmianę jaką w nim dokonałem - pozwolił się zainstalować, mimo iż wcześniej twierdził, że nie ma wspieranego sprzętu. Niestety, Windows jest bardzo upierdliwy i mimo, że instalacja przebiegła z pozoru pomyślnie, to system nadal forsuje swoje standardowe sterowniki o nazwie "Urządzenie audio USB", co mnie nie zadowala ze względu na brak obsługi ASIO i marne działanie wejścia mikrofonowego, które w XP na sterownikach Creative bez problemu mogło uciągnąć mikrofon dynamiczny. Ręcznie spróbowałem wybrać sterownik w menadżerze urządzeń (był do wybrania Sound Blaster Live! 24-bit External), to otrzymałem najpierw komunikat, że sterownik nie jest podpisany cyfrowo, a po instalacji, że urządzenie nie może zostać uruchomione (Kod 10).

To raczej koniec mojej walki z tą kartą, dzięki za wskazanie narzędzia CabSDK, działa ono bardzo dobrze i jest przydatne, ale sam problem rozwiązany może być chyba tylko przez zakup innego, wspieranego przez Windows 7 urządzenia. Spróbuję najwyżej jeszcze na wersji 32-bitowej, ale wątpię w sukces.

Jakby kogoś interesowało: żeby zrobić archiwum CAB z podfolderami wydałem takie polecenie:

cabarc N -p archiwum.cab Common/* Common/Audio/*

Pozdrawiam.