GPS-Empfänger an RK29xx Tablets

wusel

wusel

Stammgast
232
Wie man einen USB-GPS-Empfänger an unseren RK29xx Tablets mit Hilfe von UsbGps4Droid ans Rennen bekommt wurde ja schon von fluxflux in diesen Thread erklärt; nun habe ich aber noch eine alternative Lösung gefunden die eine vollwertige GPS-API anbietet (die UsbGps4Droid leider nicht bietet) sodaß Apps wie GPS Status oder GPS Test auch die Anzahl verwendeter Satelliten sowie deren Signalstärke anzeigen können. Diese Lösung erfordert entweder ein system-rw (ext3, ext4) was wohl die meisten mittlerweile verwenden, oder man kann auch alternativ die benötigte Lib in eine cramfs Firmware integrieren und dann flashen. Bei meinen Tests zeigte sich dass (zumindest mit meinem GPS-Receiver) keine weiteren Scripte mehr nötig sind und auch kein UsbGps4Droid mehr wenn der richtige Kernel-Treiber geladen wurde; es wird dann über die interne Android-API der Status abgefragt und auch das übliche GPS-Activity-Symbol in der Statusbar angezeigt (siehe Screenshots) ...
ich habe diese gps.serial.so Lib erfolgreich mit Loox, Cosmo und Xpress getestet sowohl mit Stock-FW als auch gemoddet und es lief immer soweit ...
wie man den nötigen Kernel-Treiber laden kann (z.B. mit inotitfyd oder fix in init.rc) wird schon genau in fluxflux' Thread erklärt; ob inotifyd Sinn macht weiss ich nicht weil es mir zumindest mit dem cp210x.ko dass ich für mein USB-GPS benötige nicht gelungen ist das Kernel-Modul wieder zu entladen (Resource busy) ...; es wäre wünschenswert wenn man es wieder entladen könnte da nach Entfernen und erneutem Anstecken ein neues Device erstellt wird das hochgezählt wird, also ttyUSB0, ttyUSB1, usw. ...
aber da diese Problematik grundsätzlich (also auch bei Verwendung von UsbGps4Droid) auftritt müsste man mal forschen ob man den Location-Service killen kann um damit das Modul wieder zu befreien ... :p
im angehängten Archiv findet man mit Pfaden diese Dateien:
Code:
/system/lib/hw/gps.rk29board.so   # die gps.serial.so Lib
/system/lib/modules/cp210x.ko     # usb2serial Modul
/system/lib/modules/pl2303.ko     # usb2serial Modul
/system/lib/modules/cdc-acm.ko    # usb2serial Modul
/data/local/home/usbserial.sh     # Beispiel Shell-Script
/data/local.prop                  # Beispiel local.prop
man muss entweder mit der local.prop oder mit den setprop-Befehlen aus dem Shell-Script diese Properties setzen:
Code:
ro.kernel.android.gps=ttyUSB0
gps.device=ttyUSB0
gps.baud=9600
gps.accuracy=6
Credits: Aiah (die Lib stammt aus seinem Archiv fview-bt.zip)
Aiah schreibt auch dass diese Lib ebenfalls mit Bluetooth klappen soll - habe ich aber nicht weiter getestet.
Das angehängte Archiv kann man wie üblich entpacken mit:
Code:
/system/bin/busybox mount -wo remount /system
/system/bin/busybox tar xvzf /sdcard/serialgps.tar.gz -C /
wenn man mit den Pfaden zufrieden ist; ansonsten einfach in einen Ordner extrahieren und die Dateien selbst an gewünschte Pfade kopieren ...

ACHTUNG: diese Anleitung funktioniert nur mit Android 2.3! Für ICS werden andere Kernelmodule benötigt, und die gps.rk29board.so scheint auch nicht zu funktionieren; sowbald ich da was habe was funktioniert werde ich das in einem neuen Post packen ...
 

Anhänge

  • gps_loox.png
    gps_loox.png
    17,3 KB · Aufrufe: 571
  • gps_xpress.png
    gps_xpress.png
    20,1 KB · Aufrufe: 603
  • serialgps.tar.gz
    33,5 KB · Aufrufe: 361
Zuletzt bearbeitet:
  • Danke
