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
Treiberprogrammierung für PCI UMTS Karten
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Miko!Miko hat geschrieben:es kann doch garnicht so schwer sein einen Treiber für die PCMCIA Schnittstelle und die UMTS Karte zu schreiben.
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
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Ich hab mich schon gefragt ob gar keiner mehr antwortet. Aber auf dich ist verlass
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.
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.
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:Ich hab mich schon gefragt ob gar keiner mehr antwortet. Aber auf dich ist verlass
Naja der Treiber sollte irgend eine virtuelle Netzwerkschnittstelle bereitstellen. Stimmt das könnte schwierig werden.
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.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.
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.
Es ist nett, freundlich zu sein.
Auch nett: [url=http://www.progchild.de]Homepage[/url]
Auch nett: [url=http://www.progchild.de]Homepage[/url]
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
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 , 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
http://ezs.kr.hsnr.de/TreiberBuch/html/
Kannst dir mal durch lesen , 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
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...
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...
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
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
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
-
- User
- Beiträge: 60
- Registriert: Freitag 8. Juni 2007, 07:39
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
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
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
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
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.
Du könntest dein Programm mal zeigen damit ich mir ein Bild mache kann und es gegebenfalls auch mal benutzen kann.
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
ich glaube du hast hier was grundlegend falsch verstanden.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.
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
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!
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!
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
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
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
- Damaskus
- Administrator
- Beiträge: 995
- Registriert: Sonntag 6. März 2005, 20:08
- Wohnort: Schwabenländle
ä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
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
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.
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.
danke, kannst du auch zwischen UMTS, HDSAP und GSM schalten?
Kannst du sie konfigurieren per Datei, Tool oder ähnlichem. Oder funktioniert sie einfach?
Kannst du sie konfigurieren per Datei, Tool oder ähnlichem. Oder funktioniert sie einfach?
- Damaskus
- Administrator
- Beiträge: 995
- Registriert: Sonntag 6. März 2005, 20:08
- Wohnort: Schwabenländle
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
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