LoginSignup
2
2

More than 5 years have passed since last update.

組み込みLinuxでBluetoothヘッドセットを使う方法の一例

Last updated at Posted at 2018-12-05

buildrootでrootfsを作成した組み込みLinuxでBluetoothヘッドセット(イヤホンマイク)を使う方法の一例

カーネルコンフィグ

CONFIG_BT=m
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=m
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=y
CONFIG_BT_LE=y

CONFIG_BT_HCIBTUSB=m

CONFIG_SND=m
CONFIG_HID=m

buildrootのコンフィグ

BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACTL=y
BR2_PACKAGE_ALSA_UTILS_ALSAMIXER=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y

BR2_PACKAGE_BLUEZ_ALSA=y

BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y

Bluetoothヘッドセットのペアリング

BTヘッドセットのMACアドレスを00:1A:7D:XX:XX:XX とする。
BTヘッドセットをペアリングモードにした状態でrootユーザーで以下を行う。

# bluetoothctl
scan on
(該当するヘッドセットが見つかるのを待つ)
scan off
pair 00:1A:7D:XX:XX:XX
exit

同じものを再度ペアリングする場合は、一度デバイスを削除してからやり直す。

# bluetoothctl
remove 00:1A:7D:XX:XX:XX

Bluetoothヘッドセット接続のテストスクリプト

#!/bin/sh 
set -x
export LIBASOUND_THREAD_SAFE=0

# Check if BT exists
hciconfig |grep -q hci0 || exit 1


# MAC Address of the BT headset
BT_HEADSET=00:1A:7D:XX:XX:XX

cat << __eof__ > /tmp/.asoundrc
defaults.bluealsa.interface "hci0"
defaults.bluealsa.device "$BT_HEADSET"
defaults.bluealsa.profile "sco"
defaults.bluealsa.delay 10000
__eof__

/usr/libexec/bluetooth/bluetoothd &
sleep 1
bluetoothctl power off
sleep 2
bluetoothctl power on
sleep 2
bluetoothctl agent on
bluetoothctl connect $BT_HEADSET

/usr/bin/bluealsa &
sleep 2

while :; do
  if bt-device -i $BT_HEADSET |grep -q 'Connected: 1'; then
    if amixer -D bluealsa |grep -q 'SCO'; then
      sleep 10
    else
      bluetoothctl disconnect $BT_HEADSET
      sleep 1
    fi
  else
    bluetoothctl connect $BT_HEADSET
    sleep 5
  fi
done

https://github.com/Arkq/bluez-alsa に書いてあるが、
export LIBASOUND_THREAD_SAFE=0 を実行しておくと安定する。

マイクの音をファイルに保存

export LIBASOUND_THREAD_SAFE=0
arecord -f S16_LE -r 8000 -c 1 -D bluealsa test.wav

保存した音声ファイルを再生

aplay -D bluealsa test.wav
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2