Reaktionen: henryk, ropa, loki12345 und 2 andere
Hallo,

auf meinem gerooteten XELIO funktioniert das leider nicht, ich habe keinen modules-Ordner. Was kann ich tun?

Toni
 
Toni Taste schrieb:
auf meinem gerooteten XELIO funktioniert das leider nicht, ich habe keinen modules-Ordner. Was kann ich tun?
gott-sei-dank! :razz:
nee, das kann's erstmal nicht tun weil Du auf dem Xelio schon ICS mit Kernel 3.0.8 hast - daher würden die Module nicht laden; Du brauchst also erstmal andere Module ... - siehe Anhang. Wo Du die hinpackst ist eigentlixh egal; z.B. wäre /data/lib/modules auch ok (einfach die Ordner anlegen die nicht vorhanden sind ...); allerdings möchtest Du aber bestimmt das Modul was Du für Deinen GPS-Stick brauchst auch dauerhaft automatisch geladen haben, und das geht erstmal nur über Änderungen an der init.rc, und die liegt im boot.img und die kann man auch als root erstmal nicht im laufenden System ändern sondern nur extern und dann neu flashen ...
kommt also hier auf Dich an inwieweit Du kundig bist mit dieser Materie und Dich traust an dem Teil rumzuflashen ...
weiterhin scheint diese serielle Lib auch nicht zu funktionieren unter ICS - zumindest habe ich sie bis jetzt noch nicht ans Rennen bekommen unter dem Cosmo, also muss man hier auch mal nach Ersatz suchen ...
bleibt dann also erstmal nur der Weg über die UsbGps4Droid.apk (da habe ich allerdings eine gemoddete Version die die Baudrate selbst setzen kann).
Versuch mal zum Start folgendes:

  • lege /data/lib/modules an
  • kopiere die beiden *.ko aus dem Anhang da hinein
  • stecke den USB GPS-Stick an den USB
  • lade eins der Module, z.B. erstmal: insmod /data/lib/modules/cp210x.ko
  • prüfe mit dmesg ob ein ttyUSB0 gemeldet wird
  • wenn nicht dann: insmod /data/lib/modules/pl2303.ko
  • nochmal: prüfe mit dmesg ob ein ttyUSB0 gemeldet wird
wenn sich eins der Module erfolgreich laden lies und Du nun ein Device /dev/ttyUSB0 hast dann probier mal:
cat /dev/ttyUSB0
das geht aber wahrscheinlich noch nicht da die Baudrate falsch ist, und da muss man nun experimentieren:
busybox stty -F /dev/ttyUSB0 speed <baudrate>
wobei Du <baudrate> dann durch entsprechende Werte ersetzen musst: 4800, 9600, 19200, 38400, 57600, 115200
und nach jedem Setzen dann wieder mit cat checken ob da was ankommt; wenn die Baudrate stimmt solltest Du im Sekundentakt immer Zeilen mit Zahlen und Buchstaben sehen (das sind die NMEA Daten).
Bitte berichte auch bei Deinem nächsten Post mal welchen USB-GPS Empfänger Du verwenden willst (PID:VID) ...

Oh, und BTW. eigentlich gehört das alles gar nicht hier in den Thread weil - soweit ich weis - das Xelio kein RK29xx-Tablet ist sondern ein Allwinner A10 Board hat ....
 

Anhänge

  • serial_modules-3.0.8.zip
    14,8 KB · Aufrufe: 409
Zuletzt bearbeitet:
Hallo wusel,

vielen Dank für die umfangreichen Hinweise und die tolle Hilfe!

Beim Ladeversuch für die Module erhalte ich die Fehlermeldung "invalide module format". dmesg zeigt dann für das pl2303 "pl2303: version magic '3.0.8+ preempt mod_unload ARMv7 ' should be '3.0.8+ preempt mod_unload modversions ARMv7 ' und für das andere Modul eine gleichwertige Meldung.
 
