PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Treiber für Linux



JennaJamson
18.12.2005, 16:23
Hi Jungs, ...

vorab wird sich hier gleich nicht die Frage stellen wie schwierig es ist sondern nur ob meine These möglich ist.

Problembeschreibung:

Mein Problem begann damit, das ich Linux Fedora Core fahre und eine WLAN Karte habe, die mit dem ACX111 Chip läuft. Die treiber die angeboten werden sind meist nicht soweit, das alle features einbezogen sind , die von der Karte bereitgestellt werden.

Ndiswrapper ist unpraktisch, da dieses ein benutzen des MonitorMode der Karte und damit von passiven WLan Scanner nicht möglich macht.

Jetzt die Frage:

Texas Instrument liefert die Treiber für die Chips nur für Windows und gibt keine weiteren Informationen preis.

Ist es rein THEORETISCH nicht möglich aus den WIndows treibern die mitgelifert werden ein voll funktions tüchtigen Linux Treiber zu schreiben?

... abgesehen davon das es relativ schwer werden könnte liefert der Treiber im Umgang mit WIndows doch alle Informationen die benötigt werden um mit dem Chip umzugehen oder?


Ich hoffe es wird verstanden was ich fragen versuche und badanke mich für etweilige antworten.

Ich hoffe ebenso das ich den richtigen Forum- Bereich ausgewählt habe, da sich das hier auf allgemiene Programmierbare Hardware- Geräte bezieht.

Greez Jenna

Atomara
18.12.2005, 16:31
Ohne den Quellcode ist da wohl nicht viel zu machen es sei denn übers reverse enginering
und das ist ne sehr komplizierte Sache. Also kannst du es eigendlich knicken.

Mich wundert es aber doch dass Texas Instrument ihre Treiber nicht für Linux anbieten ,seltsam ...

JennaJamson
18.12.2005, 16:35
Klar ist das eine sehr kompliziert Angelegenheit, deswegen sage ich es ja.

Aber es ist ja möglich da doch der Code einer Windows .sys nicht in die ursprüngliche Programmiersprache umgewandelt werden kann, wohl aber in Assembler present ist und von dort her lesbar seien sollte oder?

MrFenix
18.12.2005, 16:43
Ja lesbar schon, nur nicht mehr wirklich verständlich... Außer du hast Lust die Hexcodes der ganzen Funktionsaufrufe der verwendeten Windowslibraries auswendig zu lernen. Ich würde sagen vergiss es. Es ist schneller, besser und billiger sich ne neue WLan Karte zu kaufen, aus dem Assersource davon wirst du ohnehin nie schlau. Außerdem weiß ich auch nicht in wie weit das legal wäre.

JennaJamson
18.12.2005, 16:47
Ich bedanke mich, es ist also möglich.


Legal?

Man nennt es einfach nur Freiheit in meiner Welt. Ich habe die Karte bezahlt und möchte sie vollfunktionstüchtig nutzen, es ist nur meine Freiheit mein Betriebsystem zu wählen.

Ich werde mich also an die Arbeit setzen und jetzt wo es technisch möglich ist, macht mein Wille den Rest wie ich hoffe.

Und es ist für mcih besser ne neue zu holen und vielleciht auch einfacher, aber vielleicht kann ich damit ja anderen helfen, die sich dann einfach nur noch den Treiber laden müssen.

Ich wünsche euch noch einen supi Abend byby

MrFenix
18.12.2005, 16:53
Frag lieber erst bei TX an ob sie die Specs für die Karte rausrücken.

Ach ja und am besten hilfst du dann denen hier:
http://acx100.sourceforge.net/

JennaJamson
18.12.2005, 16:59
http://www.tecchannel.de/news/themen/linux/433453/

Und sieh da, ...

Atomara
18.12.2005, 17:10
ich glaube du weißt gar nicht was du da machen willst ,an dem projekt haben sehr sehr viele Programmierer zusammen gearbeitet und du willst diese ganze Arbeit alleine bewältigen ? Unmöglich...

Sir Auron
18.12.2005, 19:10
Es ist schon schwierig sowas mit doku nativ zu implementieren. Dann auch noch durch windows driver auseinandernehmen, halte ich für gewagt. Aber du solltest:

