Güvenilir Bluetooth hoparlörü otomatik olarak bağlama


10

Raspberry Pi'ye bir Bluetooth hoparlör bağlamak için aşağıdaki öğreticiyi ( http://mygeeks014.blogspot.nl/2015/01/audio-streaming-to-bluetooth-speaker.html ) izledim . Her şey olması gerektiği gibi çalışır, ancak Ahududu yeniden başlatıldığında veya hoparlör açıldığında / kapatıldığında hoparlör otomatik olarak yeniden bağlanmaz. Şu anda hoparlörü Raspbian GUI aracılığıyla manuel olarak yeniden bağlarım, ancak hoparlörü CLI aracılığıyla yeniden bağlamak için basit bir çözüm olup olmadığını merak ediyorum. Daha sonra henüz bağlı değilse hoparlörü yeniden bağlamak için basit bir CRON yazabilirim.

Yanıtlar:


17

İşte çok ayrıntılı bir açıklama:

Den3243

İşte bir komut satırı çözümü:

Öncelikle, "bluetoothctl" ile cihazınızı tarayalım, eşleştirelim. Bunu yapmak için, bunu komut satırında, terminalinizde çalıştırın:

bluetoothctl -a

Aşağıdaki gibi farklı bir komut istemi almalısınız:

[bluetooth]

BT hoparlörünüz açıkken şunu yazın:

scan on

Birkaç dakika içinde kullanılabilir BT cihazlarını görmelisiniz. Cihazın yanında MAC adresi olacaktır: 00: AA: 22: BB: 33. Şimdi şunu yazın:

info <your mac address>

Büyük veya küçük karakterleri hariç tutun. Aradığın şey BT hoparlörünüzle önceki bir tür ilişki. Bluetoothctl BT cihazınız hakkında bilgi göstereceğinden daha önce bir ilişkilendirme olduğunu bileceksiniz. Bu bilgilerin bazıları, eşleştirilen ve güvenilen cihazla ilgili olacaktır. Bu iyi.

Bluetoothctl hiçbir cihaz olmadığından şikayet ederse, şu anda bunu ayarlamamız gerekiyor. Bunu yapmak için şunu yazın:

pair <your mac address>

Cihazınızın başarıyla eşleştirilmesi hakkında bir başarı mesajı görmelisiniz. Şimdi yeni BT cihazımıza güvenelim. Bunu yaz:

trust <your mac address>

Yine, güven konusunda bir başarı mesajı görmelisiniz. Seni önceden uyarmama izin ver. BT cihazınız tekrar bağlanabilir. Asla korkma, bağlantı kurmasını istemiyoruz. Devam edelim ve "bluetoothctl" 'dan çıkalım. Bunu yapmak için şunu yazın:

quit

Şimdi komut satırı istemine geri getirileceksiniz. Önceki bir gönderide, ana dizininizde bir komut dosyası dizini oluşturmanızı önerdim. Eğer yapmadıysanız, devam edin ve şimdi yapın. Komut istemine şunu yazın:

mkdir -p ~/scripts

Enter tuşuna basın ve şimdi autopair bash betiğimizi oluşturalım. Bunu yaz:

nano ~/scripts/autopair

Bu kodu betiğe girin:

#!/bin/bash
bluetoothctl << EOF
connect [enter your MAC add]
EOF

Parantezleri hariç tutun!

Şimdi CTRL + x tuşlarına aynı anda basın ve komut dosyasını kaydetmek için enter tuşuna basın. Çalıştırılabilir yapmamız gerekiyor. Bunu yapmak için şunu yazın:

chmod +x ~/scripts/autopair

3,5 mm girişe harici analog hoparlörler takmadığınızı varsayıyorum. Bu doğruysa, alsa'yı devre dışı bırakalım. Bunu yapmak için, / boot dizininde config.txt adlı bir dosyayı düzenleyelim. Bunu yapmak için terminalinize şunu yazın:

sudo nano /boot/config.txt

Dosyanın alt kısmına gidin ve şu iki satırı arayın:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

