Hallo, ich will für eine eigene USB Audio Karte einen Windows Treiber bauen. Hat jemand damit Erfahrung oder kann mir Quellen nennen wo ich Gute Informationen finde. Am besten gleich mit Code. Das ganze USB Zeugs ist übrigens nicht das Problem, sondern wie man so einen Treiber schreibt. Peter
Peter schrieb: > Hat jemand damit Erfahrung oder kann mir Quellen nennen wo ich Gute > Informationen finde. Am besten gleich mit Code. Microsoft bietet ein Driver Development Kit an...
Peter schrieb: > Der GCC arbeitet auch damit? Da müsstest du dich mal über das DDK selber informieren. Ich weiß nur von seiner Existenz...
Bin ja schon am lesen, nur wenn jemand gleich sagt es geht oder es geht nicht nimm DAS. Dann würde es mir etliche Stunden lesen und suchen ersparen. Peter
Du kannst von Microsoft eine freie Version des VisualStudioCPP Compilers herunterladen, dann noch das DDK und viel Spaß bei DMA unter Windoof :-P http://www.microsoft.com/germany/express/products/windows.aspx
Peter schrieb: > Der GCC arbeitet auch damit? Eher nicht. Du brauchst das Microsoft Visual Studio. fchk
Peter schrieb: > ich will für eine eigene USB Audio Karte einen Windows Treiber bauen. Wenn die die USB-Audio-Standardgeräteklasse implementiert, musst Du das gar nicht, weil dann nämlich der bei Windows standardmäßig enthaltene Treiber für diese Geräteklasse verwendet wird. Windows-Devicetreiber-Entwicklung ist alles andere als trivial, Du musst wirklich einen sehr guten Grund dafür haben, Dich damit zu beschäftigen. Der Compiler ist hierbei das geringste Problem, die kostenlose Express-Version des Visual Studio sollte ausreichen.
Rufus Τ. Firefly schrieb: > Peter schrieb: >> ich will für eine eigene USB Audio Karte einen Windows Treiber bauen. > > Wenn die die USB-Audio-Standardgeräteklasse implementiert, musst Du das > gar nicht, weil dann nämlich der bei Windows standardmäßig enthaltene > Treiber für diese Geräteklasse verwendet wird. sehe ich auch so. Es gibt nur ganz wenige Fälle wo es Sinn macht von der USB-Audio-Klasse abzuweichen. Z.B. wenn man für professionelles Studioequipment genau definiterte Latenzen braucht. > Windows-Devicetreiber-Entwicklung ist alles andere als trivial, Du musst > wirklich einen sehr guten Grund dafür haben, Dich damit zu > beschäftigen. Full Ack. Es kommen noch die Unterschiede zwischen 32 und 64 Bit Versionen von Windows hinzu und für 64 Bit brauchst Du im Normalfall ein Zertifikat um den Treiber signieren zu können (kostet mehrere 100 EUR pro Jahr).
Peter schrieb: > Hat jemand damit Erfahrung oder kann mir Quellen nennen wo ich Gute > Informationen finde. Am besten gleich mit Code. "Programming the Microsoft Windows Driver Model" von Walter Oney. Wenn du das gelesen hast, weisst du erstens, was du alles beachten musst, wirst du zweitens nie wieder auf die Idee kommen, selbst einen Treiber zu schreiben. Rufus Τ. Firefly schrieb: > Der Compiler ist hierbei das geringste Problem, die kostenlose > Express-Version des Visual Studio sollte ausreichen. "System Requirements Before you begin, you must first install Visual Studio Professional 2012 or above." (http://msdn.microsoft.com/en-us/windows/hardware/hh852362) mfg.
>Bin ja schon am lesen, nur wenn jemand gleich sagt es geht oder es geht
nicht nimm DAS. Dann würde es mir etliche Stunden lesen und suchen
ersparen.
Aeh. Ja. Ich kenn Leute die haben das mal bei WinNT durchgezogen. Unter
einem halben Jahr lief gar nicht. Ich bekam damals regelmaessig
Infomaterial von Sysinternals, einem Anbieter von Devicedriver Kits und
Kursen. Der Kurs dauerte damals 3 Tage oder eine Woche und kostete 4000
Pfund. Kursort war in England.
Dh. Lass es sein.
Nun das das keine wirkliche gute Idee ist war mir von Anfang an bewusst. Nur gibt es keine 32 Bit/256kSampels Audio Treiber. Windows macht von hause aus nur 16/48. Ich will bis jetzt nur mein XP benutzen, ob das dann später unter WIN8 auch gehen soll wird sich zeigen.
Peter schrieb: > Nur gibt es keine 32 Bit/256kSampels Audio Treiber. > > Windows macht von hause aus nur 16/48. Tja, dann wirst Du in den sauren Apfel beißen müssen. Da Du anscheinend noch keinerlei Erfahrung auf dem Gebiet hast (sonst hättest Du ja auch nicht so danach gefragt), mach Dich auf mehrere Jahre Entwicklungszeit gefasst.
Rufus Τ. Firefly schrieb: > mach Dich auf mehrere Jahre Entwicklungszeit gefasst. Und lass deine Fenster zumauern. Sonst fliegt der PC irgendwann auf Strasse. mfg.
Falls denn das Wissen da waere sowas als Standalone Geraet zu bauen, wuerd ich erst mal das bauen. Wenn's dann geht ist die Integration in einem PC schon ein Stueck naeher. Und speise das Standalone Geraet auch mal zum Testen mit einem PC Netzteil.
> Wenn du das gelesen hast, weisst du erstens, was du alles beachten > musst, wirst du zweitens nie wieder auf die Idee kommen, selbst einen > Treiber zu schreiben. > > mach Dich auf mehrere Jahre Entwicklungszeit gefasst. >Und lass deine Fenster zumauern. Sonst fliegt der PC irgendwann auf >Strasse. Full Ack 8-)
Kannst dir mal Jungo windriver angucken. Hab ich mal was mit gemacht weil ich sonst durchgeknallt wäre.
> Windows macht von hause aus nur 16/48.
woher hast du den diese Info? Wie hast du das getestet?
Seit Win98 SE kann windows 24/96. Hab ich selber komerziell mit USB
gemacht.
Thomas
>> Nur gibt es keine 32 Bit/256kSampels Audio Treiber. > > Windows macht von hause aus nur 16/48. directX macht nur bis 200 http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.ixaudio2sourcevoice.ixaudio2sourcevoice.setsourcesamplerate%28v=vs.85%29.aspx oder so.. (zumindest sagt das der 1. beste google hit) wird also schwierig.. du brauchst sowieso spezielle Software (also warum einen AUDIO treiber, ???) vielleicht einfach ein OSZI nehmen ;-) Nachtrag: willst was aufnehmen, oder abspielen??
Thomas schrieb: >> Windows macht von hause aus nur 16/48. > woher hast du den diese Info? Er wird sich auf die USB-Audio-Standardgeräteklasse beziehen. Die schränkt das ein. Natürlich kann man über USB auch mehr, das dann aber nur mit einem eigenen Devicetreiber -- und den möchten der Herr ja wohl auch erstellen. Fensterzumauern reicht übrigens nicht. Der PC muss eingemauert werden, da er sonst mit Äxten, Hämmern, Kettensägen und was auch immer gerade zur Hand ist, zerfetzt werden wird.
Rufus Τ. Firefly schrieb: > Fensterzumauern reicht übrigens nicht. Der PC muss eingemauert werden, > da er sonst mit Äxten, Hämmern, Kettensägen und was auch immer gerade > zur Hand ist, zerfetzt werden wird. was kann denn der arme PC dafür, daß der Benutzer ihm so ein widerspenstiges Betriebssystem installiert hat, welches die Treiberentwicklung so kompliziert macht? Ich würde also eher die Festplatte und die Windows-CD bzw. -Schachtel vor Zerstörung schützen. Die sind viel näher am Problem als der Rest der Hardware. Und damit auch mehr gefährdet.
Der Aufwand, einen Kernel-Treiber zu schreiben, zu debuggen und zu testen ist doch bei Linux kaum weniger hoch. Mag sein, dass es stellenweise besser dokumentiert ist, aber wenn ich mal so typische Quelltext vergleiche, ist das strukturell nicht viel Unterschied.
Christian R. schrieb: > Der Aufwand, einen Kernel-Treiber zu schreiben, zu debuggen und zu > testen ist doch bei Linux kaum weniger hoch. Das ist doch nur wieder das übliche Windows-ist-Scheisse-und-Linux-ist-viel-besser-Gelaber. mfg.
Christian R. schrieb: > Der Aufwand, einen Kernel-Treiber zu schreiben, zu debuggen und zu > testen ist doch bei Linux kaum weniger hoch. Mag sein, dass es > stellenweise besser dokumentiert ist, aber wenn ich mal so typische > Quelltext vergleiche, ist das strukturell nicht viel Unterschied. Im Gegensatz zu Windows, wo quasi alle Treiber Closed-Source sind, sind unter Linux alle ernstzunehmenden Treiber im Kernel integriert und Open Source. Du hast also jede Menge funktionierenden Beispielcode der ähnliche Probleme löst. Das alleine macht meiner Meinung schon einen wesentlichen Unterschied aus. Wenn man möchte, kann man unter Linux Treiber mittlerweile auch im Userspace schreiben. Das vereinfacht die Entwicklung deutlich, da reboots bei Änderungen wegfallen und man Werkzeuge wie einen Debugger, Valgrind etc. verwenden kann. Allerdings geht durch den Userspace die Latenz ein wenig hoch, ob das hier zum Problem wird oder nicht kann ich so nicht beurteilen.
Andreas Schwarz schrieb: > USB Audio Class 2.0 macht mind. 192 kHz, 24 Bit und zig Kanäle. Und unterstützt das der mit üblichen Windows-Versionen mitgelieferte Standardgeräteklassentreiber? In Ermangelung entsprechender Hardware kann ich das nicht prüfen; wenn der Treiber das tun sollte, hat sich die Problemstellung des Threadstarters gelöst, bzw. er kann sich mit dem nächsten Problem seines Unterfangens beschäftigen.
Vielfach basiert USB Audio 2.0 auf den XMOS-Chips. Diese Teile ermöglichen 24/192. Unter Linux das XMOS-Board einfach angesteckt und Audacity spielt eine 192kHz-Datei bitperfekt mit 192kHz ab. Bei MacOS soll es ähnlich sein. Nur Windows verhält sich anders: Man muss erst einen Treiber kaufen und diesen dann installieren, um in den Genuss von 24 Bit und 192kHz Samplerate zu kommen.
Gerd E. schrieb: > Du hast also jede Menge funktionierenden Beispielcode der ähnliche > Probleme löst. Das alleine macht meiner Meinung schon einen wesentlichen > Unterschied aus. Dann installier mal das WDK, dann bekommste du auch massig Beispiele incl. aller Quellen und Doku. Natürlich ist der Windows Kernel an sich Closed Source, aber ansonsten nimmt sich das nicht viel. Mit VS2012 ist das WDK jetzt auch integraler Bestandteil von VS, ist nur noch ein Plug-In, das macht die Sache nochmal einfacher. Ob es inzwischen bessere Debug-Möglichkeiten als das FireWire oder Serial Kabel gibt, weiß ich allerdigs nicht. Ist einige Zeit her, dass ich damit mal näher zu tun hatte.
Hi Thomas, > Peter schrieb: >> Hat jemand damit Erfahrung oder kann mir Quellen nennen wo ich Gute >> Informationen finde. Am besten gleich mit Code. > "Programming the Microsoft Windows Driver Model" von Walter Oney. > Wenn du das gelesen hast, weisst du erstens, was du alles beachten > musst, wirst du zweitens nie wieder auf die Idee kommen, selbst einen > Treiber zu schreiben. > Ich hab's gelesen. Ich kann Thomas nur zu 100% recht geben. Selbst beruflich würde ich mich inzwischen weigern, diesen unsäglichen Kram zu programmieren. Und falls es privat ist: Tu Dir einen Gefallen und nutze Deine Zeit sinnvoller als mit Windows-Treiberprogrammierung. Du wirst es uns noch danken!!! ;-) Gruß,
ist schon witzig, meist liest man ja Sätze wie: "die Deppen von XY, wieder mal so ein sch.. der AMD treiber XY ist Schei..., der Nvidia Treiber noch schei..iger.. sollte man die Programmierer nicht LOBEN, dass sie es, trotz aller Widrigkeiten, geschafft haben, überhaupt ein Bild auf den LCD zu zaubern ;-) wegen linux: wenn ich mir anschauen, wie lange ich zu analogen Zeiten , auf DVB-S Treiber gewartet habe, (um es dann irgendwan naufzugeben) und dann später auf DVB-S2 treiber.. (um es dann wieder aufzugeben) für Windows gab es das jeweils schon JAHRE vorher.. mir ist das egal, ob es unter linux EINFACHER ist, unter Windows geht es auf jeden Fall SCHNELLER (das sind Fakten, warum es so ist, ist auch klar... da kann "Linux" nicht viel dafür: da ist eher die Henne oder das Ei schuld) nochmal @to: willst du aufnehmen oder abspielen???
Robert L. schrieb: > wenn ich mir anschauen, wie lange ich zu analogen Zeiten , auf DVB-S > Treiber gewartet habe, Das ist aber nicht Linux und den Linux-Treiber-Entwicklern vorzuwerfen, sondern den Firmen, die die DVB-S (oder -T oder -C)-Chips herstellen und hartnäckigst keinerlei Dokumentation rausrücken.
>vorzuwerfen
hab ich ja nicht
ich hab geschrieben werde schuld ist ...
zu dvb-s: ich glaube es lag eher an der proritäten/nicht freien
firmware, die der TREIBER jedes mal auf die karte schreiben musste,
damit sie überhaupt erst funktioniert
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.