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

Odys Loox - USB-Bluetooth-Dongle!

Dieses Thema im Forum "Zubehör für Odys Loox" wurde erstellt von fluxflux, 17.01.2012.

  1. fluxflux, 17.01.2012 #1
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Bluetooth-Dongle und Bluetooth-GPS-Empfänger: siehe http://www.android-hilfe.de/zubehoe...mit-bluetooth-gps-empfaenger.html#post2596736

    Ich kann jetzt die für die Bluetooth-Anbindung eines USB-Bluetooth-Dongles notwendigen Kernelmodule (aktueller Standardkernel) ohne Fehlermeldung ins laufende System laden.

    Wir brauchen jetzt einen Weg, wie wir Bluetooth aktivieren können und angesteckte Dongles nutzen können.

    Bitte hier alle Ideen und Kenntnisse einbringen, gemeinsam sollte eine Lösung möglich sein.

    Thomas.
     
    Zuletzt bearbeitet: 23.01.2012
  2. netlars, 17.01.2012 #2
    netlars

    netlars Fortgeschrittenes Mitglied

    Beiträge:
    339
    Erhaltene Danke:
    92
    Registriert seit:
    05.11.2011
    kannste die hier posten?
     
  3. Subcineast, 17.01.2012 #3
    Subcineast

    Subcineast Fortgeschrittenes Mitglied

    Beiträge:
    361
    Erhaltene Danke:
    50
    Registriert seit:
    18.12.2011
    Klingt sehr interessant flux....schau doch mal im IRC vorbei.
     
    Bingo21 bedankt sich.
  4. wishmasterf, 17.01.2012 #4
    wishmasterf

    wishmasterf Fortgeschrittenes Mitglied

    Beiträge:
    409
    Erhaltene Danke:
    56
    Registriert seit:
    26.12.2011
    mit speziellen Fachwissen kann ich nichts beitragen, hab aber 2 bluetooth-sticks rumkugln für tests wenn benötigt.
     
  5. wusel, 18.01.2012 #5
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    wunderbar! :thumbsup:
    Dann pack mal bitte das Zeugs, und poste entweder hier, oder sende als PM und ich schiebs mal schnell auf meinen Server ...
    ausserdem kann ich noch jede Menge anderen Krempel zusteuern, z.B. die ganzen BT-Tools (commandline) sowie eine Bluetooth.apk ...
    nochwas zur Erkennung: wir müssen mal in eine andere Richtung denken, und versuchen herauszufinden wie die Events z.B. beim Verbinden eines UMTS-Sticks generiert werden und dann usb_modeswitch triggern - dieser Mechanismus könnte bei anderen USB-Geräten dann auch hilfreich sein ...
     
    Zuletzt bearbeitet: 18.01.2012
  6. wishmasterf, 21.01.2012 #6
    wishmasterf

    wishmasterf Fortgeschrittenes Mitglied

    Beiträge:
    409
    Erhaltene Danke:
    56
    Registriert seit:
    26.12.2011
    @wusel: hast du was bekommen. Konntest du was weiteres herausfinden?

    @fluxflux gibts bei dir zu diesem Thema neuigkeiten?
     
  7. wusel, 21.01.2012 #7
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    nope, leider nicht.
    Scheint so als ob fluxflux Dschungelcamp auf seinem Odys mit DVB-T guckt ..... :p
     
  8. fluxflux, 21.01.2012 #8
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Nein, ich hatte nur viel zu lesen, was mumudvb und dessen .conf angeht. Nachdem DVB-T problemlos läuft, kann ich jetzt mit Bluetooth weitermachen, wobei mir da etwas die Motivation fehlt, da ich keinen Bedarf an Bluetooth habe und die Implementierung nicht ganz so einfach sein dürfte, da man hier auf der Kernelebene und auch in Android Änderungen vornehmen muss ...

    Thomas.
     
    Zuletzt bearbeitet: 21.01.2012
  9. fluxflux, 21.01.2012 #9
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    So wie es ausschaut, ist Bluetooth softwaremäßig im Loox-System integriert.

    Allerdings ist alles auf ein BCM4xxx abgestimmt, für das auch ein Patch im System liegt, der beim Starten von hciattach ausgeführt wird. Ausserdem scheint das Bluetooth-Device, für das die Implementierung erstellt wurde, auf ttyS2 zu zeigen. Die Hardware fehlt ja bekanntermaßen.

    libbluetooth.so ist vorhanden, die notwendigen Konfigurationsdateien in /etc/bluetooth/ sind auch vorhanden.

    Jetzt brauchen wir einen Kundigen, der das alles zusammenführen kann, bzw. weiß, wie man was umbiegen muss.

    Die Kernelmodule laden problemlos.

    Soweit meine Erkenntnisse.

    Thomas.
     
  10. fluxflux, 22.01.2012 #10
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Mühsam ernährt sich das Eichhörnchen ...

    Stand:

    Kernelmodule eingebunden.
    Sitecom Bluetooth-USB-Stick korrekt erkannt.
    Bluetoothadresse zugewiesen.
    Scannen klappt.
    Browsen nach Remotediensten klappt.

    Thomas.
     
    wishmasterf bedankt sich.
  11. wusel, 22.01.2012 #11
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Thomas,
    na dann lass uns doch am Forschen teilhaben und gib uns schon mal bitte die Kernel-Module; oder sag mir wie Du das mit den missing Symbols gelöst hast, dann kann ich sie ja selbst bauen ...
    erwartet doch keiner von Dir hier eine ready-to-use Lösung ... ;)
     
  12. fluxflux, 22.01.2012 #12
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    In der Kernel-Config Bluetooth nicht auf "*" sondern auf "M" setzen, genauso alles im Unterverzeichnis Bluetooth als Modul kompilieren und dann bekommt man ein bluetooth.ko, das man als erstes lädt, dann kann man die anderen kompilierten Bluetooth-Module per insmod laden.

    Thomas.
     
  13. fluxflux, 22.01.2012 #13
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Im Anhang die von mir verwendeten Kernelmodule und die geänderte init.rc, die Bluetooth standardmäßig aktiviert.

    Die Kernelmodule und die init.rc liegen in der boot.img und werden so beim Booten geladen, ein angesteckter USB-Bluetooth-Dongle (hier Sitecom und Hama) wird korrekt erkannt und mit einer Bluetooth-Adresse versehen.

    hcifonfig und hcitool (auf dem Loox nach /system/bin/ kopiert und ausführbar gemacht), sowie spdtool (schon im System vorhanden) funktionieren einwandfrei, lediglich das Scannen dauert ungewöhnlich lang. Auch die LED des Dongles blinkt nicht dauerhaft wie in einem Linuxsystem, sondern nur beim Scannen.

    Es fehlt mir noch rfcomm zum Verbinden des Dongles mit einem Remotegerät, die dazu benötigte /dev/rfcomm0 habe ich per mknod angelegt, kann sie aber nicht nutzen.

    Ein Verbinden mit hcitool cc <bdaddr> klappt nicht, ein Timeout ist die einzige Meldung.

    Es ist also noch viel zu tun, aber der Anfang ist gemacht ...

    Thomas.
     

    Anhänge:

    Zuletzt bearbeitet: 22.01.2012
  14. wusel, 22.01.2012 #14
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    was fehlt packe ich gleich, hab ich alles .... ;) ca. 20 min ...
    Edit: siehe Anhang - ist ein komplettes xbin aus einer anderen FW ...
     

    Anhänge:

    Zuletzt bearbeitet: 22.01.2012
  15. fluxflux, 22.01.2012 #15
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Danke für die beiden Packs.

    Was macht die Bluetooth-Weiterleitung genau? Weißt du mehr darüber?

    Thomas.
     
  16. fluxflux, 22.01.2012 #16
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    GUI (also Bluetooth ein-/ausschalten in den Einstellungen) habe ich keines, aber ich kann über einen Bluetooth-USB-Dongle und einen Bluetooth-GPS-Empfänger mit Navit und GoogleMaps navigieren. In UsbGPS habe ich /dev/rfcomm0 als Schnittstelle eingetragen, nachdem ich mit rfcomm den USB-Bluetooth-Dongle mit dem Bluetooth-GPS verbunden habe.

    Das funktioniert nur mit einem Skript, aber immerhin funktioniert es.

    Danke an wusel für das Binary rfcomm, das mir noch gefehlt hat!!!

    Thomas.
     
    Zuletzt bearbeitet: 22.01.2012
  17. wusel, 23.01.2012 #17
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Thomas,
    keine Ahnung; ich sehe nur dass alle Android-Devices die Bluetooth an Board haben dieses apk auch in /system/app haben ...
    eventuell muß man ja die Setttings hacken damit es sich da einklinkt? Müssen wir mal näher untersuchen wie das bei den Android-Devices klappt die Bluetooth unterstützen ...
    Danke für die Module! Stimmt, ich hatte nur Bluetooth enabled, aber nicht als Modul, daher fehlte mir das Teil ...
    vielleicht können wir ja auch einen ordendlichen Platz für die Module wählen wie /lib/modules/{k-ver}/... und dann da eine modules.dep ablegen, was meinst? Eventuell geht dann sogar modprobe ....
     
  18. fluxflux, 23.01.2012 #18
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Hier das Skript, ein paar Erklärungen darin ...

    Code:
    #!/bin/sh
    #
    # hci0 aktivieren
    hciconfig hci0 up
    #
    # /dev/rfcomm0 anlegen
    busybox mknod -m 666 /dev/rfcomm0 c 216 0
    #
    # evtl. Verbindung releasen
    rfcomm release /dev/rfcomm0 <bdaddr> 1
    #
    # Verbindung aufbauen
    rfcomm bind /dev/rfcomm0 <bdaddr> 1
    #
    # GPS-Daten-Strom anstoßen
    cat /dev/rfcomm0
    <bdaddr> ist die MAC-Adresse des GPS-Empfängers, die mit "hcitool scan" ermittelt werden kann.

    Dieses Skript starte ich mit dem Skriptmanager und lasse den Strom solange laufen, bis ich UsbGPS gestartet habe, dann stoppe ich das Skript, damit UsbGPS den Stream übernehmen kann. Da ist etwas Übung erforderlich, damit man im richtigen Augenblick das Skript beendet.

    Klappt mit einem Hama- und einem Sitecom-BT-USB-Dongle und einem BT-GPS-8U Jentro Activepilot.

    Thomas.
     
    Zuletzt bearbeitet: 23.01.2012
    wusel bedankt sich.
  19. fluxflux, 23.01.2012 #19
    fluxflux

    fluxflux Threadstarter Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Ich habe die notwendigen Module und das geänderte init.rc im boot.img, damit muss nichts mehr geladen werden und es klappt auch bei cramfs-Systemen.

    Es gibt sicher andere Ansätze, die zum jeweiligen System passen (müssen). Bei rw-Systemen bietet sich dein Vorschlag an, das sehe ich auch so.

    Ein nächster Schritt wäre eine Verbindung zwischen der Android-Bluetooth-Aktivierung (die alle Bluetoothprogramme anstoßen) und dem hci0 (USB-Dongle) herzustellen, dann könnte man das alles nutzen ... aber das liegt über meinen Möglichkeiten ...

    Thomas.
     
  20. wusel, 23.01.2012 #20
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Thanks! Das sieht schon mal gut aus, und ich kann nur bestätigen dass es bei mir mit 2 total billigen China-Bluetooth-Dongels sowie einem LevelOne-Teil funtioniert! Habe noch bischen am Script gehackt um das Ganze mit der Device-Adresse zu automatisieren:
    Code:
    #!/system/bin/sh
    #
    device="/dev/rfcomm0"
    binprefix="/system/bin/busybox "
    #
    # hci0 aktivieren
    hciconfig hci0 up
    #
    hciconfig hci0 reset
    echo "Suche nach Remote Bluetooth Device ..."
    bdaddr=`hcitool scan | ${binprefix}sed -n -e 's#.*\([0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}\).*#\1#p'`
    if [ -z "${bdaddr}" ]; then
        echo "Kein Remote Bluetooth Device gefunden!" && exit 1
    else
        echo "Remote Bluetooth Device gefunden: ${bdaddr}"
    fi
    #
    # device node anlegen
    [ ! -c ${device} ] && ${binprefix}mknod -m 666 ${device} c 216 0
    #
    # evtl. Verbindung releasen
    rfcomm release ${device} ${bdaddr} 1 >/dev/null 2>&1
    #
    # Verbindung aufbauen
    rfcomm bind ${device} ${bdaddr} 1
    #
    # GPS-Daten-Strom anstossen
    ${binprefix}cat ${device}
    nochwas anderes habe ich nebenbei gefunden was für Stock-FW mit system-ro ganz nützlich ist: man kann eine /data/local.prop anlegen und dort Properties wie z.B. ro.android.gps.provider setzen - hat den Vorteil dass man es jederzeit ändern kann; zum Aktivieren ist allerdings ein Reboot erforderlich.
    Achja, Erklärung warum binprefix: manche Apps installieren eigene busybox Versionen wie z.B. SSHDroid, und damit habe ich schon maches Problem gehabt speziell mit insmod und cat - darum ist es besser explizit die systemeigene busybox zu verwenden ...
     

    Anhänge:

    • btgps.zip
      Dateigröße:
      537 Bytes
      Aufrufe:
      156
    Zuletzt bearbeitet: 23.01.2012

Diese Seite empfehlen