Aşağıdakileri okuyan satırın önüne bir (kare işareti #) yerleştirin:

dtparam=audio=on

Benzemek:

#dtparam=audio=on

CTRL + x tuşlarına basın ve ardından dosyanızı kaydetmek için Enter tuşuna basın.

Pulseaudio'nun kurulu olduğunu varsayıyorum? Değilse, devam edin ve bu komutu komut satırından çalıştırın:

sudo apt-get update && sudo apt-get install pulseaudio -y

Bu size bluetooth çalışması için çok önemli bir bileşen sağlayacaktır! Şimdi .bashrc dosyamızı ana dizininizde düzenleyelim. Bunu yaz:

nano ~/.bashrc

Sayfayı aşağıya indirin ve şu satırı ekleyin:

pulseaudio --start

CTRL + x tuşlarına basın ve ardından dosyanızı kaydetmek için Enter tuşuna basın.

TAMAM! Python dünyasına girmemiz gerekiyor. Bluetooth cihazını izleyecek bir Python programı yazdım. Kısacası, Bluetooth hoparlörünüz açıldıktan sonra RPi ile bluetooth hoparlörünüz arasındaki bağlantıyı etkinleştirir. Ve tam tersi. Ana dizininizde python adlı bir dizin oluşturalım. Bunu yapmak için şunu yazın:

mkdir -p ~/python

Şimdi python program dosyasını oluşturalım. Bunu yapmak için şunu yazın:

nano ~/python/on.py

Bu dosyanın içinde aşağıdakileri kopyalayıp yapıştırmamız gerekir:

#!/usr/bin/python
#
# Monitor removal of bluetooth reciever
import os
import sys
import subprocess
import time

def blue_it():
    status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
    while status == 0:
        print("Bluetooth UP")
        print(status)
        time.sleep(15)
        status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
    else:
        waiting()

def waiting():
    subprocess.call('killall -9 pulseaudio', shell=True)
    time.sleep(3)
    subprocess.call('pulseaudio --start', shell=True)
    time.sleep(2)
    status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)  
    while status == 2:
        print("Bluetooth DOWN")
        print(status)
        subprocess.call('~/scripts/autopair', shell=True)
        time.sleep(15)
        status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
    else:
        blue_it() 

blue_it()

Şimdi Python program dosyasını kaydetmek için CTRL + x tuşlarına ve ardından Enter tuşuna basın. Şimdi bu dosyayı çalıştırılabilir yapmamız gerekiyor. Bunu yapmak için şunu yazın:

chmod +x ~/python/on.py

Son olarak, bunu ana dizinimizdeki .bashrc betiğimize ekleyelim:

nano ~/.bashrc

Sayfayı dosyanın altına indirin ve şu iki satırı ekleyin:

wait
~/python/on.py

Şimdi CTRL + x tuşlarına basın ve ardından kaydetmek için Enter tuşuna basın. Bluetooth hoparlörünüzü açın ve Raspberry Pi'nizi yeniden başlatın.

İyi şanslar!

-nitrolinux


Yorumun için teşekkürler. Ayrıca kullanıcı arayüzündeki 'Sink Audio' düğmesine basmam gerekiyor, bunun için bir CLI alternatifi var mı?
Den3243

Orijinal cevabımı güncelledim.
Jason Woodruff

1
Çok ayrıntılı açıklamanız için teşekkür ederiz! Tıkır tıkır çalışıyor.
Den3243

Çalıştığına sevindim!
Jason Woodruff

Bu komut dosyası, blue_it ve bekleme arasındaki sonsuz özyineleme nedeniyle sonunda çökmeyecek mi?
Kevin Chen

4

Özellikle bluetooth üzerinden ses çalma söz konusu olduğunda pulseaudio5 ile ilgili güncel sorunlar olduğunu buldum. Bu nedenle, onlar geldiklerinde bunları hata ayıklamak yerine sadece ne istediğinizi PulseAudio6 kullanın öneriyoruz.

Aşağıdaki her şeyi otomatik hale getirecek bir repo oluşturdum, böylece tüm bacak işlerini yapmanıza gerek yok, ancak hala yapmaya ayarlıysanız, aşağıda devam edin.

Repo: https://github.com/BaReinhard/a2dp_bluetooth

Kurulum Süreci:

git clone https://github.com/bareinhard/a2dp_bluetooth
cd a2dp_bluetooth/a2dp_source
./configure

Yükleme işlemi tamamlanana kadar bekleyin ve yeniden başlatın. Bitirdikten sonra cihazınızı başlangıçta eşleştirmeniz, eşleştirmeniz, güvenmeniz ve bağlamanız gerekir. İlk kullanımdan sonra yalnızca cihazı açmanız gerekir.

