Commit Graph

333 Commits

Author SHA1 Message Date
Inga Stotland
5759c46117 tools: Add mesh-cfgclient tool
This adds a tool that allows to create  mesh networks
opreating over advertising (PB-ADV) provisioning bearer.
The main commands are:
create - Create new mesh network with one initial node
discover-unprovisioned - Look for devices to provision
list-unprovisioned - List unprovisioned devices
provision - Initiate provisioning
list-nodes - List remote mesh nodes
2019-11-04 14:54:38 -08:00
Inga Stotland
fead292f2e tools/mesh: Move meshctl specific files to mesh-gatt 2019-11-04 14:54:38 -08:00
Andrzej Kaczmarek
4f5a1df1c4 monitor: Add support for reading over J-Link RTT
This patch adds support for reading data over J-Link RTT. It can be
used as replacement for TTY when reading from embedded devices since
it's much faster and does block a UART. Data format is the same as
for TTY. At the moment monitor over RTT is only supported by Apache
Mynewt project.

Reading data is done by polling RTT every 1 msec since there is no
blocking API to read something from RTT buffer.

To enable reading from RTT, J-Link configuration needs to be passed via
command line (all parameters except <device> can be skipped to use
default value):
  -J <device>,<serialno=0>,<interface=swd>,<speed=1000>
  -J nrf52,683649029

In some cases J-Link cannot locate RTT buffer in RAM. In such case
RAM area and buffer name should be provided via command line:
  -R <address=0x0>,<area=0x1000>,<buffer=monitor>
  -R 0x20000000,0x10000
2019-10-14 12:12:32 +02:00
Ronan Pigott
3825bc7f25 build: install zsh completions 2019-09-06 10:58:05 +03:00
Brian Gix
022b6d9cc2 build: Add missing mesh & btpclient dependencies
btpclient and bluetooth mesh fail to build on their own until
certain ELL and generated header files have been built, which
can cause a build to fail if derived objects are generated in
wrong order.
2019-06-12 08:13:50 -07:00
Ludwig Nussel
d2a72dd671 install: Fix installations to pkglibexecdir
In 78bce4800 libexecdir was switched to pkglibexecdir. To use the
matching installation script, use pkglibexec_Programs instead of
libexec_Programs.
2019-06-04 13:25:54 -07:00
Inga Stotland
ea61add0af test: Add unified test for mesh node example app
This adds one script, test-mesh, to replace three test-join,
example-onoff-server and example-onoff-client.
This is menu driven test that allows provisioning (join) and/or
connecting existing (attach) nodes.
2019-03-11 14:50:03 -07:00
Szymon Janc
ed62fed6b8 build: Fix missing dependency for btpclient
prog_DEPENDENCIES is computed by automake only if not supplied so we
must provide all dependencies if provided manually.

This resulted in random build failures:

libtool:   error: cannot find the library 'lib/libbluetooth-internal.la'
    or unhandled argument 'lib/libbluetooth-internal.la'
