Seite 1 von 1

Treiberprogrammierung für PCI UMTS Karten

Verfasst: Donnerstag 2. August 2007, 16:03
von Miko
Hi,
die 4 UMTS Anbieter bieten UMTS karten für Notebooks an. Doch es gibt nur Windowstreiber.
Jetzt dacht ich mir es kann doch garnicht so schwer sein einen Treiber für die PCMCIA Schnittstelle und die UMTS Karte zu schreiben.
Wenn man unter Windows den Verkehr der PCMCIA Schnittstelle mitprotokoliert angefangen beim einstecken der Karte dann müsste man doch recht einfach einen eigenen Treiber (z.B. in Python) schreiben können oder?

Gibt es ein Modul für die Kommunikation mit der PCMCIA Schnittstelle in Python?
Kann man den Vekehr der PCMCIA Schnittstelle unter Windows mitprotokollieren?
Wär es somit möglich einen Linux Treiber zu schreiben?

Das ist mir einfach vorhin eingefallen und es würd mich wirklich interessieren.

Schöne Grüße
Miko

Re: Treiberprogrammierung für PCI UMTS Karten

Verfasst: Donnerstag 2. August 2007, 19:27
von gerold
Miko hat geschrieben:es kann doch garnicht so schwer sein einen Treiber für die PCMCIA Schnittstelle und die UMTS Karte zu schreiben.
Hallo Miko!

Wenn es so einfach wäre, dann hätten die Kartenhersteller entsprechende Treiber für Linux schon fertig.

Es bleibt ja auch nicht bei dem Treiber. Du brauchst ja auch ein Programm, das über den Treiber mit dem Hardwareteil kommuniziert.

Ich glaube nicht, dass du so etwas für Python finden wirst. Und auch nicht, dass man so etwas mit Python machen sollte.

mfg
Gerold
:-)

Verfasst: Donnerstag 2. August 2007, 19:37
von Miko
Ich hab mich schon gefragt ob gar keiner mehr antwortet. Aber auf dich ist verlass :D

Naja der Treiber sollte irgend eine virtuelle Netzwerkschnittstelle bereitstellen. Stimmt das könnte schwierig werden.

Aber wenn man den Treiber die komplette Arbeit machen lässt, also auch Daten senden und empfangen. Dann dürft es doch nicht so schwer sein. Man könnte ja z.B. Empfangene HTML Dateien auf die Festplatte schreiben und mit einem Browser öffnen. Dann dürfte das doch wieder nicht so schwer sein. Man könnte dann im Internet zwar nur die Dinge machen die der Treiber kann, aber das wär ja schon immerhin etwas.

Aber ich geb dir schon recht, wenn man einen richtigen Treiber schreiben möchte ist man wahrscheinlich mit C besser dran weil Linux selber auch in C geschrieben ist.

Aber das ist mir heute einfach mal so in den Kopf gekommen.
Der Thread kann geschlossen werden.

Verfasst: Donnerstag 2. August 2007, 23:18
von ProgChild
Miko hat geschrieben:Ich hab mich schon gefragt ob gar keiner mehr antwortet. Aber auf dich ist verlass :D

Naja der Treiber sollte irgend eine virtuelle Netzwerkschnittstelle bereitstellen. Stimmt das könnte schwierig werden.
Das ist das einfachste an der Geschichte. Du musst nämlich nur ein Kernelinterface implementieren. Das wirst du nur nicht in Python können. Im Kernel läuft nur nativer Code. Du müsstest also einen Python-Interpreter für den Linux-Kernel portieren. Das wäre wohl ziemlich schwierig.
Miko hat geschrieben:Aber wenn man den Treiber die komplette Arbeit machen lässt, also auch Daten senden und empfangen. Dann dürft es doch nicht so schwer sein. Man könnte ja z.B. Empfangene HTML Dateien auf die Festplatte schreiben und mit einem Browser öffnen. Dann dürfte das doch wieder nicht so schwer sein. Man könnte dann im Internet zwar nur die Dinge machen die der Treiber kann, aber das wär ja schon immerhin etwas.
Die Karte hat keine Funktion, die heißt "empfange Datei per HTTP". Das geht so nicht. Die Karte implementiert nur eine Übertragungsschnittstelle. D.h. sie stellt funktionen bereit, bestimmte Bytes zu übertragen.