Eşleştirme, Güvenme ve Bağlantı Kurma:

sudo bluetoothctl
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# default-agent
[bluetooth]# scan on
[bluetooth]# pair XX:XX:XX:XX:XX
[bluetooth]# trust XX:XX:XX:XX:XX
[bluetooth]# connect XX:XX:XX:XX:XX
[bluetooth]# exit

-------------------- Komple izlenecek yol: --------------------

Derleme DarbeSes 6

Aşağıdaki Dosyaları ekleyin

/etc/init.d/pulseaudio

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          pulseaudio esound
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      udev network-manager
# Should-Stop:       udev network-manager
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start the PulseAudio sound server
# Description:       System mode startup script for
#                    the PulseAudio sound server.
### END INIT INFO

DAEMON=/usr/local/bin/pulseaudio
PIDDIR=/var/run/pulse
PIDFILE=$PIDDIR/pid
DAEMONUSER=pulse
PATH=/sbin:/bin:/usr/sbin:/usr/bin

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

pulseaudio_start () {
        log_daemon_msg "Starting system PulseAudio Daemon"
        if [ ! -d $PIDDIR ]; then
                mkdir -p $PIDDIR
                chown $DAEMONUSER:$DAEMONUSER $PIDDIR
        fi
        start-stop-daemon -x $DAEMON -p $PIDFILE --start -- --system --disallow-exit --disallow-module-loading=0 --daemonize --log-target=syslog --high-priority
        status=$?
        if [ -e /var/run/pulse/.esd_auth ]; then
                chown pulse:pulse-access /var/run/pulse/.esd_auth
                chmod 640 /var/run/pulse/.esd_auth
        fi
        if [ -e /var/run/pulse/.pulse-cookie ]; then
                chown pulse:pulse-access /var/run/pulse/.pulse-cookie
                chmod 640 /var/run/pulse/.pulse-cookie
        fi
        log_end_msg ${status}
}

pulseaudio_stop () {
        log_daemon_msg "Stopping system PulseAudio Daemon"
        start-stop-daemon -p $PIDFILE --stop --retry 5 || echo -n "...which is not running"
        log_end_msg $?
}

case "$1" in
        start|stop)
                pulseaudio_${1}
                ;;
        restart|reload|force-reload)
                if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then
                        pulseaudio_stop
                        pulseaudio_start
                fi
                ;;
        force-stop)
                pulseaudio_stop
                killall pulseaudio || true
                sleep 2
                killall -9 pulseaudio || true
                ;;
        status)
                status_of_proc -p $PIDFILE "$DAEMON" "system-wide PulseAudio" && exit 0 || exit $?
                ;;
        *)
                echo "Usage: /etc/init.d/pulseaudio {start|stop|force-stop|restart|reload|force-reload|status}"
                exit 1
                ;;
esac

exit 0

/etc/init.d/bluetooth

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:            bluetooth
# Required-Start:      $local_fs $syslog dbus
# Required-Stop:       $local_fs $syslog
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:   Starts bluetooth daemons
### END INIT INFO

. /lib/lsb/init-functions

DESC=bluetoothd
DAEMON=/usr/libexec/bluetooth/bluetoothd
#SSD_OPTIONS="--oknodo --quiet --exec $DAEMON --plugin=a2dp"
SSD_OPTIONS="--oknodo --quiet --exec $DAEMON" #Change to this if you want media control using DBus at the expense of volume control 
HCI=hci0

case "${1}" in
    start)
       log_daemon_msg "Starting Bluetooth daemon bluetoothd..."
       start-stop-daemon --start --background $SSD_OPTIONS
       log_progress_msg "${DAEMON}"

       hciconfig $HCI up > /dev/null 2>&1
       log_end_msg 0
       ;;

    stop)
        log_daemon_msg "Stopping Bluetooth daemon bluetoothd..."
        start-stop-daemon --stop $SSD_OPTIONS
        log_progress_msg "${DAEMON}"
        log_end_msg 0
       ;;

    restart)
       ${0} stop
       sleep 1
       ${0} start
       ;;

    status)
        status_of_proc "$DAEMON" "$DESC" && exit 0 || exit $?
       ;;

    *)
         echo "Usage: ${0} {start|stop|restart|status}"
         exit 1
       ;;
esac

exit 0

Yeni init.d hizmetlerini etkinleştirin ve yürütülebilir yapın