Hi Toni,
Toni Taste schrieb:
Beim Ladeversuch für die Module erhalte ich die Fehlermeldung "invalide module format". dmesg zeigt dann für das pl2303 "pl2303: version magic '3.0.8+ preempt mod_unload ARMv7 ' should be '3.0.8+ preempt mod_unload modversions ARMv7 ' und für das andere Modul eine gleichwertige Meldung.
ok, ich werde versuchen dies zu fixen ...
kannst Du bitte derweil mal 3 Sachen auf dem Xelio checken?
1) gibt es eine /proc/config.gz ? Wenn ja dann bitte hier posten / anhängen.
2) check mal bitte mit dmesg nach einem Neuboot die Ausgaben wenn Du den GPS-Stick ansteckst. Du kannst auch einfach diese Ausgabe in eine Datei schreiben mit:
dmesg > /sdcard/xelio_dmesg.txt
3) Sauge mal bitte dieses Script und lass es auf dem Xelio laufen (vorher mit busybox gunzip entpacken);
das sollte eine Datei /sdcard/Xelio-Info.tar.gz ergeben - diese bitte auch hier anhängen ...
 
Zuletzt bearbeitet:
Hallo wusel,

uff, da bringst Du mich als Android-Neuling aber ganz schön ins Schwitzen ;).

Also:
1) Datei existiert nicht
2) siehe Anhang: Hier war das GPS-Gerät während des Bootens angeschlossen
3) siehe Anhang: Wobei es Schwierigkeiten im Skript mit der Option z bei tar gab und ich diese einfach weggelassen habe.

Toni
 

Anhänge

  • XELIO-Info.tar.gz
    65 KB · Aufrufe: 163
  • xelio_dmesg.txt
    59,1 KB · Aufrufe: 805
Hi Toni,
habe Dich nicht vergessen, aber bin grad anderweitig busy, aber bald kommt was für Dich ... :razz:
sooo, da isses - nun die Hoffnung das diese Module laden - siehe Anhang ...
musst Dir die Module aus dem Unterverzeichnis rauspflücken; probier einfach nochmal dieselben wie vorher schon (cp210x und pl2303) und checke jedes Mal mit dmesg ob ein ttyUSB0 erstellt wird .....
oh, und danke für die Infos die Du erstellt hast!
 

Anhänge

  • modules-3.0.8v-serial.tar.gz
    24,2 KB · Aufrufe: 283
Zuletzt bearbeitet:
Hallo wusel,

alles kein Problem, ist ja auch nur so eine Idee.
Leider wird es wieder nichts. Fehlermeldung in dmesg: disagree about version of symbol module_layout.

Toni
 
Hi Toni,
Toni Taste schrieb:
Leider wird es wieder nichts. Fehlermeldung in dmesg: disagree about version of symbol module_layout.
:angry: mistige Kernel-Config ..... - aber immerhin schonmal andere Meldung ... :flapper:
tja, es würde jetzt eventuell helfen wenn Du mal suchst ob es nicht im System irgendein anderes Modul schon gibt was Du hier mal posten kannst:
Code:
busybox find / -name *.ko
eventuell kann ich damit herausfinden was die Chinadioten da mal wieder für ne Kernel-Konfiguration verwendet haben ...
aber gleichzeitig starte bitte auch eine Anfrage an Odys mit der Bitte um Herausgabe der Kernel-Sources (die müssen das laut Kernel-Lizenz!!) denn damit sind diese Probs sehr wahrscheinlich behoben, und weiteres geht (z.B. Bluetooth) ...; Odys wird sicherlich erstmal vertrösten, aber dann nachhaken und um Herausgabe der Kernel Config vorab bitten.
 
Hallo wusel,

der find-Befehl liefert doch eine Menge von Modulen. Ich habe zwei angehängt, vielleicht kannst Du in dem Gewirr etwas erkennen. Die Anfrage bei Odys stelle ich. Mal sehen, wie die reagieren.

Toni
 

Anhänge

  • module.zip
    162,5 KB · Aufrufe: 271
Hi Toni,
Toni Taste schrieb:
der find-Befehl liefert doch eine Menge von Modulen. Ich habe zwei angehängt, vielleicht kannst Du in dem Gewirr etwas erkennen.
hmm, war aber nur eins erstmal - und sehr interessant dass da ein gps.ko drin ist! Ok, hier ein Befehl der ein Archiv von allen gefundenen Modulen erstellt:
Code:
busybox tar cvzf /sdcard/modules.tar.gz `busybox find / -name *.ko`
kannst Du den bitte mal ausführen und dann Ergebnis anhängen? Thanks!
 
