Radio-Switch für WWAN-Karten nutzbar machen, die nicht in der Whitelist stehen
Also das mit dem Wireless-Disable via Radio-Switch habe ich jetzt hinbekommen. Da hat sich Lenovo ja mal wieder was nerviges zwecks Vendor-Lock-In einfallen lassen. Weil ich das separate An- und Abschalten schon per Software machen kann, ging es mir nun nur noch darum, dass die Karte mit dem Radio-Switch deaktiviert wird. Wenn man den Pin 20 mit Masse verbindet, dann deaktiviert das die Karte.
Genau dies macht auch der EC bei Karten, die nicht in der Whitelist stehen, weswegen die Karten ohne Abkleben des Pins 20 nicht funktionieren. Klebt man den Pin ab, gehen diese Karten zwar, aber der Radio-Switch ist dann ohne Effekt für die WWAN-Karte. Zum besseren Verständnis eine Skizze:
Der EC sitzt quasi zwischen dem Radio-Switch und den Karten. Um das Signal vom Radio-Switch für WWAN-Karten nutzbar zu machen, die nicht in der Whitelist stehen, muss man den EC umgehen, der die ganze Zeit Pin 20 auf Masse legt, um die Karte zu deaktivieren. Dazu muss natürlich zu allererst die Verbindung zwischen dem EC und dem Kontakt für Pin 20 vom Mini-PCIe-Slot für WWAN gekappt werden. Der GLOBAL_WL_Pin ist EC-seitig high und wird vom Schalter in "ein"-Stellung auf Masse gezogen. Deswegen kann man nicht einfach direkt den Kontakt vom Schalter mit dem Kontakt für Pin 20 verbinden, weil das WWAN_DISABLE#-Signal active low ist und die WWAN-Karte in "ein"-Stellung des Schalter deaktiviert wäre.
Daher braucht man noch einen N-Kanal-Transistor, um das GLOBAL_WL_Signal vom Radio-Switch zu invertieren.
Mit einem npn-Transistor funktioniert es nicht, da das GLOBAL_WL_Signal über den Basis-Emitter-PN-Übergang mit Masse verbunden würde. Habe da nicht dran gedacht, zuerst einen npn-Transisor genommen und mich dann gewundert, warum der Schalter nur für die WWAN-Karte funktioniert, für WLAN und BT aber plötzlich nicht mehr.
Individuell abschalten kann man die WWAN-Karte entweder per separatem Schalter oder per Software, wenn man das AT-Kommando dazu kennt.
So sieht das in meinem T61 aus:
Weil man nirgends an die Leiterbahn zwischen dem EC und dem Kontakt vom Slot drankommt, habe ich den Kontakt vom Slot herausgezogen, das darunter befindliche Lötpad entfernt und den Kontakt dann wieder in den Slot eingesetzt. Danach konnte ich das Kabel zum Transistor anlöten. Den 10k-Widerstand könnte man sich wahrscheinlich sogar sparen, ich habe ihn sicherheitshalber mit reingenommen. Nimmt man einen N-Kanal-Transistor in Normalgröße anstatt in SMD dürfte das Löten deutlich leichter ausfallen
.
Wegen dem GPS unter Linux: Also grundsätzlich läuft das ja alles über AT-Kommandos und die kann man ja an die Karte schicken. Manuell per Minicom & Co ist das natürlich nicht sehr komfortabel, da müsste man sich schon ein Skript schreiben. Habe ich aber zum Test schon mal gemacht, da bekommt man auch die NMEA-Daten auf dem entsprechenden Port ausgegeben. Es gibt wohl auch ein AT-Kommando, was die Karte dazu bringt, von sich aus direkt nach dem Einschalten nach GPS-Satteliten zu suchen und die Position zu berechnen (wenn sie genügend Sattelitendaten empfangen sollte).
Am besten wäre es natürlich, wenn man den Siera GPS-Commander mit Wine zum Laufen bringt. Ich habe da schon mal ein paar Versuche gemacht und grunsätzlich findet die Software die Karte auch und kann an diese AT-Befehle schicken + die Antwort der Karte auslesen, wenn man einen entsprechenden symbolischen Link auf /dev/ttyUSB3 sowie /dev/ttyUSB2 legt und die Rechte anpasst wie
hier beschrieben. Allerdings hängt sich die Software und mit ihr das ganze Gerät nach einer Zeit auf. Das war aber macnhmal auch der Fall, wenn ich manuell AT-Kommandos an die Karte geschickt habe. Ich weiß momentan nicht, woran das liegt und ob man das beheben kann. Aber ich bin da auch nicht so der ultimative Linux-Crack
. Evtl. müsste man mal den Autor fragen ,ob er uns den Sourcecode gibt oder ob man die Einstellungen für den COM-Port-Zugriff irgendwie beeinflussen kann bzw. auf welche COM-Ports die Software überhaupt alles Zugriff benötigt.
UMTS via Network Manager funktioniert ganz normal.