Falsche Nutzlast bei Verwendung des BlueZ-Stacks als Peripheriegerät

Ich habe versucht, die von davidgyoung in @ bereitgestellten Schritte zu befolgediese Frag. Hier sind die Befehle, die ich benutze:

hciconfig hci0 up
hciconfig hci0 noleadv
hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44
hciconfig hci0 leadv

Was gibt mir diese Ausgabe:

LE set advertise enable on hci0 returned status 12 
< HCI Command: ogf 0x08, ocf 0x0008, plen 10 
48 45 4C 4C 4F 57 4F 52 4C 44 
> HCI Event: 0x0e plen 4 
01 08 20 12 

Bitte beachten Sie, dass ich den empfohlenen Befehl nicht verwenden kannhciconfig hci0 leadv 0 weil es den Fehler auslöstWarning: unknown command - "0".

Allerdings, wenn ich versuche, auszulesen (z. B. mit einemhcidump --raw) die Nutzlast im beworbenen Paket von einem anderen Gerät Ich erhalte eine Ausgabe wie diese:

hcitool lescan -- duplicates Ausgabefragment (beide Einträge werden immer wieder wiederholt, auf dem MAC sollte es sich jedoch um dasselbe Gerät handeln):

00:1A:7D:DA:71:14 mint17-0
00:1A:7D:DA:71:14 (unknown)

matchinghcidump --raw Ausgabefragment:

> 04 3E 16 02 01 04 00 14 71 DA 7D 1A 00 0A 09 09 6D 69 6E 74 31 37 2D 30 BE 
> 04 3E 12 02 01 00 00 14 71 DA 7D 1A 00 06 02 01 02 02 0A 08 AD     

Ich verwende die Dongles Bluez 5.26 und CSR4.0.
Dies ist dashciconfig Ausgabe des Werbetreibenden:

hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:14  ACL MTU: 310:10  SCO MTU: 64:8
    UP RUNNING PSCAN ISCAN 
    RX bytes:1242 acl:0 sco:0 events:77 errors:0
    TX bytes:2079 acl:0 sco:0 commands:77 errors:0

Und das ist dashciconfig Ausgabe vom 'Scanner':

hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
    UP RUNNING PSCAN ISCAN 
    RX bytes:11753 acl:0 sco:0 events:552 errors:0
    TX bytes:1842 acl:0 sco:0 commands:75 errors:0

Was habe ich verpasst, um es zum Laufen zu bringen?

Aktualisieren
Folgend Davids Rat habe ich die cmd-Werte in @ geände

hcitool -i hci0 cmd 0x08 0x0008 10 0,2 01 1a 0c ff 18 01 48 45 4c 4c 4f 57 4f 52 4c 44

diese Ausgabe erhalten

< HCI Command: ogf 0x08, ocf 0x0008, plen 18
10 02 01 1A 0C FF 18 01 48 45 4C 4C 4F 57 4F 52 4C 44 
> HCI Event: 0x0e plen 4
01 08 20 12 

, aber immer noch Kauderwelsch (Nutzlastanteil deshcidump --raw Ausgabe

af:08:0a:02:02:01:02
b7:08:0a:02:02:01:02
be:08:0a:02:02:01:02
...

Update 2:
Folgend dem nächsten Hinweis habe ich versucht, der Nutzlast eine 00 hinzuzufügen:

< HCI Command: ogf 0x08, ocf 0x0008, plen 42
  10 02 01 1A 0C FF 18 01 48 45 4C 4C 4F 57 4F 52 4C 44 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 
> HCI Event: 0x0e plen 4
  01 08 20 12

nd hier dashcidump --raw output

> 04 3E 16 02 01 04 00 14 71 DA 7D 1A 00 0A 09 09 6D 69 6E 74 
  31 37 2D 30 BF 
> 04 3E 12 02 01 00 00 14 71 DA 7D 1A 00 06 02 01 02 02 0A 08 
  AC 
> 04 3E 12 02 01 00 00 14 71 DA 7D 1A 00 06 02 01 02 02 0A 08 
  BF 
> 04 3E 16 02 01 04 00 14 71 DA 7D 1A 00 0A 09 09 6D 69 6E 74 
  31 37 2D 30 BF 
> 04 3E 12 02 01 00 00 14 71 DA 7D 1A 00 06 02 01 02 02 0A 08 
  AD 

So noch keine freude.
Wäre es sinnvoll, eine andere (möglicherweise ältere) Version von bluez zu verwenden? Oder kann es hardwarebezogen sein und ich sollte versuchen, verschiedene Bluetooth-Dongles zu bekommen?

Update 3:
Versuchte das gleiche mit bluez 5.21, das für David funktioniert.

Hier ist ein Ausschnitt aus demhcidump --raw Ausgab

> 04 3E 0C 02 01 04 00 14 71 DA 7D 1A 00 00 D7 
> 04 3E 22 02 01 00 00 14 71 DA 7D 1A 00 16 02 01 0A 02 0A 08 
  0F 09 72 73 73 6D 74 2D 63 6C 69 65 6E 74 2D 30 D4 
> 04 3E 0C 02 01 04 00 14 71 DA 7D 1A 00 00 D4 
> 04 3E 22 02 01 00 00 14 71 DA 7D 1A 00 16 02 01 0A 02 0A 08 
  0F 09 72 73 73 6D 74 2D 63 6C 69 65 6E 74 2D 30 D2

Der Hostname hat sich geändert (auf der dritten Maschine getestet), daher ist die Ausgabe etwas anders, aber ich sehe immer noch nirgendwo 'Hallo Welt'.

n dieser Stelle sind alle Ideen mehr als willkomme

Update 4:
Versuchte einen anderen Hardware-Dongle IOGEAR GBU521W6 wie von David @ vorgeschlag) und das sieht jetzt sehr vielversprechend aus!

Bei Verwendung dieser Werbekonfiguration:

hcitool -i hci0 cmd 0x08 0x0008 10 02 01 1a 0c ff 18 01 48 45 4c 4c 4f 57 4f 52 4c 44

Ich bekomme diesehcidump --raw Ausgabe

> 04 3E 1C 02 01 00 00 BA D0 63 70 F3 5C 10 02 01 1A 0C FF 18 01 48 45 4C 4C 4F 57 4F 52 4C B5

Wie Sie sehen können, ist die Nutzlast fast vollständig, aber der letzte Buchstabe fehlt. Durch Ändern des Längenattributs auf 11 erhalte ich die volle Nutzlast:

hcitool -i hci0 cmd 0x08 0x0008 11 02 01 1a 0c ff 18 01 48 45 4c 4c 4f 57 4f 52 4c 44
----
> 04 3E 1D 02 01 00 00 BA D0 63 70 F3 5C 11 02 01 1A 0C FF 18 01 48 45 4C 4C 4F 57 4F 52 4C 44 AB

So für die Zukunft (und verschiedene Nutzdaten): Die erforderliche Länge scheint die Bytes der Nutzdaten zu sein (ohne das Längenattribut) - in diesem Fall 17.

Wichtig Es funktioniert nicht mitbluez 5.26 für mich benutze ichbluez 5.21 jetzt

Antworten auf die Frage(2)

Ihre Antwort auf die Frage