make[1]: *** [Makefile:5436: tools/btpclient] Error 1
2019-02-13 17:15:17 +02:00
Luiz Augusto von Dentz
c05f6e3057 core: Remove old code related to sd_notify
This is no longer needed since mainloop instances can handle it now.
2018-12-05 08:55:22 -03:00
Marcel Holtmann
0093cd61b1 build: Add support for internal and external ELL configuration 2018-12-04 17:21:08 +01:00
Marcel Holtmann
6b7ab44285 build: Move $(UDEV_CFLAGS) to global $(AM_CFLAGS) 2018-12-03 19:47:20 +01:00
Jan Engelhardt
85af4e7c4c build: add missing UDEV_CFLAGS
Some targets link UDEV_LIBS, which means they also need UDEV_CFLAGS
in their (or the global) CPPFLAGS.
2018-11-26 11:24:35 +02:00
Jan Engelhardt
06dbb223fb build: -D/-I arguments go into CPPFLAGS
-D and -I are preprocessor directives, they are therefore to appear
in CPPFLAGS, not CFLAGS. (It is unfortunate that pkg-config does not
make the distinction / or it was misnamed, because only -D/-I make
sense to be emitted by pkg-config in the first place — anything else
(-f/-m) has the potential to mess up someone's compilation. So
pkg-config's Cflags is actually used to convery Cppflags.)
2018-11-26 11:24:35 +02:00
Jan Engelhardt
bfede2a086 build: change @foo@ to $(foo) in automake makefiles
When using automake, all AC_SUBSTed variables are made available as
make variables, so that they can also be set at make time. Therefore,
they need not use the @harcoded@ style.
2018-11-26 11:24:34 +02:00
Luiz Augusto von Dentz
11ac678446 log: Use shared log code
Use bt_log_* to send messages to the logging channel.
2018-11-20 15:33:41 +02:00
Inga Stotland
ef05f4957d tools: Move meshctl sources under tools/mesh directory
This is a temporary location until the unified mesh solution is provided
2018-07-06 13:03:33 +02:00
Inga Stotland
f0d0c48e82 tools: Move meshctl tool under tools directory 2018-07-06 13:03:33 +02:00
Marcel Holtmann
01d94ab740 tools: Add utitlity for analyzing Broadcom HCD firmware files 2018-06-04 21:06:56 +02:00
Marcel Holtmann
294ebd5486 build: Fix issues with building dist packages 2018-05-29 15:32:09 +02:00
Szymon Janc
07384fa47a tools: Add initial code for btmon-logger
This is intended for use for automated logging or unatrended systems.
It doesn't contain any packet decoding functionality which results
in much smaller binary.
2018-04-24 10:41:47 +02:00
Johan Hedberg
c8bacaff6c build: Include Mesh JSON files unconditionally in EXTRA_DIST
We always want the JSON files to be part of the generated tarball, and
not just when --enable-mesh has been given.
2018-03-08 15:00:21 +02:00
Inga Stotland
dfd5144eef mesh: Add sample JSON files to EXTRA_DIST
This adds mesh/local_node.json and mesh/prov_db.json samples
to be included with dist tarball.
2018-03-06 09:48:22 +02:00
Szymon Janc
1e8da2a0fb tools/btpclient: Use address convertion function from libbluetooth
There is no need for internal helper.
2018-01-17 11:29:20 +01:00
Marcel Holtmann
2c7190715e tools: Add utility for Realtek config file parsing 2018-01-05 21:46:38 +01:00
Luiz Augusto von Dentz
7a03b61ee8 tools: Remove monitor/uuid.{c,h}
Use the shared/util.h helpers instead.
2017-12-21 10:08:22 -02:00
Szymon Janc
f68235b2c0 tools/btpclient: Add initial code
This adds initial code for BTP client tool that allows for automated
(binary protocol ) control of BlueZ stack. Currently this tool depends
only on Embedded Linux Library and requires master branch of ELL.
When 0.3 is released dependencies will be bumped.

Initial code allows to connect D-Bus client, discover objects and keep
proxies for it. It also implements basics for BTP core service.
2017-12-14 10:08:32 +01:00
Luiz Augusto von Dentz
a469cdb8be tools/bluetooth-player: Use bt_shell helpers
This makes bluetooth-player use bt_shell to manage the menus and
command handling.
2017-12-08 13:06:14 +02:00
Luiz Augusto von Dentz
c235db8066 tools/obexctl: Use bt_shell helpers
This makes obexctl use bt_shell to manage the menus and command
handling.
2017-12-08 13:06:13 +02:00
Luiz Augusto von Dentz
fc53175b8a mesh: Make meshctl use bt_shell helpers
This makes meshctl use bt_shell to manage the menus and command
handling.
2017-12-08 13:06:12 +02:00
Luiz Augusto von Dentz
bee3796113 build: Move shell.{c,h} to libshared
bt_shell instance should be available to any code linked with
libshared.
2017-11-20 11:34:15 +02:00
Luiz Augusto von Dentz
01bdd83d21 shared/shell: Add initial implementation
This add initial bt_shell helper which can be used to create shell-like
command line tools.
2017-11-17 16:00:19 +02:00
Marcel Holtmann
2954f7072d build: Don't install btconfig utility just yet 2017-09-14 11:32:43 +02:00
Luiz Augusto von Dentz
161691ae36 build: Cleanup GATT profiles
Alert, cyclingspeed, heartrate and proximity can all be implemented
using the GATT D-Bus API so they no longer need dedicated APIs.
2017-09-06 17:22:08 +03:00
Marcel Holtmann
8e96790482 mesh: Fix includes to use root relative path names 2017-08-21 13:40:03 +02:00
Brian Gix
2cbd0d69eb mesh: Add mesh to main bluez build 2017-08-21 12:54:11 +02:00
Marcel Holtmann
017df1b4b5 tools: Add skeleton for new btconfig utility 2017-08-21 12:30:28 +02:00
Luiz Augusto von Dentz
706f9cb68f client: Add acquire-notify command
This adds acquire-notify command which uses D-Bus AcquireNotify method
to acquire a file descriptor to read notifications locking the attribute:

[Test peripheral:/service001f/char0020]# acquire-notify
[CHG] Attribute /org/bluez/hci1/dev_56_A0_AA_D0_12_FF/service001f/char0020 NotifyAcquired: yes
AcquireNotify success: fd 7 MTU 65

< ACL Data TX: Handle 3585 flags 0x00 dlen 9
      ATT: Write Request (0x12) len 4
        Handle: 0x0022
          Data: 0200

[CHG] /org/bluez/hci1/dev_56_A0_AA_D0_12_FF/service001f/char0020 Notification:
  00

> ACL Data RX: Handle 3585 flags 0x02 dlen 8
      ATT: Handle Value Indication (0x1d) len 3
        Handle: 0x0021
          Data: 00
2017-07-05 14:27:38 +03:00
Marcel Holtmann
fedb7f6eab tools: Add testing utility for advertising 2017-06-07 14:12:54 -07:00
Luiz Augusto von Dentz
56178b6256 Revert "build: Make btmgmt tools installable"
Don't install btmgmt as there are plans for other tools to cover the
likes of hciconfig, etc.
2017-04-28 09:43:21 +03:00
Luiz Augusto von Dentz
1d9ac1eca8 build: Make btmgmt tools installable 2017-03-31 16:57:07 +03:00
Luiz Augusto von Dentz
df43b3dad8 build: Add testing config option
This adds --enable-testing that can be used to enable emulator and tester
which are no longer experimental but also are not meant for production.
2017-01-17 11:27:26 +02:00
Luiz Augusto von Dentz
301904d649 build: Promote experiemental tools
This promotes many tools that were behind --enable-experimental which are
in fact used as stable tools for a while.
2017-01-17 11:27:26 +02:00
Luiz Augusto von Dentz
b1eb2c4cd0 build: Hide deprecated tools under --enable-deprecated
This marks the following tools as deprecated as they are not longer
maintained or have been replaced by other tools:

  hciattach hciconfig hcitool hcidump rfcomm sdptool ciptool gatttool
2017-01-17 11:27:26 +02:00
Luiz Augusto von Dentz
6c9e45f965 client: Add advertise command
This adds advertise command which uses org.bluez.LEAdvertisingManager1 to
add an advertising instance:

[bluetooth]# advertise
broadcast   off         on          peripheral
[bluetooth]# advertise on
Advertising object registered

@ Advertising Added: 1
< HCI Command: LE Set Advertising Data (0x08|0x0008) plen 32
        Length: 3
        Flags: 0x02
          LE General Discoverable Mode

[bluetooth]# advertise off
Advertising object unregistered

@ Advertising Removed: 1
< HCI Command: LE Set Advertise Enable (0x08|0x000a) plen 1
        Advertising: Disabled (0x00)
2016-08-16 11:16:03 +03:00
Johan Hedberg
1cbe46134f monitor: Introduce support for extended TTY header
Add support for packet drops and 32-bit timestamps.
2016-05-04 10:35:22 +03:00
John Keeping
1b9e48f4c2 tools/btattach: install during "make install"
btattach provides access to some line disciplines that are supported by
hciattach, so allow it to be installed and not reserved for developer
use.  For now it is still considered an experimental feature.
2015-12-10 21:25:48 +02:00
Andrzej Kaczmarek
be310fa80d monitor/a2dp: Decode SBC capabilities
> ACL Data RX: Handle 256 flags 0x02 dlen 20                                                                                                                    [hci0] 9.242155
      Channel: 66 len 16 [PSM 25 mode 0] {chan 2}
      AVDTP: Get Capabilities (0x02) Response Accept (0x02) type 0x00 label 1 nosp 0
        Service Category: Media Transport (0x01)
        Service Category: Media Codec (0x07)
          Media Type: Audio (0x00)
          Media Codec: SBC (0x00)
            Frequency: 0x30
              44100
              48000
            Channel Mode: 0x0f
              Mono
              Dual Channel
              Stereo
              Joint Channel
            Block Length: 0xf0
              4
              8
              12
              16
            Subbands: 0x0c
              4
              8
            Allocation Method: 0x03
              SNR
              Loudness
            Minimum Bitpool: 2
            Maximum Bitpool: 53
        Service Category: Content Protection (0x04)
          Content Protection Type: SCMS-T (0x0002)

< ACL Data TX: Handle 256 flags 0x00 dlen 18                                                                                                                    [hci0] 9.272120
      Channel: 258 len 14 [PSM 25 mode 0] {chan 2}
      AVDTP: Set Configuration (0x03) Command (0x00) type 0x00 label 5 nosp 0
        ACP SEID: 1
        INT SEID: 3
        Service Category: Media Transport (0x01)
        Service Category: Media Codec (0x07)
          Media Type: Audio (0x00)
          Media Codec: SBC (0x00)
            Frequency: 44100 (0x20)
            Channel Mode: Joint Channel (0x01)
            Block Length: 16 (0x10)
            Subbands: 8 (0x04)
            Allocation Method: Loudness (0x01)
            Minimum Bitpool: 2
            Maximum Bitpool: 53
2015-12-01 10:42:29 +02:00
Andrzej Kaczmarek
4f25dba180 monitor/avdtp: Add basic decoding of AVDTP signalling
< ACL Data TX: Handle 256 flags 0x00 dlen 6
      Channel: 258 len 2 [PSM 25 mode 0] {chan 2}
      AVDTP: Discover (0x01) Command (0x00) type 0x00 label 0 nosp 0
> ACL Data RX: Handle 256 flags 0x02 dlen 14
      Channel: 66 len 10 [PSM 25 mode 0] {chan 2}
      AVDTP: Discover (0x01) Response Accept (0x02) type 0x00 label 0 nosp 0
        04 08 14 08 0c 08 08 08                          ........
2015-12-01 10:42:25 +02:00
John Keeping
431c44e5ad build: Link mcaptest with -lrt
profiles/health/mcap.c uses clock_gettime(3) so it needs to be linked
with -lrt on some systems.
2015-11-22 16:09:22 +03:00
Marcel Holtmann
cba48786c0 monitor: Add support for decoding Intel LMP / LL traces 2015-10-09 13:41:52 -07:00
Marcel Holtmann
90799f6da9 monitor: Add support for Broadcom diagnostic channel decoding 2015-10-07 22:42:29 +02:00
Luiz Augusto von Dentz
f2d17bea8d test: Add test-gatt-profile
test-gatt-profile can be used to register a GATT based profile using
GattManager1 interface.
2015-09-03 17:00:54 +03:00
Johan Hedberg
e4f0c5582f Makefile.tools: Move btmgmt to common READLINE section 2015-07-29 20:51:22 +03:00
Alexis Ballier
789be3cb2f Fix build with experimental enabled but no readline.
btmgmt requires readline. Protect it under if READLINE.
2015-07-29 20:49:50 +03:00
Marcel Holtmann
b16ae734a2 tools: Add testing utility for Eddystone beacons 2015-07-23 00:17:50 +02:00
Szymon Janc
e66c163290 tools: Add initial HCI User Channel tester
This adds basic tests only.
2015-05-18 22:02:19 +02:00
Marcel Holtmann
aa93fed410 peripheral: Add initial code for btsensor application 2015-04-28 09:19:12 -07:00
Marcel Holtmann
b4b016e904 tools: Add utility for analyzing Nokia firmware files 2015-04-10 23:21:47 +02:00
Gowtham Anandha Babu
639fa90c07 monitor: Add initial support for BNEP
> ACL Data RX: Handle 71 flags 0x02 dlen 11
      Channel: 64 len 7 [PSM 15 mode 0] {chan 0}
      BNEP: Control (0x01|0)
        01 02 11 16 11 15                                ......

> ACL Data RX: Handle 71 flags 0x01 dlen 35
      Channel: 64 len 1532 [PSM 15 mode 0] {chan 0}
      BNEP: General Ethernet (0x00|1)
        00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 0f  ................
        05 00 0c 03 00 00 20 00 00 03 00 00 20 00 00 3c  ...... ..... ..<

> ACL Data RX: Handle 71 flags 0x01 dlen 12
      Channel: 64 len 1509 [PSM 15 mode 0] {chan 0}
      BNEP: Compressed Ethernet Dest Only (0x04|0)
        00 00 00 00 00 00 08 00 3c 3b 3a 39 38 37 36 35  ........<;:98765
        34 33 32 31 30 2f 2e 2d 2c 2b 2a 29 28 27 26 25  43210/.-,+*)('&%
2015-04-10 17:19:57 +03:00
Marcel Holtmann
913e56dc11 tools: Add skeleton for BNEP kernel testing utility 2015-04-04 14:00:17 -07:00
Marcel Holtmann
fa3be045a6 tools: Add simple utility for creating CPIO / initramfs images 2015-04-02 00:03:47 -07:00
Arman Uguray
82f8a71a45 build: Include test/example-gatt-client
Added test/example-gatt-client to Makefile.tools.
2015-04-01 18:01:26 -07:00
Arman Uguray
156df086a3 build: Rename LE test scripts in Makefile.tools
Renamed test/advertisement-example to test/example-advertisement and
also added test/example-gatt-server to Makefile.tools
2015-04-01 17:57:52 -07:00
Marcel Holtmann
55dc79820f build: Add test utility for checking kernel selftest results 2015-04-01 13:07:46 -07:00
Marcel Holtmann
e622e623de build: Add test-runner utility for virtual machine execution 2015-04-01 01:43:13 -07:00
Marcel Holtmann
f5b75ed215 build: Move advertisement-example script into test directory 2015-03-28 19:12:53 -07:00
Grzegorz Kolodziejczyk
07861ffd10 tools/bneptest: Add initial support for bneptest tool
This tool should be designed to help testing bnep on BlueZ.
2015-03-13 15:03:48 +01:00
Johan Hedberg
28fd1d53f7 tools/btmgmt: Add initial readline support 2015-02-11 21:04:18 +02:00
Luiz Augusto von Dentz
aab6835b0a client: Add support for GattService1
This add support for GattService1 interface detection and prints when
they are added or removed
2015-02-10 13:15:57 +02:00
Marcel Holtmann
3e95defad9 tools: Add testing utility for OOB pairing via mgmt API 2015-01-30 23:18:50 -08:00
Marcel Holtmann
35bc544622 build: Actually install hex2hcd utility when tools are build 2015-01-23 21:32:38 -08:00
Marcel Holtmann
2aec81f1fa build: Move mcaptest to experimental tools and not installed tools 2014-12-28 22:30:31 +01:00
Marcel Holtmann
d6c1d96051 emulator: Add skeleton for virtual PHY handling 2014-12-14 01:04:59 +01:00
Arman Uguray
46da8d07a7 tools/btgatt-server: Introduce btgatt-server.
This patch introduces tools/btgatt-server, which is a command-line tool
for testing and debugging shared/gatt-server.
2014-11-17 11:29:27 +02:00
Gowtham Anandha Babu
3d92c0289c monitor/rfcomm: Add RFCOMM support to btmon
Changes made to add initial code to support RFCOMM frame in btmon

btmon logs:

      RFCOMM: Set Async Balance Mode (SABM) (0x2f)
        01 1c                                            ..

      RFCOMM: Unnumbered Ack (UA)(0x63)
        01 d7                                            ..

      RFCOMM: Unnumbered Info with Header Check (UIH)(0xef)
        15 81 11 20 e0 27 00 9a 02 00 07 aa              ... .'......

      RFCOMM: Disconnect (DISC)(0x43)
        01 fd
2014-11-10 11:01:44 +02:00
Ravi kumar Veeramally
ee83025c5e mcaptest: Move it from android to tools 2014-10-02 16:09:52 +03:00
Marcel Holtmann
508e129d75 build: Move hciemu.c and hciemu.h into emulator directory 2014-09-25 14:39:10 +02:00
Marcel Holtmann
9b912ea925 build: Use internal libshared-glib and libshared-mainloop libraries 2014-09-25 13:01:43 +02:00
Marcel Holtmann
1abfd19300 build: Move btgatt-client to list of experimental binaries for now 2014-08-30 18:51:43 +02:00
Arman Uguray
ec1b8421b4 tools/btgatt-client: Introduce tools/btgatt-client
This is the initial commit for tools/btgatt-client.c, a command line tool to
interactively test and debug shared/gatt-client.
2014-08-30 18:42:44 +02:00
Luiz Augusto von Dentz
dfd54b9eaa build: Remove mpris-proxy from experimental
This makes mpris-proxy tool to be compiled without --enable-experimental
2014-08-05 16:31:14 +03:00
Luiz Augusto von Dentz
f8dc3c2293 tools/mpris-player: Rename to mpris-proxy 2014-08-05 16:31:13 +03:00
Vikrampal Yadav
5f43216313 monitor: Add AVCTP support to btmon
Support for decoding AVCTP packets added in Bluetooth monitor.
2014-07-31 15:35:04 +03:00
Marcel Holtmann
a18440c23b tools: Use mainloop handling for btattach utility 2014-07-12 16:42:11 +02:00
Marcel Holtmann
096799fd52 emulator: Add support for providing a pseudo terminal 2014-07-12 15:53:16 +02:00
Lukasz Rymanowski
514e224641 android/gatt: Fix signed write command encoding
As per spec (BT spec 4.1 Vol[3], Part F, chapter 3.4.5.4) we need to
take opcode, handle and parameters to generate signature.
In order to support it signing is moved to att.c, place where pdu is
encoded
2014-05-30 13:26:14 +03:00
Marcel Holtmann
08b96e69c4 build: Add support for building hex2hcd utility 2014-05-10 18:57:45 -07:00
Luiz Augusto von Dentz
7641572bde tools: Remove simple-service
simple-service no longer works since the API it uses no longer exists and
Profile API already has a similar tool.
2014-04-22 10:44:44 +03:00
Loic Poulain
8366eae6d7 tools: add bcm43xx specific init in hciattach
Add a bcm43xx specific init sequence in hciattach
in order to initialize bcm43xx controllers.
2014-04-04 20:10:08 +03:00
Marcel Holtmann
1122fdefdb build: Add ringbuf source files to HCI user channel users 2014-04-04 00:53:48 -07:00
Marcel Holtmann
1e19efd1b9 tools: Remove device name cache feature from hcitool 2014-03-30 16:29:27 -07:00
Lukasz Rymanowski
f1f2ad6046 emulator: Use timeout for sending inquiry results
With this patch btdev uses timeout to schedule inquiry results
It also allows btdev to receive hci commands during inquiry.
Previously btdev was blocked since all the inquiry result were sent in
single loop
2014-03-20 14:11:25 +02:00
Johan Hedberg
8203def286 tools/ibeacon: Convert to using shared/timeout.h 2014-03-20 09:36:29 +02:00
Johan Hedberg
7d6bc43bca tools/btinfo: Convert to using shared/timeout.h 2014-03-20 09:36:14 +02:00
Johan Hedberg
4625ed3d40 tools/3dsp: Convert to using shared/timeout.h 2014-03-20 09:35:56 +02:00
Marcel Holtmann
ba4d51606b build: Add timeout abstraction to Bluetooth emulation 2014-03-19 22:30:04 -07:00
Marcel Holtmann
ea05fb38b1 build: Move gatt-service test utility into tools directory 2014-03-06 09:46:57 -08:00
Claudio Takahasi
533e4559fc test: Add external service GATT skeleton
This patch adds the initial code for an external GATT service example.
It implements the API defined at doc/gatt-api.txt
2014-03-06 16:53:03 +02:00
Marcin Kraglak
d969a40def shared/hfp: Add prefix handlers functionality
Add two functions: hfp_gw_register_prefix_handler() and
hfp_gw_unregister_prefix_handler(). It will allow user to register for
specific command. Current implementation just put/remove handler data
from queue.
2014-03-01 21:34:11 +01:00
Johan Hedberg
32b444a25d build: Link crypto code with the emulator 2014-02-26 17:59:37 +02:00