Gute Kenntnisse über den Kernel Source haben
Sehr gut C können
Sehr gut assembler können
Schon auf windows Treiber geschrieben haben
Dich sehr gut mit der windows api auskennen (manche Treiber haben auch Userspace Komponenten)
Viele Leute haben, die dir helfen


Da du das natürlich alles kannst ;), ist das ja auch kein Problem.

sono
18.12.2005, 20:01
Wo du so eine schöne Meldung zitierst :


Durch Reverse-Engineering hat eine vor zwei Jahren gegründete Gruppe endlich Linux-Treiber für die Broadcom Wireless LAN Chipsets entwickelt.

Dieser Satz enhält genau 3 interessante Wörter :

- zwei Jahre
- Gruppe

Solltest du jedoch die Fähigkeiten und die Möglichkeiten haben das was du gerne machen würdest erfolgreich abzuschliesen wären die ne Menge Leute sehr dankbar.

Ansonten kauf dir lieber ne neue Karte und schau nach dass du ne Karte hast die von Linux untertsützt wird.

Gruß Sono

JennaJamson
18.12.2005, 21:34
Jungs,

Ihr seid alle viel zu pessimistisch.

Ich habe weder behauptet das diese Treiber morgen fertig sind, noch das es einfach wird geschweige denn das ich es alles alleine machen werde.

Natürlich brauche ich hilfe, weil ich assembler nicht sehr gut beheersche, aber ich werde mir meine Leute zusammen stellen und es versuchen. Nur wenn man von vorne rein mit einer Meinung drann gehen würde 'Es ist unmöglich, ... etc.', wen wundert es dann wenn es nicht klappt.

Ich danke euch für eure antworten, ich weiß das es nicht sehr einfach wird und bin auch nicht von gester, als das ich es alleine versuchen würde.

Falls aber jemand hier meint er wolle helfen kann dies schon tun indem er mir eine Mail schreibt wie er mich untersützen mag und was er alles beherscht.

Ansonsten wünscht mir doch lieber Erfolg und hofft das es klappt und seid nicht so zickig *smile*

Greez Jenna

MrFenix
18.12.2005, 21:53
Was ist denn nun mit der Projekthomepage die ich gefunden hatte? Da schon angefragt?

JennaJamson
18.12.2005, 22:14
Hi, ...

ich werde noch Anfragen stellen, bin mir aber fast sicher von neu anzufangen. Ich möchte demnach nciht wirklich auf ein altes Projekt aufsetzen. Ich werde wohl fragen ob sie in diesem Bereich, der reverse Engeneering mit den Treibern Ansätze haben und mir davon Infos geben können.

So das reciht aber jetzt hier, das ist ja hier lediglich noch belangloses herum gelaber, was zu keinem Ziel führt.

Also ich werd jetzt mal schlafen gehen und morgen anfangen, noch hab ich ja Urlaub.

Aber ich danke allen die mir hier Hilfe gegeben haben und ein gutes Wort für meinen Gedanken übrig hatten.

Vielen Dank Greeeeeeeeeez Jenna

nemesis23
14.08.2006, 16:48
Hallo Jenna Jamson:

Hiermit übersende ich Dir viele Grüße, Du hast Dich mit mir im Chat "Linux"
mit Deinem anderen Namen unterhalten. Erinnerst Du Dich ? (DCC)
Ich war unterwegs als Nemo. Wir haben über Freud und seine Brille und
die Freiheit gesprochen.

Du hast mir den Namen gegeben nach dem ich googeln sollte.
Nun habe ich Dich gefunden. Mir war gar nicht aufgefallen, das Du eine
Frau bist. (Respekt an Dein Wissen und Deine Fähigkeiten). Sieht man nicht
so oft. Mach weiter so. Habe Deine Forumsbeiträge gelesen.

BSD Airtoolz Rulez - Fedora Core Devil ;-)

P.S. nemesis 23 ist mein reales Pseudonym unter dem ich im Net zu finden
zu bin.

greetz : (nemesis23) Debian Rulez

Xanti
14.08.2006, 16:57
'ne PM hätte es wohl nicht getan? Halte Dich bitte an die Boardregeln, denn Boardregeln Rulez ;)

gropiuskalle
14.08.2006, 17:32
@ JennaJamson::respekt:

Sneek
28.08.2006, 17:52
Hallo Jenna Jamson:

