##PulseAudioをアップデート後に音が出なくなった場合
pulseaudio-git
はヘッドセット/ハンズフリープロファイルと Bluez5 のネイティブサポートが追加されています
AURからBUILDしなおさなければなりません。なぜなら、 module-bluetooth-discover
をロードできないからです。
したがって、以下の手順を踏みます。
## ARCHリポジトリからアップデートしてしまった場合
#$ sudo pacman -Syu
#pulseaudio
# pulseaudio-git はヘッドセット/ハンズフリープロファイルと Bluez5 のネイティブサポートが追加されています
# pulseaudioをビルドする
$ yaourt -S pulseaudio-git
$ pactl load-module module-bluetooth-discover
# 現在使ってるサウンドカードを調べる
$ pacmd list-sinks|egrep -i 'index:|name:'
$ vim /etc/pulse/default.pa
##場合によっては、先ほど調べたサウンドカードを指定する(MacBookの場合はcard_1が使われることが多いので、基本的には変更することになります。詳しくは"/etc/asound.conf"を見てください)
#set-default-sink hoge.index.name
##場合によっては、恒久的にモジュールのロードを有効にする必要があるかもしれません
#load-module module-bluetooth-discover
## 場合によっては、既に登録失敗済みの場合、再接続にはremoveが必要になるかもしれません
$ bluetoothctl
remove 00:00:00:00:00
また、アップデートされないように設定しておくと良いかもしれません。この問題について発生するたびに調べるのも面倒です。
IgnorePkg = pulseaudio
しかし、このあたり、挙動が本当に分かりにくいのでそれも注意。例えば、MacBookの場合は、サウンド関連は、通常、index 1,card 1を使用するため、独自に指定する必要があります。デフォルトではここは0を使用するようになってて、ほとんどのコンピュータはそれで音が出ます。
そして、module-bluetooth-discover
モジュールのロードだけど、ビルド直後はロードできるが、再起動後はできなくなり、かつ設定ファイルに書いても、エラーが出てしまい音が出なくなります。
##基本的な説明
Bluetooth-Headsetで音を出すまでに結構ハマったので、メモ。
ポイントだけ先にあげておくと以下のようになります。
# 必要なもの
$ sudo pacman -S pulseaudio-alsa bluez bluez-libs bluez-utils bluez-firmware
# bluetooth-connect
# まず接続できるが、すぐに接続が切れる問題について
$ cat /etc/pulse/default.pa
$ pactl load-module module-bluetooth-discover
# sound-control
# 次に音が出ない問題について
$ sudo pacman -S pavucontrol
$ pavucontrol
通常、Bluetoothの接続は以下の手順でできると思われます。
$ bluetoothctl
power on
scan on
connect 00:1D:43:6D:03:26
場合にっては
pair 00:1D:43:6D:03:26
trust 00:1D:43:6D:03:26
connect 00:1D:43:6D:03:26
接続解除など
disconnect 00:1D:43:6D:03:26
remove 00:1D:43:6D:03:26
ヒント: 最新版の Bluez はヘッドセット/ハンズフリープロファイルをサポートしていません。そのためマイク入力は動作せず、A2DP プロファイルをサポートしていないヘッドセットには音声が出力されません。ヘッドセット/ハンズフリープロファイルのヘッドセットを使うときは、AUR を利用して他のパッケージを取得する旧式の方法を使用する必要があります。
ヒント: pulseaudio-git はヘッドセット/ハンズフリープロファイルと Bluez5 のネイティブサポートが追加されています。
ヒント: Bluez5 は PulseAudio しかサポートしておらず ALSA はサポートしていません。PulseAudio を使いたくない場合は AUR から昔のバージョンの Bluez をインストールする必要があります。
では、以下より具体的な説明に入りますが、かなり複雑な話になっていると思われますので、気になる方だけ。
##Bluez5
まず、Bluez5は、Alsaではなく、PulseAudioを使います。私の場合は、Alsaで音を出しており、サウンドカードも既に指定済みでした。
# 使いたいサウンドカード情報
$ aplay -l
$ alsamixer
pcm.!default {
type hw
card 1
}
ctl.!defalt {
type hw
card 1
}
#defaults.pcm.card 1
#defaults.pcm.device 0
#defaults.ctl.card 1
ここで、PulseAudioをインストールする場合、/etc/asound.conf
が置き換えられたりするので、音が出なくなることもありますので注意です。
私の場合は、MacBook特有の問題で、PulseAudioをMacBookで使う場合は、デフォルトのサウンドカードがHDMIに設定されてしまうため、pavucontrolをインストールしなければなりません。
Also, if you are using PulseAudio, sometimes it thinks HDMI is the default sound card; to solve this problem, install pavucontrol and set Analog Stereo as the fallback device.
あとは、pavucontrol
でGUIにていろいろと設定できます。
$ pavucontrol
ちなみに、mplayerの場合は、以下の設定が必要です。
ao=pulse
##Bluez4
もしAlsaを使いたければ、Bluez5をアンインストールし、Bluez4をインストールして使わなければなりません。その場合、Bluetoothの接続コマンドも変わってきます。
$ hcitool scan
00:1F:20:1D:1B:4B
$ hciconfig hci0 up
$ sudo bluez-simple-agent hci0 00:1F:20:1D:1B:4B
##ボリューム調整
私は、正直、Alsaのほうが好きですが、Bluetoothを使う以上、PulseAudioのほうが良いと思われますので、乗り換えました。
したがって、ボリューム調整方法なども変更
$ yaourt -S pamixer-git
##alsa
#function vol(){
#case $OSTYPE in
# darwin*)
# osascript -e "set Volume ${1}"
# ;;
# linux*)
# if [ $# != 1 ];then
# echo mute
# amixer sset Master mute
# else
# echo $1
# amixer sset Master unmute
# amixer sset Master ${1}
# fi
# ;;
#esac
#}
#pulseaudio
function vol(){
case $OSTYPE in
darwin*)
osascript -e "set Volume ${1}"
;;
linux*)
if [ $# != 1 ];then
echo mute
echo old `pamixer --get-volume`
pamixer --mute
else
echo $1
pamixer --unmute
echo old `pamixer --get-volume`
pamixer --set-volume $1
fi
;;
esac
}
##その他
###blueman
メニューとしてblueman
を使ってみました。
$ yaourt -S blueman
blueman-applet &
しかし、アイコンがダサいので、変更。
#!/bin/bash
numix_dir=/usr/share/icons/Numix/24x24/status
blueman_dir=/usr/share/icons/hicolor/24x24/status
sudo cp $numix_dir/bluetooth-tray.svg $blueman_dir/blueman-tray.png
sudo cp $numix_dir/bluetooth-active.svg $blueman_dir/blueman-active.png
sudo cp $numix_dir/bluetooth-active.svg $blueman_dir/blueman.png
ちなみに、メニューアイコンとか変更するやつ書きました。
気になるのあったら、ぜひ教えてください。
###pasystray
ステータスバーに表示される形のボリューム調整ツールです。
$ yarout -S pasystray-git
pasystray &