Bluetooth disconnects when attempting to connect after pairing

Hi Sir:

Bluetooth disconnects when attempting to connect after pairing. How can this issue be debugged?
[bluetooth]# discoverable on
Changing discoverable on succeeded
[CHG] Controller 80:91:33:AD:B0:E8 Discoverable: yes
[NEW] Device C4:06:83:3F:38:53 HUAWEI P30 Pro
Request confirmation
[agent] Confirm passkey 233035 (yes/no): yes
[CHG] Device C4:06:83:3F:38:53 Modalias: bluetooth:v010Fp107Ed1436
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000046a-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001105-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001112-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001115-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001116-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000112f-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001132-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 0000fe35-0000-1000-8000-00805f9b34fb
[CHG] Device C4:06:83:3F:38:53 UUIDs: 11c8b310-80e4-4276-afc0-f81590b2177f
[CHG] Device C4:06:83:3F:38:53 UUIDs: 8ce255c0-200a-11e0-ac64-0800200c9a66
[CHG] Device C4:06:83:3F:38:53 UUIDs: 9664aa26-d76c-43ad-9775-d310f253a408
[CHG] Device C4:06:83:3F:38:53 ServicesResolved: yes
[CHG] Device C4:06:83:3F:38:53 Paired: yes
[CHG] Device C4:06:83:3F:38:53 ServicesResolved: no
[CHG] Device C4:06:83:3F:38:53 Connected: no
[bluetooth]# connect C4:06:83:3F:38:53
Attempting to connect to C4:06:83:3F:38:53
[CHG] Device C4:06:83:3F:38:53 Connected: yes
[CHG] Device C4:06:83:3F:38:53 ServicesResolved: yes
Failed to connect: org.bluez.Error.NotAvailable br-connection-profile-unavailable
[CHG] Device C4:06:83:3F:38:53 ServicesResolved: no
[CHG] Device C4:06:83:3F:38:53 Connected: no
[CHG] Controller 80:91:33:AD:B0:E8 Discoverable: no

Below are the results of three commands:
hciconfig lists all Bluetooth interfaces
lsusb lists all USB devices
systemctl status bluetooth checks the status of the system’s Bluetooth service

fih@jetson:~$ hciconfig
hci0: Type: Primary Bus: USB
BD Address: 80:91:33:AD:B0:E8 ACL MTU: 1021:6 SCO MTU: 255:12
UP RUNNING
RX bytes:2408 acl:0 sco:0 events:233 errors:0
TX bytes:38029 acl:0 sco:0 commands:233 errors:0

fih@jetson:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1358:c123 Realtek Bluetooth Radio
Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

fih@jetson:~$ systemctl status bluetooth

● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/bluetooth.service.d
└─nv-bluetooth-service.conf
Active: active (running) since Thu 2025-02-20 13:24:04 UTC; 2min 20s ago
Docs: man:bluetoothd(8)
Main PID: 487 (bluetoothd)
Status: “Running”
Tasks: 1 (limit: 8808)
Memory: 1.9M
CPU: 58ms
CGroup: /system.slice/bluetooth.service
└─487 /usr/lib/bluetooth/bluetoothd -d --noplugin=audio,a2dp,avrcp

Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:load_ltks_complete() LTKs loaded for hci0
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:load_irks_complete() IRKs loaded for hci0
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:load_conn_params_complete() Connection Parameters loaded for hci0
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Name: BlueZ 5.64
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Short name:
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Current alias: BlueZ 5.64
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:set_blocked_keys_complete() Successfully set blocked keys for index 0
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Name: jetson
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Short name:
Feb 20 13:24:04 jetson bluetoothd[487]: src/adapter.c:local_name_changed_callback() Current alias: jetson

The platform information is as follows:
SoC:NVIDIA Jetson Orin Nano
OS:Ubuntu 22.04 LTS
JetPack:6.0(Jetson Linux 36.4.4)
Kernel:5.15
BT Module:Realtek 8822CE-CG(via M.2 Key-E,USB 2.0 connect to Hub)

Thanks

Hello,

Thanks for visiting the NVIDIA Developer Forums.
To ensure better visibility and support, I’ve moved your post to the Jetson category where it’s more appropriate

Cheers,
Tom

Hi,
If it is a audio device, please apply this setup:
Enabling Bluetooth Audio — NVIDIA Jetson Linux Developer Guide

And please confirm you use Jetpack 6.2.1 r36.4.4. Jetpack 6.0 is r36.3. You mention Jetpack 6.0 r36.4.4, which is confusing.

Hi DaneLLL:

We confirmed that the system is running Jetson Linux (L4T) r36.4.4, verified via /etc/nv_tegra_release.

According to NVIDIA’s official mapping, L4T r36.4.4 corresponds to JetPack 6.2.1.

fih@jetson:~$ cat /etc/nv_tegra_release

R36 (release), REVISION: 4.4, GCID: 41062509, BOARD: generic, EABI: aarch64, DATE: Mon Jun 16 16:07:13 UTC 2025

KERNEL_VARIANT: oot

TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia

fih@jetson:~$ uname -a
Linux jetson 5.15.148-tegra #2 SMP PREEMPT Mon Dec 8 17:19:45 CST 2025 aarch64 aarch64 aarch64 GNU/Linux

Thanks

Maoyi

Hi DaneLLL:

We have updated the Bluetooth daemon startup configuration according to NVIDIA’s guidance by removing the following option:

–noplugin=audio,a2dp,avrcp

