64Bit Treiber kompilieren

Dawnrazor666

Lieutnant
Mitglied seit
13.03.2004
Beiträge
85
Renomée
0
Hi
Mal ne Frage
Mir fehlen n och zu meinem WinXP64Bit die TV-Karten Treiber
Hier habe ich nun Open Source Treiber gefunden
reicht es nun wenn ich die unter WinXP64 mit Visual Studio6 kompiliere?
Oder ist noch eine Anpassung nötig?
und brauche ich einen ganz neuen compiler??

Grüsse
 
Das beantworte ich mit einem entschiedenen vielleicht.

Als erstes benötigst du einen Compiler, welcher in der Lage ist 64bit Binaries zu erzeugen. VS6 dürfte damit also flach fallen. Wenn du den passenden Compiler hast, kannst du dich an die Übersetzung wagen. Entweder die sourcen sind schon 64bit ready, dann wird alles klappen, oder sie sind es halt nicht. Falls nicht, gibt es im Grunde zwei Möglichkeiten. Entweder scheitert schon der Versuch das Zeugs zu übersetzen (die angenehmere Alternative), oder du bekommst erstmal die fertigen Binärdateien, aber die laufen nicht, und zerlegen dir schlimmstenfalls das System. ;D
 
Danke für die schnelle Antwort :)
OK vielleicht sollte ich das dann als InfoStud im 2 Semester doch lassen :D

Aber vielleicht gibts ja hier im Board der ein oder andere der sowas auch braucht aber von dem Link oben nichts wusste *hoff* ;)
 
Zum Übersetzen und Linken reichen die Sourcen für den Treiber alleine nicht aus. Man benötigt das Win2000 DDK oder WinXP DDK für die 32 Bit Version.
Für die 64 Bit Version ist der Treibercode garantiert anzupassen. Außerdem benötigt es ein 64 Bit DDK und, wie schon genannt, 64 Bit Entwicklungstools.
Die DDKs bekommt man bei MS als MSDN-Subscriber je nach Vertrag entweder als CD/DVD zugeschickt oder lassen sich downloaden.
Ansonsten kann man sich gegen eine Gebühr von 199$ das entsprechende DDK bestellen.
Das 64-Bit SDK (Beta) enthält zusätzlich 32 Bit Tools und Kommandozeilenversionen der Compiler und Linker für die Erzeugung von 64 Bit Code.
Das 32-Bit Visual C kann als Entwicklungsumgebung genutzt werden.

Windows DDKs

Für die C++ Treiberentwicklung gibt es sehr schöne (und teure) Frameworks, welche auf den DDKs aufsetzen.
Beispiele sind VToolsD für Win9x und DriverWorks für NT, ehemals NuMega, heute als DriverStudio von Compuware.

Ciao,
Ray
 
Neuer, schneller, höher, weiter ... muss denn alles Sinn machen?;)
 
Was ist mit Euch los? *buck*
Man muß es nur gefickt einschädeln, dann kann man wunderbar in C++ VxD und Sys Treiber für Windows entwickeln. ;)
Sinn? Natürlich schnellere Entwicklungszeiten für den eigentlichen Treiber, wenn auf ein Framework, bestehend aus Bibliotheken für die entsprechenden Treiberklassen und eine an die Treiberumgebung (Kernelebene) ausgerichtete Laufzeitbibliothek zurückgegriffen werden kann. Daß im Framework selbst neben C++ auch C und Assembler zum Einsatz kommen, ist eine andere Geschichte.
 