Viele Open-Source-Treiber werden per Reverse-Engeneering geschrieben. D.h. man probiert mal aus, was passiert, wenn man der Karte bestimmte Signale sendet. D.h. was passiert bei welchem IO Register.

Verfasst: Donnerstag 2. August 2007, 23:50
von Sr4l
Deine Idee mit dem Protokollieren ist genau das was Linux Treiber Entwickler machen. Wenn du es mit der UMTS Karte hinbekommen hast sag mir bescheit, dann komme ich vorbei ich habe da noch ne TVKarte im Laptop ;-)

http://ezs.kr.hsnr.de/TreiberBuch/html/

Kannst dir mal durch lesen :-D, ich habe es noch nicht getan habe es aber vor.
Ich denke es wird mir mal wenigstens nen Überblick und Einblick in die Denkweise geben.
PS: Nix Python sondern C ist gefragt :-)

Verfasst: Freitag 3. August 2007, 00:10
von Miko
dass mehr c gefragt ist dacht ich mich schon. Aber da wir in einem Python forum sind wollt ich es nicht so offensichtlich machen.

Die Daten vom Bus abzugreifen dürfte doch nicht so schwer sein oder?
Man müsste ja nur alle Daten von einer bestimmten IRQ aufzeichenen das sollte doch leicht zu bewerkställigen sein.

Dass die Karte selber keine Funktionen bereitstellt ist mir klar. Aber wenn man es soweit bekommt dass sie Bits ins Internet sendet dann kann man die paar HTTP Requests auch noch selber implementieren. Das dürfte das geringste Problem sein.

Aber anscheinend interessiert das Thema doch mehr Leute als ich dachte...

Verfasst: Freitag 3. August 2007, 12:32
von Sr4l
Du wirst nicht nur einen Befehl haben der Bits sendet, du wirst auch
um so etwas wie die Anmeldung, Verbindungsaufbau und ähnliches
kümmern du kannst ja mal das Online Buch was ich oben gepostet
habe lesen und uns deine Erfolge (ogal ob mit Python oder C)
mitteilen ;-)

Verfasst: Freitag 3. August 2007, 23:28
von HarryPython
Hi Mirko,

ich hab auch die Verbindung zu einer PCMCIA Karte mit Python gemacht. Die Firma liefert ja nur ein C Code Beispiel und eine dll mit. Hab das mit ctypes gelöst. Und was soll ich sagen... es läuft :lol:

Hat mich aber auch meine letzten Haare gekostet. Hab mir alles aus dem C Code und der dazugehörigen Header-Datei genommen und Schritt für Schritt übersetzt. Das größte Problem ist dabei dass die Pythonbibliotheken nicht die Typen hervorbringt die so eine C dll erwartet.
zb. Handle und Pointer auf Pointer. Hab aber hier viel Hilfe bekommen.

Wenn du es schaffst ist es dafür nur noch die Hälfte an Code.

Bin mal gespannt.... Viel Erfolg

und immer fleißig posten

Verfasst: Samstag 4. August 2007, 01:49
von Miko
Ich finds ja nett dass ihr mich alle so anspornt. Aber ich besitzt weder eine UMTS Karte noch ein Windows um Daten abzugreifen ^^.

Du könntest dein Programm mal zeigen damit ich mir ein Bild mache kann und es gegebenfalls auch mal benutzen kann.

Verfasst: Sonntag 5. August 2007, 17:46
von thelittlebug
Miko hat geschrieben: Dass die Karte selber keine Funktionen bereitstellt ist mir klar. Aber wenn man es soweit bekommt dass sie Bits ins Internet sendet dann kann man die paar HTTP Requests auch noch selber implementieren. Das dürfte das geringste Problem sein.
ich glaube du hast hier was grundlegend falsch verstanden.
ev. wäre ein blick in das osi schichtmodell nicht schlecht: http://de.wikipedia.org/wiki/OSI-Modell
auch bestehende kerneltreiber sollte man sich ansehen, am besten mal so einen netzwerkkarten treiber ;) der source ist ja frei

