1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

GPS-Empfänger an RK29xx Tablets

Dieses Thema im Forum "Odys Allgemein" wurde erstellt von wusel, 22.03.2012.

  1. wusel, 22.03.2012 #1
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    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:

    Zuletzt bearbeitet: 31.05.2012
    henryk, ropa, loki12345 und 2 andere haben sich bedankt.
  2. Toni Taste, 30.05.2012 #2
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    Hallo,

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

    Toni
     
  3. wusel, 31.05.2012 #3
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    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:

    Zuletzt bearbeitet: 31.05.2012
  4. Toni Taste, 31.05.2012 #4
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    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.
     
  5. wusel, 01.06.2012 #5
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Toni,
    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: 01.06.2012
  6. Toni Taste, 01.06.2012 #6
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    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:

  7. wusel, 05.06.2012 #7
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    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:

    Zuletzt bearbeitet: 06.06.2012
  8. Toni Taste, 07.06.2012 #8
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    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
     
  9. wusel, 08.06.2012 #9
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Toni,
    :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.
     
  10. Toni Taste, 10.06.2012 #10
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    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:

  11. wusel, 11.06.2012 #11
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Toni,
    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!
     
  12. querbeet, 12.06.2012 #12
    querbeet

    querbeet Neuer Benutzer

    Beiträge:
    20
    Erhaltene Danke:
    7
    Registriert seit:
    24.04.2012
    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:

    wusel bedankt sich.
  13. wusel, 12.06.2012 #13
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    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: 12.06.2012
  14. querbeet, 12.06.2012 #14
    querbeet

    querbeet Neuer Benutzer

    Beiträge:
    20
    Erhaltene Danke:
    7
    Registriert seit:
    24.04.2012
    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:

  15. Toni Taste, 12.06.2012 #15
    Toni Taste

    Toni Taste Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    1
    Registriert seit:
    02.05.2012
    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.
     
  16. wusel, 13.06.2012 #16
    wusel

    wusel Threadstarter Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    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
     
  17. fluxflux, 15.10.2012 #17
    fluxflux

    fluxflux Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    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: 15.10.2012

Diese Seite empfehlen