Linux/Bluetooth
★Slackware14.2/Current
Config
$ cat .asound pcm.default bluealsa ctl.default bluealsa defaults.bluealsa.interface "hci0" defaults.bluealsa.device "xx:xx:xx:xx:xx:xx" defaults.bluealsa.profile "a2dp" defaults.bluealsa.delay 10000 pcm.bt-receiver { type bluealsa device "xx:xx:xx:xx:xx:xx" profile "a2dp" }
application
- aplay -D bluealsa xxx.wav
- mpg123 -a bluealsa xxx.mp3
- mplaye -ao alsa:device=bt-receiver xxx.mp4
★Slackware12
Slackware12 に標準でインストールされているBlueZは audio.service が有効でなく,bluez-utils のバージョンも 3.9と少々古いため最新化を行う.
bluez のインストール
blueZから最新のパッケージ(2008.2.16時点で3.26)を入手、make し、既存のパッケージと入れ替える.
bluez-libs-3.26.tar.gz
> tar xvfz bluez-libs-3.26.tar.gz > cd bluez-libs-3.26 > ./configure --prefix=/usr/local/bluez-3.26 > make > sudo removepkg bluez-libs-3.9-i486-1 > sudo make install
bluez-utils-3.26.tar.gz
> tar xvfz bluez-utils-3.26.tar.gz > cd bluez-utils-3.26 > ./configure --prefix=/usr/local/bluez-3.26 > make > sudo removepkg bluez-utils-3.9-i486-1 > sudo make install > sudo cp daemon/passkey-agent /usr/local/bluez-3.26/bin/
bluez-firmware-1.2.tar.gz
bluez-hcidump-1.41.tar.gz
これらは既存のパッケージをそのまま利用で大丈夫だろう.
インストール
# cd /usr/local/ # ln -s bluez-3.26 bluez # cd /usr/local/bin; ln -s ../bluez/bin/* . # cd /usr/local/sbin; ln -s ../bluez/sbin/* . # cd /usr/local/lib; ln -s ../bluez/lib/* . # cd /usr/local/libexec; ln -s ../bluez/libexec/* . # cd /usr/local/include; ln -s ../bluez/include/* . # cd /var/lib; ln -s /usr/local/bluez/var/lib/* . # cd /usr/local/etc; ln -s ../bluez/etc/* . # cd /etc; ln -s /usr/local/etc/bluetooth . # cd /etc/dbus-1/system.d/; ln -s /usr/local/etc/dbus-1/system.d/bluetooth.conf . # cd /etc/udev/rules.d; ln -s /usr/local/etc/udev/bluetooth.rules 60-bluetooth.rules # cd /etc/rc.d/; ln -s /usr/local/etc/init.d/bluetooth rc.bluetooth # cd /etc/default; ln -s /usr/local/etc/default/bluetooth . # cd /usr/lib/alsa-lib; ln -s /usr/local/lib/alsa-lib/* .
MPX3000RPとの接続
bluez/AudioDevicesを参考にして,bluetoothデバイスとの接続を行う.
audioサービスの有効化
> dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio method return sender=:1.0 -> dest=:1.5 string ":1.4"
audioデバイス作成
> dbus-send --system --print-reply --type=method_call --dest=":1.4" /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:00:0D:3C:xx:xx:xx method return sender=:1.4 -> dest=:1.7 string "/org/bluez/audio/device0"
MPX3000RP をペアリングモードにした上で、hcitool で scan する.
> hcitool scan Scanning ... 00:0D:3C:xx:xx:xx
接続(平行してPINコードを設定する)
> passkey-agent <pin_code> 00:0D:3C:xx:xx:xx & > dbus-send --system --print-reply --type=method_call --dest=":1.4" /org/bluez/audio/device0 org.bluez.audio.Sink.Connect Passkey request for device 00:0D:3C:31:66:DB Passkey service has been released method return sender=:1.4 -> dest=:1.8
再生の準備
> cat > ~/.asoundrc pcm.bluetooth { type bluetooth device 00:0D:3C:31:66:DB }
再生(play)
> play --device=bluetooth xx.mp3
再生(mplayer)
> mplayer -ao alsa:device=bluetooth xx.mp3
設定を一通り完了すると,次回からはbluetoothデバイスの電源を入れ,再生開始するだけで良くなるようだ.
---
update at 2019/09/29 21:17:42
※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。