Fräge an PuckPoltergeist
womit denn sonst schreiben ?
MS liefert ja unmengen an Libs dazu (tief verwurzelt sogar I2C)
wozu also das Rad nochmal erfinden.
Mit DDK unter Umständen a`la klicki bunti
 
Kommt auf das Betriebssystem an, bei Linux hat C++ bei systemnaher Programmierung nix zu suchen.

Das gilt aber eben nicht zwangsweise für alle anderen OS, und es wäre wohl auch kein Problem für Linux eine C++ Lib für Module zu schreiben.

Überleg mal du hättest einen µKernel, da würde es nicht den geringsten Sinn machen in C ranzugehen weil es die C++ Libs sowieso schon gibt.
 
Original geschrieben von intel_hasser
Das gilt aber eben nicht zwangsweise für alle anderen OS, und es wäre wohl auch kein Problem für Linux eine C++ Lib für Module zu schreiben.

Nein ist es nicht, aber du wirst sie nie in den offiziellen Kernel bekommen. Zumindest nicht so lange, wie Linus da noch die Hand drüber hält. Es ist aber unnütz und kontraproduktiv. C++ bringt einen Berg an overhead mit, welcher bei systemnaher Programmierung einfach nur stört. Sicherlich kann man argumentieren, daß das bei GHz-Prozessoren und Gb-RAM nicht mehr so sehr ins Gewicht fällt, nur was soll der Schwachfug? Was kommt dann als nächstes, Treiber in C#, ausgeführt in einer VM? Sorry, aber bei sowas rollen sich mir einfach nur die Zehennägel hoch.
 
Original geschrieben von PuckPoltergeist
Nein ist es nicht, aber du wirst sie nie in den offiziellen Kernel bekommen. Zumindest nicht so lange, wie Linus da noch die Hand drüber hält. Es ist aber unnütz und kontraproduktiv. C++ bringt einen Berg an overhead mit, welcher bei systemnaher Programmierung einfach nur stört. Sicherlich kann man argumentieren, daß das bei GHz-Prozessoren und Gb-RAM nicht mehr so sehr ins Gewicht fällt, nur was soll der Schwachfug? Was kommt dann als nächstes, Treiber in C#, ausgeführt in einer VM? Sorry, aber bei sowas rollen sich mir einfach nur die Zehennägel hoch.

Linux ist nunmal vollständig auf C ausgerichtet. Aber es dürfte genug andere OS geben wo das nicht so ist.

Ob das nun Sinn oder keinen Sinn macht ist erstmal unwichtig, es gibt auch vollständig Objektorientierte OS. Die sind auf jeden Fall aufgeräumter als Linux, und das ist manchmal auch einfach wichtiger ;).
 
Man kann auch in C objektorientiert schreiben (Bsp. Gnome), die Sprache unterstützt es nur nicht. Daß Linux reichlich chaotisch ist liegt nicht an der verwendeten Sprache, sondern daran, daß es evolutionär gewachsen ist, aus ein paar simplen Spielerein mit der Speicherverwaltung des 386er. Im Moment ist dort auch das große Aufräumen angesagt, was auch mittels Objektorientierung geschieht, alles in C. Es muß doch nicht alles gemacht werden, nur weil es vielleicht möglich ist. Es gibt für jede Aufgabe Werkzeuge die geignet dafür sind, und welche die man besser liegen läßt. C++ ist definitiv nicht für Systemprogrammierung gedacht. Wenn ich irgendwo einen Nagel einschlagen will, nehme ich doch auch einen Hammer dafür und keine Zange (gleichwohl es mit der Zange auch möglich ist).
 
Original geschrieben von PuckPoltergeist
Man kann auch in C objektorientiert schreiben (Bsp. Gnome), die Sprache unterstützt es nur nicht. Daß Linux reichlich chaotisch ist liegt nicht an der verwendeten Sprache, sondern daran, daß es evolutionär gewachsen ist, aus ein paar simplen Spielerein mit der Speicherverwaltung des 386er. Im Moment ist dort auch das große Aufräumen angesagt, was auch mittels Objektorientierung geschieht, alles in C. Es muß doch nicht alles gemacht werden, nur weil es vielleicht möglich ist. Es gibt für jede Aufgabe Werkzeuge die geignet dafür sind, und welche die man besser liegen läßt. C++ ist definitiv nicht für Systemprogrammierung gedacht. Wenn ich irgendwo einen Nagel einschlagen will, nehme ich doch auch einen Hammer dafür und keine Zange (gleichwohl es mit der Zange auch möglich ist).

Google mal nach OOO - ist ein Objektorienterties OS, in C++. Und die Sprache lässt sich ja wunderbar mit C mixen, also wo ist dein Problem?
Klar kann man auch in C OO schreiben, aber es ist definitiv nicht so einfach wie in C++. Sowas liegt immer im Auge des Betrachters, je nach Situation kann es auch günstiger sein ein OS mit C++ zu schreiben.
 
Original geschrieben von intel_hasser
also wo ist dein Problem?

Daß C++ für die Unterstützung der Objektorientierung einen ziemlichen Overhead mitbringt. Sowas gehört in meinen Augen nicht auf die Systemebene. Im Normalfall werden Treiber auch nicht so groß und umfangreich, daß man da ohne Unterstützung für Objektorientierung nicht mehr weiter kommt oder zu schnell den Überblick verliert.
Ich glaube ja, daß es machbar ist, daß es wunderschön sein kann und einem vielleicht hier und da auch die Arbeit erleichtert (es gibt auch Betriebssysteme in Java). Es ist aber meiner Meinung nach eine Verschwendung von Ressourcen. Gerade im systemnahen Bereich sollte man die Software möglichst klein, schlank und elegant halten.
 
Zurück
Oben Unten