補足:raspbian JessieからStretchへのアップデートに際して、PulseAudioは捨てる方向になった模様。
Liteでは最初から
インストールされていない。
PulseAudioを構築するより、ALSAで環境を整える方が分かりやすい。
特色
今回はbluetooth-player、AACコーデックを利用するため、bluez + bluez-alsaをソースからビルドしインストールすることにした。
aptxやLDACはライセンスや技術的な問題のため実装は難しい(執筆時点で)。
※aptxやLDACは企業の持ち物であり、特にデコード=受信側がライセンスにより利用が制限されている。
一方で、送信側=
エンコードに関しては制限が緩く Linuxなどのオープンソース環境でもLDAC、aptx共に利用が可能になっている。
※上記両コーデックは高音質とされているが、実は現状のSBCコーデックはビットレートにおいて不利があるだけであり、同じビットレートで送信できれば aptxと音質の面で変わらないとも言われている。
このため、SBCのビットレートを上げて送信する方法が模索されている。
SBC XQと呼ばれるものがそれであり、最新のbluez-alsaでも、既にオプションでこれを有効化できるようになっている。
今回のようにラズパイ等をレシーバーとして利用する場合、スマホなどの送信側で対応している必要があるが、現状では、androidのカスタムROMであるlineageOSが対応しているのみのようだ。
ビルド前の準備
mkdir ~/src
sudo apt-get build-dep bluez bluealsa
Bluez5.50のビルド
cd ~/src
sudo apt-get build-dep bluez
必要なライブラリのインストール
wget https://s3.amazonaws.com/json-c_releases/releases/json-c-0.13.tar.gz
tar -xvf json-c-0.13.tar.gz
cd json-c-0.13/
./configure --prefix=/usr --disable-static && make
sudo checkinstall --pkgname=json-c --pkgversion="$(date +%Y%m%d%H%M)" --backup=yes --fstrans=no --default
wget https://mirrors.edge.kernel.org/pub/linux/libs/ell/ell-0.6.tar.xz
tar -xvf ell-0.6.tar.xz
cd ell-0.6/
./configure --prefix=/usr
make
sudo checkinstall --pkgname=ell --pkgversion="$(date +%Y%m%d%H%M)" --backup=yes --fstrans=no --default
bluezのビルド
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz
tar -xvf bluez-5.50.tar.xz
cd bluez-5.50/
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var \
--enable-experimental --enable-testing --enable-tools -enable-mesh
make
インストールは後程
Bluez-Alsaのビルド
AAC接続を有効にするためfdk-aacのビルド
cd src
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
bluez-alsaのビルド
apt-get install build-dep bluealsa
git clone https://github.com/Arkq/bluez-alsa
autoreconf --install
mkdir build && cd build
../configure --enable-aac --disable-hcitop --with-alsaplugindir=/usr/lib/arm-linux-gnueabihf/alsa-lib/
make
bluezとbluez-alsa(bluealsa)をビルドしたものに入れ替える
sudo apt-get remove bluez bluealsa
sudo apt-get autoremove
bluezインストール
cd ~src/bluez5.50
sudo checkinstall --pkgname=bluez --pkgversion="$(date +%Y%m%d%H%M)" --backup=yes --fstrans=no --default
bluez-alsa(bluealsa)インストール
cd ~/src/bluez-alsa/build
sudo checkinstall --pkgname=bluealsa --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
設定ファイル、Unit等の編集
bluez
特別な設定はしなかったような…
不都合が生じたら、ソースパッケージを取得してデフォルトの設定を確認する
bluealsa
raspbian liteのbluealsaパッケージにの設定ファイルを利用するため、ソースパッケージを取得しておく
パッケージを展開し、該当ファイルを同様の位置に配置
/lib/systemd/system/bluealsa.serviceを編集し、bluealsaの起動オプションに"-p a2dp-sink"をつけておく
接続設定・再生設定
この辺は通常の手順と同じ
最終更新:2020年03月10日 04:26