As a result, the BlueZ audio profiles (A2DP / AVRCP / HFP) are now enabled.

In addition, the PulseAudio Bluetooth backend has been installed and configured.

Bluetooth audio device pairing and connection have been verified successfully, and the connection remains stable without unexpected disconnections.

Thanks

Maoyi

Hi DaneLLL:

We would like to report the current Bluetooth file transfer status on Jetson.

Jetson is able to successfully transfer a file to the mobile phone using OBEX over Bluetooth. The test was performed as follows:

$ echo “BT MP Test” > bt_test.txt
$ obexftp --nopath --noconn --uuid none 
–bluetooth C4:06:83:3F:38:53 
–channel 12 
–put bt_test.txt

Suppressing FBS.
Connecting..\done
Sending “bt_test.txt”…/done
Disconnecting..-done

However, the reverse direction (mobile phone → Jetson) is not working.

On the mobile phone side, Jetson does not appear as a file transfer device, so the phone cannot send files to Jetson. Previously, when the Bluetooth connection was established, Jetson was displayed with a headset (audio) icon on the phone, not as a generic device or file transfer target.

Could you please advise the next steps for debugging this issue?
Specifically, we would like to confirm whether additional BlueZ services (e.g. OBEX Object Push / File Transfer profiles) or configuration changes are required for Jetson to be discoverable as a file-receiving device.

Thanks

Maoyi

Hi,
Please enable this config and try again:
Bluetooth cannot receive file on our custom carrier board - #7 by norman_xu

Hi DaneLLL:

We have verified the kernel configuration on Jetson Orin Nano
(Jetson Linux 36.4.4 / kernel 5.15.148-tegra).

CONFIG_RFKILL is already enabled and built-in:

fih@jetson:~$ zcat /proc/config.gz | grep -E “CONFIG_BT|CONFIG_BLUETOOTH|CONFIG_RFKILL”
CONFIG_BT=y
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

CONFIG_BT_HS is not set

CONFIG_BT_LE is not set

CONFIG_BT_LEDS=y

CONFIG_BT_MSFTEXT is not set

CONFIG_BT_AOSPEXT is not set

CONFIG_BT_DEBUGFS is not set

CONFIG_BT_SELFTEST is not set

CONFIG_BT_FEATURE_DEBUG is not set

CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
CONFIG_BT_QCA=m
CONFIG_BT_HCIBTUSB=m

CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set

CONFIG_BT_HCIBTUSB_BCM=y

CONFIG_BT_HCIBTUSB_MTK is not set

CONFIG_BT_HCIBTUSB_RTL=y

CONFIG_BT_HCIBTSDIO is not set

CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y

CONFIG_BT_HCIUART_NOKIA is not set

CONFIG_BT_HCIUART_BCSP is not set

CONFIG_BT_HCIUART_ATH3K is not set

CONFIG_BT_HCIUART_LL=y

CONFIG_BT_HCIUART_3WIRE is not set

CONFIG_BT_HCIUART_INTEL is not set

CONFIG_BT_HCIUART_BCM=y

CONFIG_BT_HCIUART_RTL is not set

CONFIG_BT_HCIUART_QCA=y

CONFIG_BT_HCIUART_AG6XX is not set

CONFIG_BT_HCIUART_MRVL is not set

CONFIG_BT_HCIBCM203X is not set

CONFIG_BT_HCIBPA10X is not set

CONFIG_BT_HCIBFUSB is not set

CONFIG_BT_HCIVHCI is not set

CONFIG_BT_MRVL is not set

CONFIG_BT_ATH3K is not set

CONFIG_BT_MTKSDIO is not set

CONFIG_BT_MTKUART is not set

CONFIG_BT_VIRTIO is not set

CONFIG_RFKILL=y
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y

CONFIG_RFKILL_GPIO is not set

CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y

CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set

CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set

CONFIG_BTRFS_DEBUG is not set

CONFIG_BTRFS_ASSERT is not set

CONFIG_BTRFS_FS_REF_VERIFY is not set

This confirms that our kernel configuration already satisfies
the requirement mentioned in NVIDIA forum thread #343468 (post #7).

Despite CONFIG_RFKILL being enabled, the issue still reproduces:

  • Jetson can successfully send files to the phone via OBEX (obexftp PUT works)
  • However, the phone cannot see Jetson as a file-receivable device
    (OBEX/OPP is not advertised from the phone side)

Therefore, this issue does not appear to be caused by RFKILL,
and is more likely related to BlueZ OBEX service exposure /
profile advertisement behavior on Jetson Linux 36.x.

We would like to ask for further guidance on:

  • How OBEX Object Push / File Transfer services should be properly
    advertised on Jetson Linux 36.x
  • Whether additional BlueZ components, plugins, or systemd services
    are required to make Jetson discoverable as an OBEX receiver

Thanks

Maoyi

Hi DaneLLL:

I have a question regarding “To enable Bluetooth audio”, specifically Step 3: “Enter these commands to update the apt-get package list and install the PulseAudio package:”

$ sudo apt-get update  
$ sudo apt-get install pulseaudio-module-bluetooth

In practice, the factory should not execute the two commands above. Is there any way to download the results of apt-get update and apt-get install pulseaudio-module-bluetooth, and then package and build these packages directly into the software?

Thanks

Maoyi

Hi,
You can clone the rootfs out for mass production. Please refer to
Flashing Support — NVIDIA Jetson Linux Developer Guide