Hallo wusel,
lese hier schon eine Weile gespannt mit...Da von Toni noch keine Antwort kam, habe ich es halt mal gemacht. Da meine Stock-bussybox das z-flag nicht kennt, hab ich die Dateien in ein 7z-Archiv gepackt. Hoffe, das macht jetzt keine Probleme. Solltest Du noch weitere Infos brauchen, ich helfe gern.
VG querbeet
 

Anhänge

  • Modules.7z
    5,5 MB · Aufrufe: 226
  • Danke
Reaktionen: wusel
querbeet schrieb:
lese hier schon eine Weile gespannt mit...Da von Toni noch keine Antwort kam, habe ich es halt mal gemacht. Da meine Stock-bussybox das z-flag nicht kennt, hab ich die Dateien in ein 7z-Archiv gepackt. Hoffe, das macht jetzt keine Probleme. Solltest Du noch weitere Infos brauchen, ich helfe gern.
Supi, danke! Und klar - Format ist egal; Du kannst auch einfach das Z-Flag weglassen und dann das *.tar mit 7zip packen, das ist auch ok ... (für eventuell zukünftige Sachen); oder hat die busybox denn gzip? Dann kann man es damit auch zum *.tar.gz verwursten ...
BTW sehr unteressant was es da alles an Modulen gibt ...
Edit: bitte postet auch beide mal die IDs Eurer GPS-Sticks, dann weiss ich welche Module Ihr braucht ...
ok, und was auch noch hilfreich wäre:
Code:
busybox cat /proc/kallsyms > /sdcard/xelio-kallsyms.txt
[COLOR=Purple]# und optional wenn busybox gzip hat[/COLOR]
busybox gzip /sdcard/xelio-kallsyms.txt
und diese Datei dann hier anhängen (wenn kein gzip dann mit 7zip packen)
 
Zuletzt bearbeitet:
GPS-Stick hab ich noch keinen, werde ihn aber demnächst bestellen. Mir wäre natürlich lieber, wenn wir einen Bluetooth-USB-Stick zum laufen bekommen würden :blushing:, aber auch das ist erstmal einen Lösung. Okay, gzip hat die bussybox-hier das file. Sag Bescheid, wenn Du noch was brauchst. Und vielen Dank für Deine Mühe :thumbup:
 

Anhänge

  • xelio-kallsyms.txt.gz
    450,6 KB · Aufrufe: 189
Hallo,

vielen Dank an querbeet, denn ich bin zeitlich etwas knapp dran.
Ich habe zwei GPS-Geräte (wahrscheinlich alles Exoten): ein Holux GPSport 245 und ein Mercury 100. Für Textzwecke kann ich auch ein Garmin Dakota 10 einbringen.

Das fehlende z-Flag kann ich bestätigen. Sonst geht das Packen aber.
 
Toni Taste schrieb:
Das fehlende z-Flag kann ich bestätigen. Sonst geht das Packen aber.
diese Chinadioten wieder ..... - das ist nicht mehr als 'ne Option anhaken ...
ok, so gehts dann auch:
Code:
busybox tar cf - <quelldaten> | busybox gzip > zieldatei.tar.gz
 
wusel schrieb:
Credits: Aiah (die Lib stammt aus seinem Archiv fview-bt.zip)
Aiah schreibt auch dass diese Lib ebenfalls mit Bluetooth klappen soll - habe ich aber nicht weiter getestet.

Ich habe es auf meinem ext3-System probiert, der USB-GPS-Empfänger läuft manchmal, nicht immer. Es kommt bei jedem 2. Start vor, dass keine Daten reinkommen, egal, was ich anstelle.

Die Baudrate muss ich in jedem Fall auf 4800 einstellen, sonst geht gar nichts.

Mal sehen, wie ich das sauber geregelt bekomme ...

Bluetooth geht ohne UsbGPS bei mir nicht.

Thomas.
 
Zuletzt bearbeitet:

Ähnliche Themen

Z
Antworten
1
Aufrufe
6.089
freibergisch
freibergisch
A
  • aw48
Antworten
0
Aufrufe
768
aw48
A
bravolima
Antworten
1
Aufrufe
2.335
bravolima
bravolima
Zurück
Oben Unten