Forum: PC Hard- und Software USB Treiber manuell installieren und deintallieren [Win7/64]


von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo,

Ich will selbst mit USB Treiber für einem Controller rum 
experimentieren.

Dazu ist es nötig, dass ich mir meine INF selbst zusammen bastle und 
dann soll Win7/64 genau die eine INF + passende SYS installieren.
(Und auch wieder deinstallieren/löschen, wenn ich mist gebaut habe)

Aber Win7 zeigt mir nur ein Standard-Dialog an, dass der Treiber aus dem 
MS Downloadpool nicht gefunden wurde (ist ja klar, mein Borad).

Jetzt die Frage:

Was muss ich machen, damit ich bei Win7 meine Treiber-INF manuell 
auswählen kann?

Dann wurde zumindest bei XP die ins Windows/INF und System32/drivers 
kopiert und noch Einträge in der OEM Datei gemacht.

Somit wusste ich damals, was ich wo löschen/aufräumen musste um das 
ganze Setup wieder erneut von 0 zu testen.

Aber wie geht das bei Win7?
Was muss ich alles aufräumen und löschen damit das auch so geht?
Was braucht es für Systemrichtlinien um einen Treiber manuell ein 
richten zu können?

Danke für eure Hilfe, Gruß Markus

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe hier noch Dateien gefunden:

c:\Windows\System32\DriverStore\FileRepository\

