Anno domini 2024 Mon, 20 May 02:33:31 -0500 J Leslie Turriff via tde-devels scripsit:
I'm setting up a laptop machine for my brother. When I tried to use tdebluez to enable a bluetooth headset I got this response:
| 00:49:18 root@toreador | wd=~ | ● tdebluez& | [1] 14185 | rc=0 | @00:49:56 root@toreador | wd=~ | ● [tdebuildsycoca] tdebuildsycoca running... | [2024/05/20 00:49:56.685] Interface not implemented: org.bluez.AdminPolicySet1 | [2024/05/20 00:49:56.685] Interface not implemented: org.bluez.AdminPolicyStatus1 | [2024/05/20 00:49:56.685] Interface not implemented: org.bluez.LEAdvertisingManager1 | [2024/05/20 00:49:56.685] Interface not implemented: org.bluez.AdminPolicyStatus1 | [2024/05/20 00:49:56.685] obexd executable was not found | Set path in configuration file "tdebluezrc" | Variable: obexSrvExe=<path to obexd> | [1]+ Done tdebluez
So I searched for the missing component:
| zypper se obexd | Loading repository data... | Reading installed packages... | | S | Name | Summary | Type | --+------------------------+----------------------------------------------+-------- | | bluez-obexd | Object Exchange daemon for sharing binary -> | package | | bluez-obexd-debuginfo | Debug information for package bluez-obexd | package | | obexd | D-Bus service for Obex Client access | package | | obexd-client | D-Bus service for Obex Server access | package | | obexd-client-debuginfo | Debug information for package obexd-client | package | | obexd-debuginfo | Debug information for package obexd | package | | obexd-debugsource | Debug sources for package obexd | package | | obexd-server | D-Bus service for Obex Server service | package | | obexd-server-debuginfo | Debug information for package obexd-server | package | rc=0
Which of these packages do I need to install to make tdebluez work? Shouldn't tdebluez have triggered this as a dependency?
I got it working with bluez-alsa-utils + pulseaudio-utils + blueman-applet as everything should work from userspace.
If you use tdebluez you need to start bluealsa from your /etc/rc.local: ( bluealsa --profile=hsp-ag --profile=a2dp-source --profile=a2dp-sink --syslog) &
... or with sysv use this startscript:
#! /bin/sh /lib/init/init-d-script ### BEGIN INIT INFO # Provides: bluealsa # Required-Start: $local_fs $syslog $remote_fs dbus # Required-Stop: $local_fs $syslog $remote_fs # X-Start-Before: bluetooth # X-Stop-After: bluetooth # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start bluealsa daemons ### END INIT INFO
DAEMON=/usr/bin/bluealsa DAEMON_ARGS="--profile=hsp-ag --profile=a2dp-source --profile=a2dp-sink --syslog" PIDFILE=/run/bluealsa.pid START_ARGS="--background --make-pidfile"
... otherwise the headphone will connect and then disconnect again.
And you need to run a "supervisor" like that to automaically reconnect BT audio devices:
#!/bin/bash
echo "bt autoconnection audio devices ..."
CON=$(mktemp) PAI=$(mktemp)
while sleep 3; do bluetoothctl devices Connected | sort | cut -d ' ' -f 2 > $CON bluetoothctl devices Paired |sort | cut -d ' ' -f 2 > $PAI NC=$(comm -3 $PAI $CON 2>/dev/null) if [ ! -z "$NC" ]; then for i in $NC; do if [ $(bluetoothctl info $i | grep -i audio | wc -l) -gt 0 ]; then bluetoothctl connect $i fi done fi done
Well, there might be easier ways :)
Nik
Leslie