der rest ist "fummelei". da wärs natürlich praktisch wenn man den entwickler der hardware persönlich kennt und das erzählen solcher geheimnisse von der firma nicht unter die todesstrafe gestellt wurde.

gegen python spricht das treiber relativ performant sein müssen. zusätzlich solltest du mit anderen c teilen kommunizieren können. außerdem solltest du mit der hardware direkt kommunizieren können. mir persönlich gehen da in python einige sachen ab.

da ich kein kernel hacker bin ist das nächste nur etwas das ich gelesen habe aber sehr logisch klingt: linux hat nen kernel und einen userspace (oder wars usermode?). treiber sind im ( aber nicht mehr lange nur ausschließlich) kernelspace. kernel teile sind in c geschrieben da sie als maschinencode im kernel liegen. da fangen langsam die probleme an :) ich red gar nimma weiter halte dir aber alle daumen die ich habe :)

lgherby

Verfasst: Sonntag 5. August 2007, 17:55
von Miko
wie gesagt: Ich hab nicht vor einen Treiber zu programmieren nicht nur weil mir die ressourcen fehlen.
Auch weis ich dass c dafür wesentlich besser geeignet ist wollte aber so nicht in einem Python Forum fragen (siehe Beitrag oben!)

Das persönlicher Kontakt zu Hardwareherstellern optimal ist ist mir natürlich auch klar.

Eigentlich versteh ich nicht ganz was du mir mit dem Beitrag sagen willst. Das einzige was mich interessiert ist wie du darauf kommst dass ich etwas grundlegendes falsch verstanden hab. Da würd mich interessieren was du meinst!

Verfasst: Sonntag 5. August 2007, 17:57
von thelittlebug
was ich mit dem grundlegend falsch meine:

wenn du eine schnittstelle für die pcmciakarte erstellst die die regeln einhält bist du der letzte der dafür verantwortlich ist einen httprequest zu erstellen ;) siehe dazu osi

lgherby

Verfasst: Sonntag 5. August 2007, 21:48
von Damaskus
ähm ist jetzt evtl. etwas Offtopic aber...

Also ich verwende eine UMTS Karte über den PCMCIA Slot unter Debian und unter Ubuntu Problemlos. Also Treiber und Software sind im Prinzip alle in der Disti vorhanden. Musste nichts nachladen.

Gruß
Damaskus

Verfasst: Sonntag 5. August 2007, 21:54
von Miko
erlich? cool,
was für eine hast du bzw. von welchem Hersteller und welcher Chipsatz?

Das wär ja geil wenn das ohne probleme funktionieren würde auf debian und ubuntu. Unter gentoo sollte es dann ja auch ohne probleme laufen.

Verfasst: Montag 6. August 2007, 19:44
von Damaskus
Es ist eine Novatel Wireless Merlin U630, von Vodafone.
Schau mal im Ubuntuu Forum nach. Da steht alles drinn wie es geht.
Ich find leider den Link nicht mehr dazu.

Gruß
Damaskus

Verfasst: Dienstag 7. August 2007, 12:45
von Miko
danke, kannst du auch zwischen UMTS, HDSAP und GSM schalten?
Kannst du sie konfigurieren per Datei, Tool oder ähnlichem. Oder funktioniert sie einfach?

Verfasst: Donnerstag 9. August 2007, 17:30
von Miko
Über eine Antwort würde ich mich noch sehr freuen!

Verfasst: Donnerstag 9. August 2007, 18:23
von Damaskus
sry hab den Thread aus dem Auge verloren...
da meine Karte nur UMTS fähig ist, hab ich nur Zugriff auf GPRS unD UMTS.

Allerdings gibts da noch ein Problem. Ich kann maximal mit 16 KB über UMTS surfen. Ich hab mich aber weiter nie damit beschäftigt da mir das reicht wenn ich unterwegs bin und der Laptop zur Zeit eh nicht funktioniert.


Offtopic
Hat zufällig jemand ein Ladekabel für einen Acer Travelmate 420 zu verkaufen, meins ist kaputt ;)


Gruß
Damaskus

Verfasst: Donnerstag 9. August 2007, 20:04
von Miko
hm das ist schade!