Hiermit übersende ich Dir viele Grüße, Du hast Dich mit mir im Chat "Linux"
mit Deinem anderen Namen unterhalten. Erinnerst Du Dich ? (DCC)
Ich war unterwegs als Nemo. Wir haben über Freud und seine Brille und
die Freiheit gesprochen.

Du hast mir den Namen gegeben nach dem ich googeln sollte.
Nun habe ich Dich gefunden. Mir war gar nicht aufgefallen, das Du eine
Frau bist. (Respekt an Dein Wissen und Deine Fähigkeiten). Sieht man nicht
so oft. Mach weiter so. Habe Deine Forumsbeiträge gelesen.

BSD Airtoolz Rulez - Fedora Core Devil ;-)

P.S. nemesis 23 ist mein reales Pseudonym unter dem ich im Net zu finden
zu bin.

greetz : (nemesis23) Debian Rulez

omg o.O

anonymous 24.10
24.10.2010, 18:30
Ja Windows-Treiber könnten theoretisch unter Linux verwendet werden.
Es gibt diverse Projekte die das versuchen.
Dazu braucht man auch den Quellcode des Treibers nicht.

Was macht ein Treiber?
Er verbindet die Hardware mit der Software also das Gerät mit dem Betriebssystem.
Ein Windows-Gerätetreiber verbindet also (z.B. einen Scanner) mit Windows.
Nur doof, dass wir Linux benutzen wollen und kein Windows.

Das ist so als wollte man in England ein Gerät mit einem Schukostecker benutzen.
Kein-Problem - da nutzt man einen "Reisestecker" (siehe Wikipedia). Das ist ein Adapter: Auf der einen Seite sieht er aus wie ein Stecker für englische Steckdosen auf der anderen wie eine Schutzkontakt-Steckdose.

Die Lösung ist nun einen "Windows-Linux Adapter" (Informatiker nennen das einen "Wrapper") zu schrieben.

D.h. man programmiert für alle Winows-DLLs einen Wrapper,
der auf einer Seite die Anfragen und Daten vom Windows Treiber übernimmt
und an den LINUX Kernel oder die Module weiterleitet und auf der anderen Seite
die Antworten des Kernel in "Windows-DLL-Antworten" umformuliert uns sie dem Treiber zurück gibt.
Im allgemeinen hast du dabei das Problem, dass du nicht weißt, welche DLLs der Treiber braucht und du musst für einen allgemeingültigen "Wrapper" für alle Windows-DLLs einen Wrapper schreiben.

Wie aufwendig das ist kannst du wahrscheinlich am Projekt "ReactOS" nachvollziehen: die versuchen Windows XP nachzuprogrammieren. (Die aktuelle Version Bootet auf meinem Rechner leider nicht)

Teile der in ReactOS verwendeten Software werden auch unter Linux verwendet, das führt dazu, dass einige Windowsprogramme unter Linux ausführbar sind (siehe "WinE").



Wie gesagt Theoretisch ist das möglich.
Realistisch ist es nicht.

Ein Problem dabei ist, dass Windows natürlich nicht OpenSource ist und dass Microsoft kein Interesse hat die Entwicklung von "Windows-Linux-Wrappern" zu unterstützen.

Die DLLs, für die man den Wrapper schreiben müsste, muss man vorher kennen. Man kann mit der Entwicklung eines Wrappers immer erst beginnen wenn die DLL schon da ist. Microsoft muss immer wieder neue DLLs schrieben (Sonst wäre ja ein Update oder das Schließen von Sicherheitslücken gar nicht möglich.)

D.h. Ein "Windows-Linux-Adapter" kann also immer nur für alte Treiber genutzt werden, die keine neuen DLLs benutzen. Und die Geräte wären durch so einen Adapter unter Linux langsamer als unter Windows, weil der "Wrapper" einen Umweg für die Daten darstellt, den man bei einem echten Windows-Treiber nicht umgehen kann.

Besser und schneller wäre, einen echten Linux-Treiber zu schreiben.
Mit einem echten Linux-Treiber könnten Geräte unter Linux schneller sein als unter Windows, wenn der Linux-Treiber effizienter programmiert ist und die Hardware nicht selbst den Flaschenhals darstellt.

Fazit: Ja es ist theoretisch möglich - es wäre aber die schlechteste denkbare alternative.