sudo chmod +x /etc/init.d/bluetooth
sudo chmod +x /etc/init.d/pulseaudio
sudo update-rc.d bluetooth defaults
sudo update-rc.d pulseaudio defaults

Gerekli tüm modüllere sahip olduğumuzdan emin olun

sudo apt-get install bluez pulseaudio-module-bluetooth python-dbus libtool intltool libsndfile-dev libcap-dev libjson0-dev libasound2-dev libavahi-client-dev libbluetooth-dev libglib2.0-dev libsamplerate0-dev libsbc-dev libspeexdsp-dev libssl-dev libtdb-dev libbluetooth-dev intltool autoconf autogen automake build-essential libasound2-dev libflac-dev libogg-dev libtool libvorbis-dev pkg-config python -y

Ana Dizin olarak değiştirin ve git kaynağından json-c'yi yükleyin (PA6 için gereklidir)

cd ~
git clone https://github.com/json-c/json-c.git
cd json-c
./configure 
make
sudo make install

Ana Dizin olarak değiştirin ve git kaynağından libsndfile dosyasını yükleyin

git clone git://github.com/erikd/libsndfile.git
cd libsndfile
./autogen.sh
./configure --enable-werror
make
sudo make install

Bluetooth'un arama yaptığından emin olun ( sudo hciconfig hci0 piscankullanımdan kaldırıldı)

cat << EOT | sudo tee -a /etc/bluetooth/main.conf
[Policy]
AutoEnable=true
EOT

Ana Dizin'e gidin ve git kaynağından PulseAudio 6'yı yükleyin

git clone --branch v6.0 https://github.com/pulseaudio/pulseaudio
cd pulseaudio
sudo ./bootstrap.sh
sudo make
sudo make install
sudo ldconfig

Nabzın gerekli tüm gruplarda olduğundan emin olun

sudo addgroup --system pulse
sudo adduser --system --ingroup pulse --home /var/run/pulse pulse
sudo addgroup --system pulse-access
sudo adduser pulse audio
sudo adduser root pulse-access
sudo adduser pulse lp

Güncelleme /etc/pulse/system.pave /etc/pulse/daemon.confaşağıdaki gibi görünmek için:

/etc/pulse/system.pa

#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

# This startup script is used only if PulseAudio is started in system
# mode.

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
 #load-module module-udev-detect
 load-module module-udev-detect tsched=0
.else
### Use the static hardware detection module (for systems that lack udev/hal support)
load-module module-detect
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Automatically restore the volume of streams and devices
load-module module-stream-restore
load-module module-device-restore

### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

### Enable positioned event sounds
load-module module-position-event-sounds

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-discover.so
    load-module module-bluetooth-discover
.endif
load-module module-bluetooth-policy
load-module module-switch-on-connect

/etc/pulse/daemon.conf

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -15

; realtime-scheduling = yes
; realtime-priority = 5

exit-idle-time = -1
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

# resample-method defaults to  speex-float-1 on most architectures,
# speex-fixed-1 on ARM
; resample-method = speex-float-1
resample-method = ffmpeg
enable-remixing = no
enable-lfe-remixing = no

; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 1000000

default-sample-format = s16le
default-sample-rate = 44100
;alternate-sample-rate = 48000
default-sample-channels = 2
; default-channel-map = front-left,front-right

default-fragments = 10
default-fragment-size-msec = 10

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0

Udev Kuralı Ayarla

Düzen /etc/udev/rules.d/99-com.rulesve aşağıdaki iki satırı ekleyin:

SUBSYSTEM=="input", GROUP="input", MODE="0660"
KERNEL=="input[0-9]*", RUN+="/usr/local/bin/bluez-udev"

Oluşturmak /usr/local/bin/bluez-udev

/ Usr / local / bin / bluez-udev

#!/bin/bash
name=$(sed 's/\"//g' <<< $NAME)
#exit if not a BT address
if [[ ! $name =~ ^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$ ]]; then exit 0;  fi

bt_name=`grep Name /var/lib/bluetooth/*/$name/info | awk -F'=' '{print $2}'`

audio_sink=bluez_source.$(sed 's/:/_/g' <<< $name)

