Linux Bluetooth protocol stack (BlueZ) is Missing in Linux_for_Tegra_24.2

Hi,
We are facing issues on using Bluetooth in version 24.2 but it seems to be worked in 24.0 and we found that BlueZ package is missing in 24.2. How to fix this now?

You may need different repositories enabled, but the general Ubuntu mechanism is this:

sudo apt update
sudo apt-get install bluez
# ...or just to see bluez related packages:
sudo apt search bluez

Note that this is just standard Ubuntu administration, there won’t be any difference versus a Jetson install (hardware drivers may be specific to a Jetson, but admin apps are an “Ubuntu thing”).

I just did a stock install of Jetpack 2.3.1 (R24.2.1) and was able to pair, connect and send output to bluetooth headphones and speakers without adding any additional software.

Hi all,
Thankyou for your suggestions, but my concern is about I cant able to find bluez related binaries in rootfs of 24.2 version but the same i can able to see in 24.0 rootfs.

Thanks,
Prasath

Can you supply the exact binary name of one of the files which is missing? Do realize that somewhere in the middle of the different versions the L4T goes from using Ubuntu 14 to Ubuntu 16, so there may be Ubuntu differences.

try dpkg-query -L bluez to show where bluez is installed. On my TX-1 running JetPack 2.3.1 the binaries are in the usual places (/bin, /usr/bin)

Hi linuxdev,

Yeah, Its 16.04 but in 24.1 its 14.04

Linux_for_Tegra/rootfs/usr/bin/

baobab    bc           bluetooth-agent     bluez-simple-service  bluez-test-discovery  bluez-test-serial     brasero       bsd-from
base64    bdftopcf     bluetooth-sendto    bluez-test-adapter    bluez-test-input      bluez-test-service    brltty-ctb    bsd-write
basename  bdftruncate  bluetooth-wizard    bluez-test-audio      bluez-test-manager    bluez-test-telephony  brltty-trtxt  btcflash
bashbug   bitmap       bluez-simple-agent  bluez-test-device     bluez-test-network    bmtoa                 brltty-ttb

Linux_for_Tegra_24.2/rootfs/usr/bin/

baobab  basename  bccmd        bioradtopgm  bitmap        bluetooth-sendto  bmptoppm  brltty-ctb    broadwayd   bsd-write  btmon
base32  bashbug   bdftopcf     bison        bluemoon      bluetooth-wizard  bmtoa     brltty-trtxt  brushtopbm  btattach   busctl
base64  bc        bdftruncate  bison.yacc   bluetoothctl  bmptopnm          bootctl   brltty-ttb    bsd-from    btmgmt

These are the files missing from 24.0 to 24.2

Hi sperok,

Below are the files which i have seen by using dpkg-query

ubuntu@tegra-ubuntu:~$ dpkg-query -L bluez

/.
/bin
/bin/hciconfig
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/bluetooth.service
/lib/udev
/lib/udev/rules.d
/lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
/lib/udev/rules.d/97-hid2hci.rules
/lib/udev/hid2hci
/var
/var/lib
/var/lib/bluetooth
/usr
/usr/bin
/usr/bin/rctest
/usr/bin/btattach
/usr/bin/obexctl
/usr/bin/l2test
/usr/bin/sdptool
/usr/bin/bluetoothctl
/usr/bin/ciptool
/usr/bin/bluemoon
/usr/bin/bccmd
/usr/bin/rfcomm
/usr/bin/btmgmt
/usr/bin/hciattach
/usr/bin/gatttool
/usr/bin/l2ping
/usr/bin/btmon
/usr/bin/hex2hcd
/usr/bin/hcitool
/usr/sbin
/usr/lib
/usr/lib/bluetooth
/usr/lib/bluetooth/mpris-proxy
/usr/lib/bluetooth/bluetoothd
/usr/share
/usr/share/dbus-1
/usr/share/dbus-1/system-services
/usr/share/dbus-1/system-services/org.bluez.service
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/hid2hci.1.gz
/usr/share/man/man1/l2ping.1.gz
/usr/share/man/man1/hciconfig.1.gz
/usr/share/man/man1/gatttool.1.gz
/usr/share/man/man1/l2test.1.gz
/usr/share/man/man1/hcitool.1.gz
/usr/share/man/man1/rfcomm.1.gz
/usr/share/man/man1/sdptool.1.gz
/usr/share/man/man1/bluetoothctl.1.gz
/usr/share/man/man1/rctest.1.gz
/usr/share/man/man1/mpris-proxy.1.gz
/usr/share/man/man1/bccmd.1.gz
/usr/share/man/man1/hciattach.1.gz
/usr/share/man/man1/bluemoon.1.gz
/usr/share/man/man1/btattach.1.gz
/usr/share/man/man1/ciptool.1.gz
/usr/share/man/man1/hex2hcd.1.gz
/usr/share/man/man1/btmon.1.gz
/usr/share/man/man8
/usr/share/man/man8/bluetoothd.8.gz
/usr/share/apport
/usr/share/apport/package-hooks
/usr/share/apport/package-hooks/source_bluez.py
/usr/share/doc
/usr/share/doc/bluez
/usr/share/doc/bluez/README.Debian.gz
/usr/share/doc/bluez/copyright
/usr/share/doc/bluez/NEWS.Debian.gz
/usr/share/doc/bluez/changelog.Debian.gz
/etc
/etc/dbus-1
/etc/dbus-1/system.d
/etc/dbus-1/system.d/bluetooth.conf
/etc/bluetooth
/etc/bluetooth/network.conf
/etc/bluetooth/input.conf
/etc/bluetooth/proximity.conf
/etc/bluetooth/main.conf
/etc/init.d
/etc/init.d/bluetooth
/etc/init
/etc/init/bluetooth.conf
/usr/sbin/bluetoothd

