Odys Loox - USB-Bluetooth-Dongle!

F

fluxflux

Stammgast
273
Bluetooth-Dongle und Bluetooth-GPS-Empfänger: siehe https://www.android-hilfe.de/forum/...tooth-gps-empfaenger.195165.html#post-2596736

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:
kannste die hier posten?
 
fluxflux schrieb:
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.

Klingt sehr interessant flux....schau doch mal im IRC vorbei.
 
  • Danke
Reaktionen: Bingo21
mit speziellen Fachwissen kann ich nichts beitragen, hab aber 2 bluetooth-sticks rumkugln für tests wenn benötigt.
 
fluxflux schrieb:
Ich kann jetzt die für die Bluetooth-Anbindung eines USB-Bluetooth-Dongles notwendigen Kernelmodule (aktueller Standardkernel) ohne Fehlermeldung ins laufende System laden.
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:
wusel schrieb:
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 ...

@wusel: hast du was bekommen. Konntest du was weiteres herausfinden?

@fluxflux gibts bei dir zu diesem Thema neuigkeiten?
 
wishmasterf schrieb:
@wusel: hast du was bekommen. Konntest du was weiteres herausfinden?
nope, leider nicht.
Scheint so als ob fluxflux Dschungelcamp auf seinem Odys mit DVB-T guckt ..... :p
 
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:
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.
 
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.
 
  • Danke
Reaktionen: wishmasterf
Hi Thomas,
fluxflux schrieb:
Jetzt brauchen wir einen Kundigen, der das alles zusammenführen kann, bzw. weiß, wie man was umbiegen muss.

Die Kernelmodule laden problemlos.
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 ... ;)
 
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.
 
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

  • bluetooth.zip
    169,8 KB · Aufrufe: 626
Zuletzt bearbeitet:
fluxflux schrieb:
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.
was fehlt packe ich gleich, hab ich alles .... ;) ca. 20 min ...
Edit: siehe Anhang - ist ein komplettes xbin aus einer anderen FW ...
 

Anhänge

  • xbin.zip
    1 MB · Aufrufe: 500
  • Bluetooth.apk
    268,8 KB · Aufrufe: 691
Zuletzt bearbeitet:
Danke für die beiden Packs.

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

Thomas.
 
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:
Hi Thomas,
fluxflux schrieb:
Danke für die beiden Packs.
Was macht die Bluetooth-Weiterleitung genau? Weißt du mehr darüber?
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 ....
 
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:
  • Danke
Reaktionen: wusel
wusel schrieb:
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 ....

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.
 
fluxflux schrieb:
<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.
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
    537 Bytes · Aufrufe: 304
Zuletzt bearbeitet:

Ähnliche Themen

J
  • Jotto94
Antworten
0
Aufrufe
1.359
Jotto94
J
B
  • berry055
Antworten
0
Aufrufe
1.198
berry055
B
B
  • Bochumer86
Antworten
9
Aufrufe
3.329
Mami1973
M
Zurück
Oben Unten