Wie kann ich da meinen Treiber-Müll raus löschen?
Setzen der Berechtigung akzeptiert Win7 nicht :-(

von Christian R. (supachris)


Lesenswert?

Entweder über den Gerätemanager, da kannst du einen beliebigen Treiber 
auswählen und dann auch samt Treiberdateien wieder deinstallieren, oder 
aber was viel besser geht, über dpinst, das basiert auf dem Driver 
Install Framework und ist im WDK enthalten. zur Installation musst du 
das nur im Ordner mit der .inf ausführen, zur Deinstallation mit /u 
starten. Sehr einfach und effizient.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Christian R. schrieb:
> Entweder über den Gerätemanager, da kannst du einen beliebigen Treiber
> auswählen und dann auch samt Treiberdateien wieder deinstallieren, oder
> aber was viel besser geht, über dpinst, das basiert auf dem Driver
> Install Framework und ist im WDK enthalten. zur Installation musst du
> das nur im Ordner mit der .inf ausführen, zur Deinstallation mit /u
> starten. Sehr einfach und effizient.

Ich teste das mal. Hier steht mehr zum "DIF":
http://msdn.microsoft.com/en-us/library/windows/hardware/ff553607%28v=vs.85%29.aspx

Erst mal muss ich VS2010 dazu überreden mir eine SYS zu erzeugen.

von Christian R. (supachris)


Lesenswert?

Dazu brauchst du das WDK. Aber wieso selber einen Treiber schreiben? Für 
sowas gibts doch WinUSB oder auch LibUSB. Sind sogar schon signiert und 
für x64 auch zu benutzen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe einen Treiber von einem alten Cypress AN2131 Chip. Der ist 
schon seit langem abgekündigt und Cypress bietet für den alten Anchor 
Chip keine Unterstützung mehr.

Nun das Problem ist, damals hatte ich viele Geräte verkauft, die den 
Chip beinhalten und die Teile sind jetzt nach ca. 10 Jahren immer noch 
voll im Einsatz und werden stark genutzt.

Die Sourcen für die SYS Datei habe ich auch (war damals im DDK vom 
Prozessor dabei) und jetzt will ich das ohne Änderung für X64 
übersetzen.

Aber das geniale Microsoft C++ System stellt einem da nicht einfache 
Steine in den Weg :-(
Alleine schon die Projekteinstellungen werden durch den Update von VS6 
>> VS2010 "verbogen".

Siehe auch hier:
Beitrag "[c++] VS2010, Nicht aufgelöstes externes Symbol "___security_cookie""
mein nächstes Problem.

von Christian R. (supachris)


Lesenswert?

Achso. Naja, offiziell soll man ja den CyUSB.sys dafür nehmen. Was 
spricht gegen ein Software-Update, das den neuen Treiber anspricht? Wir 
haben das auch so gemacht, erst den CyUSB für den FX2, dann eine 
Übergangsphase der Software, die beides konnte und dann nur noch WinUSB. 
Der ist viel schneller und absolut stabil. Die Cypress Treiber kannste 
doch alles durch die Bank weg vergessen, so buggy wie die sind. Kein 
Wunder, dass die jetzt endlich mal einen signierten CyUSB haben.
Ansonsten brauchst du halt das WDK, aber mach dir nicht zu viele 
Hoffnungen auf eine änderungslose Kompilierung. Ich hab auch mal 
versucht, den PCIe BusMaster Referenztreiber von Xilinx ohne Änderungen 
auf x64 zu kompilieren, das ging zwar und er ließ sich laden, aber bei 
jedem Zugriff gabs massig Bluescreens. Ich hab da leider zu wenig 
Ahnung, aber ich vermute, ganz so einfach ist das nicht.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Das hatte ich schon versucht, Ergebnis ist nicht sonderlich toll. Gelbes 
Ausrufezeichen im Gerätemanager = geht nicht :-( siehe Bild.

Ich habe die Dateien aus dem Cypress-Download 
"CySuiteUSB_3_4_7_B204.exe" und die INF Datei mit dem VID/PID angepasst. 
Installieren tut der die, aber gehen tut es leider nicht.

Kannst Du mir Deine INF schicken?

Das wäre in der tat das einfachste, hatte ich auch schon so in google 
gelesen.
Mit dem alten Treiber hatte ich auch unter XP die BlueScreens, kam 
regelmäßig vor wenn ich viele Geräte aus/ein steckte.
Wäre auch klasse wenn das weg ginge.

LibUSB kommt bei mir auch noch dran. Ich wollte nur nicht das alte 
Projekt darauf umstellen, das ist doch was größeres.

von Christian R. (supachris)


Lesenswert?

Markus Müller schrieb:
> Kannst Du mir Deine INF schicken?

Nee, war alles auf Arbeit. Kann ich nicht rausgeben. Wir hatten aber 
auch nur die inf von Cypress angepasst. Aber halt auf dem FX2. Der alte 
An2131 sollte aber auch mit dem CyUSB funktionieren. Aber nimm doch am 
besten gleich WinUSB, der ist sogar noch einfacher zu implementieren als 
der CyUSB.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Nee, war alles auf Arbeit.

Hab ich mir schon gedacht ;-)
FX2 ist nicht ganz EZUSB. Ich bin mir da nicht sicher was da alles noch 
anders ist.

Ich nutze den Prozessor mit der Hardwareeigenen USB Funktion, die 
Software hat keinen eigenen USB Treiber. Und die lade ich immer vor dem 
Nutzen einfach runter und starte diese. Somit passt die Software im 
AN2131 immer zur EXE.

Hast Du vielleicht einen Tipp, welche USB Telegramme ich verschicken 
muss, um Daten in das RAM zu schreiben, bzw. Lesen?

Ich würde am liebsten LibUSB nehmen, ich muss die H Dateien dazu 
umschreiben auf Delphi.

von Christian R. (supachris)


Lesenswert?

Laut Cypress wird aber auch für den AN2131 der CyUSB empfohlen. 
RAM-Download passiert bei Cypress normalerweise über einen USB Vendor 
Request aus den Control Endpoint, ich denke das war beim EZUSB auch 
schon so, denn selbst beim FX3 ist es noch der A0 Request. Genaueres 
steht dann in der Doku zum Chip. Ich hab mir auch ein WinUSB basiertes 
Tool zum Beschreiben des EEPROMS am FX2 geschrieben, eigentlich ziemlich 
einfach. Notfalls mit USB Snoop o.ä. mal mit sniffen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.