On a system which has the bluez file you want, can you run this to find out which package owns the file? That package could then be investigated on the system which is missing the file (perhaps the package has just changed and the file no longer exists, or perhaps the package can be added if missing). This finds the owner of a package:

dpkg -S /full/path/to/file/being/examined

That might of course be difficult if it requires flashing an older version. You could also do a google search such as this:

"ubuntu 16.04" which package "/usr/bin/bluez"

…here’s one interesting hit from that search:
https://askubuntu.com/questions/845646/which-package-provides-bluez-test-audio-script-on-kubuntu-16-04-lts
…note that the URL never got an answer, but if on your Ubuntu 16.04 you run this query with all repos enabled, you get no reply:

sudo apt search bluez-test-audio

I’m inclined to believe that in the change from Ubuntu 14.04 to 16.04 bluez dropped the binaries you are looking for and chose some new or different way to do the job.

Hi linuxdev,

We used bluetoothctl for pairing and connect to a bluetooth enabled device and we can able to pair and connect.

For Sending a file to a device we can’t able to send and we used bt-obex to transfer files and we got the below errors

root@tegra-ubuntu:/home/ubuntu# bt-obex -p 48:88:CA:E5:5A:43 jetson_clocks.sh                                                                         
[Transfer#jetson_clocks.sh] Waiting...
[Transfer#jetson_clocks.sh] Failed

(bt-obex:2849): GLib-CRITICAL **: g_variant_unref: assertion 'value->ref_count > 0' failed

Also we are not able to receive any files.
We used

gsettings set org.gnome.desktop.file-sharing bluetooth-obexpush-enabled true
gsettings set org.gnome.desktop.file-sharing bluetooth-accept-files always

yet its not able to receive any files

“jetson_clocks.sh” is new as of R24.2, and I don’t know what calls the script (the script is human-readable, I just don’t know what app calls it). That script has the ability to nicely list a number of clock settings (“jetson_clocks.sh --show”), but seems it was intended also to save and restore clocks into “~ubuntu/l4t_dfs.conf” (or other locations, that’s the default). Whether this would have any effect on bluetooth success/fail I don’t know.

Someone with more experience in bluetooth under the newer Ubuntu 16.04 may be able offer some insight on what setup changes need to be accounted for to get a successful file transfer. The one thing I can think of is that both WiFi antennas probably need to be connected for bluetooth to work…are both antennas connected?

Hi linuxdev,
Sorry for this confusion about jetson_clock.sh file. In bt_obex command(command to send files over BT) an argument to send a file is that I specified as jetson_clock.sh.So it’s just a file to transfer to other device
Yes both antennas are connected.
Also now i can able to send files over bluetooth to only some devices. But i can’t able to receive.
Is there any options to enable receiving over bluetooth other than the commands i said above like

Hi linuxdev,
Is there any way to resolve the bluetooth file sharing…?

I do not know enough about bluetooth to answer. I do suspect though that the issue would be the same on any platform. Having anything work in bluetooth, and having both antennas, it seems like the issue is likely one of general bluetooth configuration…how or where this issue is I don’t know.

Hi linuxdev,

Thankyou for your quick reply and support. I am working and I will share the fix if it works.