action=$(expr "$ACTION" : "\([a-zA-Z]\+\).*")
logger "Action: $action"
if [ "$action" = "add" ]; then
    logger "[$(basename $0)] Bluetooth device is being added [$name] - $bt_name"
    logger "[$(basename $0)] Patching $audio_source into ALSA sink #$audio_sink"
    #hciconfig hci0 noscan
    bluetoothctl << EOT
discoverable off
EOT
    # Grab Card Number
    PACARD=`pactl list cards | grep "Card #" | sed "s/Card #//"`

    # Grab Sink Input if it exists
    audio_source=`pactl pactl list sink-inputs | grep "Sink Input" | sed "s/Sink Input #//"`
    if [ $audio_source = "" ];then
        sleep 5
        audio_source=`pactl pactl list sink-inputs | grep "Sink Input" | sed "s/Sink Input #//"`

    fi
    pactl set-sink-volume $audio_sink 65537
    if [ $audio_source != "" ]; then
        pactl set-source-volume $audio_source 90%
    fi
    pactl set-card-profile $PACARD a2dp_sink


    pactl set-default-sink $audio_sink





    # loop back this source to the default sink
    handle=$(pactl load-module module-loopback source=$audio_source sink=$audio_sink)
    logger "[$(basename $0)] PulseAudio module-loopback returned handle [$handle]"
    logger "$bt_name"


fi

if [ "$action" = "remove" ]; then
    # Grab Sink Input if it exists
    audio_source=`pactl pactl list sink-inputs | grep "Sink Input" | sed "s/Sink Input #//"`
    if [ $audio_source = "" ];then
        sleep 5
        audio_source=`pactl pactl list sink-inputs | grep "Sink Input" | sed "s/Sink Input #//"`

    fi
    pactl set-sink-volume 0 65537
    if [ $audio_source = "" ]; then
#        pactl set-default-sink 0
        pactl set-source-volume $audio_source 90%
    else
        pactl move-sink-input $audio_source 0 
    fi

    logger "[$(basename $0)] Bluetooth device is being removed [$name] - $bt_name"
    #hciconfig hci0 pscan

    bluetoothctl << EOT
discoverable on
EOT

    # remove any loopback modules assigned to this source
    # only required for USB sound cards, which PulseAudio will not automatically remove
    for handle in $(pactl list short modules | grep module-loopback | grep source=$audio_source | cut -f 1); do
        logger "[$(basename $0)] Unloading module-loopback with handle [$handle]"
        pactl unload-module $handle
    done

    sleep 5
    amixer cset numid=3 80%
    amixer cset numid=3 80%
fi

Bluez-udev'in yürütülebilir olduğundan emin olun

sudo chmod +x /usr/local/bin/bluez-udev

özet

Burada ne yapılıyor?

  • Bluetooth ve pulseaudio için init.d hizmetleri oluşturma ve bunları etkinleştirme
  • PulseAudio6 için Bağımlılıkları Yükleme
  • PulseAudio6'yı derleme ve darbe kullanıcısını gerekli gruplara ekleme (çoğu zaten yapılmış olacak)
  • Doğru modülleri yüklemek için daemon.conf ve system.pa ayarlarını yapın
  • Bir aygıt her bağlandığında bluez-udev'i çalıştırmak için udev kuralı oluşturun. bluez-udev, cihazın bir bluetooth cihazı olup olmadığını kontrol eder, eğer mevcutsa çalma sesini pulseaudio tarafından oluşturulan bluetooth cihaz lavabosuna bağlamaya çalışır. Bluetooth bağlantısını kestiğinde, akışı varsayılan lavaboya veya lavabo 0'a geri götürecektir. bağlı bluetooth cihazı. Tabii ki, bu göz korkutucu görünüyorsa

1

Bağlanmak için hcitool kullanan bir Bash betiği oluşturmayı denediniz mi?

#!/bin/bash
sudo hcitool cc [speaker Bluetooth address]


Bu dosyaya yürütülebilir haklar ekleyin ve sonra dosyayı cron'a ekleyin (istediğiniz zaman seçebilirsiniz).

Bir Bluetooth Klavyeye bağlanmaya çalıştığımda bu benim için çalıştı. Bir hoparlör için çalışıp çalışmayacağından emin değilim (farklı bir protokol olup olmadığından emin değilim). Bu yardımcı olur umarım!


0

bunu daha iyi buldum

sudo bluetoothctl <<EOF
power on
discoverable on
pairable on
agent NoInputNoOutput
default-agent 
EOF
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.