見出し画像

Bluetoothヘッドホンでハイエンドクラスのオーディオを BlueALSAのインストール

先にこちらのサイトで

「Bluetoothヘッドホンでハイエンドクラスのオーディオを」

と題したページを作成しました。そしてそのリンク先にとページを作成していたのですがどうにもこうにも先に進みませんでしたので、こちらに簡易バージョンをアップすべくようやく重い腰を上げました。

これは

LinuxのUbuntuにBlueALSAという音源をALSA高音質出力をBluetooth経由でヘッドホンに送るプロトコールです。一応、わたしの「オーディオ私見」のサイトに記載したのですが、まとまりがなくわかりにくいのでこちらにできるだけ簡便にインストールできる方法をまとめ改めてこれをご紹介いたします。

BlueALSAをインストールするプロトコールには大きく2通りあって

#1.アプリケーションインストール用アプリの「Synaptic」でインストールする方法
#2.BlueALSAのサイトからソースをダウンロードしてそれを自分でコンパイルしてインストールする方法

です。前者は比較的簡単です。といっても各種設定が必要で、ある意味容易ではありませんが。後者はLinux素人にはまず無理だと思います。わたしのような半素人が苦労した挙句、なんとかインストールできたというようなものです。

前者が簡単ならそれでいいのでは?

という疑問が出てきますが、なんとSynapticからインストールしたBlueALSAはAACやAptX/AptX-HDに対応していないのです。しかし、わたしのお勧めするLDACにはちゃんと対応しているのでLDACヘッドホンをお持ちの方はこれで十分といえます。

B&WのようなLDACに対応していないメーカーはどうするか、ですが、どうしてもAptX/AptX-HDにしたいということであれば頑張って#2でインストールするか、それが無理ならSBCで楽しむということとなります。SBCじゃだめだという場合は頑張るしかありません。

ただ、これは先にも申し上げたことですが現時点音質が最もいいのはLDACです。AptX/AptX-HDは音が硬くて伸びや柔らかさが劣っています。AptX-Adaptiveも同様ではないかと拝察しております。なぜなら諸所で「AptX-AdaptiveもAptXと同様の音質傾向を持っている」と言われていますから。

ですのでこちらでは#1の比較的容易にできるインストール方法をご紹介いたします。でもBlueALSAで聞けばSBCの音も結構素晴らしく聞こえますのでAptX派の方もどうかご安心ください。

#1.まずXubuntu MinimalなどのOSにBluetoothシステムをインストールします。Linuxとバージョンによってはすでにインストールされているものも少なくないでしょうが念のために行っておくといいと思います。ターミナルに以下のように入力します。

sudo apt install bluedevil unity-control-center blueman -y

これでBluetoothが使えるようになります。わたしがお勧めしているXubutu Core(今はもうインストールできませんが)やXubuntu Minimalでは絶対必要な作業です。このインストールにはすこし時間がかかります。


#2.それが終わったらSynaptic (Synaptic Package Manager)を立ち上げます。そして「bluez-alsa」と検索します。すると該当する項目が出てきますのでインストールしてください。

#3.ついでmpdの設定ファイルを操作します。ターミナルで「sudo nano /etc/mpd.conf」と入れて設定ファイルを開きます。

そしてOutputのところで「ALSA」出力の記載がなされている後ろのところに以下の文を挿入してください。

#
audio_output {
type "alsa"
name "My Bluealsa Device"
device "bluealsa"
mixer_type "software"
}
#

ここで「#」はあくまでも前後を区分けするためのものですので、入れなくても問題ありません。そしてctl+xでファイルを保存します。

#4.ついでターミナルに「sudo nano /etc/bluetooth/main.conf」と入力してBluetooth関連ファイルを開きます。すると「Class」という記載があるので

Class = 0x20041c

と変更してください。ctrl+xで保存します。


#5.次にターミナルに「sudo nano /etc/asound.conf」と入力してファイルを開きます。そこに以下の行を加えます。

defaults.bluealsa {
interface "hci0"
device "XX:XX:XX:XX:XX:XX"
profile "a2dp"
}

ここで"XX‥"は後からBluetooth機器に応じて記載しますので空欄でも構いません。

#6.そしてターミナルに

sudo nano ~/.asoundrc

と入力します。新しいファイルができると思いますので、そこに

defaults.bluealsa.service "org.bluealsa"
defaults.bluealsa.profile "a2dp"
defaults.bluealsa.delay 10000
defaults.interface "hci0"

と記載してくて保存してください。


#7.次にbluealsa関連のファイルを扱います。ターミナルに以下のように入力してください。

sudo nano /lib/systemd/system/bluealsa.service

これで開かれたファイルに「ExecStart」という箇所がありますので以下のように「#」をつけて勝手に稼働しないようにします。

#ExecStart=/usr/bin/bluealsa

ついで「[Install]」を見つけ出して以下のように記載します。

[Install]
Alias=dbus-org.bluez.service


#8.次に同じくターミナルで

sudo nano /lib/systemd/system/bluetooth.service

と入力してファイルを開きます。そして

ExecStart=‥‥

という記載を見つけ出して

ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap

と、後ろのところに追記します。次にその後方に「Install」というところを見出して

[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service

となっているか確認してください。なっていなければ適宜修正して保存します。

#9.そしてターミナルに

sudo nano /etc/dbus-1/system.d/bluetooth.conf

と入力してファイルを開きます。そして中身を全てdelキーを押しながら消去してのち以下の文をコピペします。このページにありますのでLinuxでアクセスしてコピーするのがいいでしょう。

<!-- This configuration file specifies the required security policies for Bluetooth core daemon to work. -->

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"https://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

<!-- ../system.conf have denied everything, so we just punch some holes -->

<policy user="root">
<allow own="org.bluez"/>
<allow send_destination="org.bluez"/>
<allow send_interface="org.bluez.Agent1"/>
<allow send_interface="org.bluez.MediaEndpoint1"/>
<allow send_interface="org.bluez.MediaPlayer1"/>
<allow send_interface="org.bluez.ThermometerWatcher1"/>
<allow send_interface="org.bluez.AlertAgent1"/>
<allow send_interface="org.bluez.Profile1"/>
<allow send_interface="org.bluez.HeartRateWatcher1"/>
<allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
</policy>

<policy at_console="true">
<allow send_destination="org.bluez"/>
</policy>

<!-- allow users of lp group (printing subsystem) to communicate with bluetoothd -->
<policy group="lp">
<allow send_destination="org.bluez"/>
</policy>

<policy context="default">
<deny send_destination="org.bluez"/>
</policy>

</busconfig>


#10.同様にターミナルで

sudo nano /etc/dbus-1/system.d/bluealsa.conf

と入力してファイルを開き、内容を以下の通りに置き換えます。これはこちらにあります。

<!-- This configuration file specifies the required security policies for BlueALSA core daemon to work. -->

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

<!-- ../system.conf have denied everything, so we just punch some holes -->

<policy user="root">
<allow own_prefix="org.bluealsa"/>
<allow send_destination="org.bluealsa"/>
</policy>

<policy user="bluealsa">
<allow own_prefix="org.bluealsa"/>
<allow send_destination="org.bluealsa"/>
</policy>

<policy group="audio">
<allow send_destination="org.bluealsa"/>
</policy>

</busconfig>


#11.最後にPulseAudioを稼働しないようにします。そのためにはターミナルで

systemctl --user mask pulseaudio.socket

ついで

systemctl --user mask pulseaudio.service

と入力します。


#12 .最後に、pipewireというシステムが入っているとうまく稼働しないのでこれを除去します。ターミナルに

sudo apt remove pipewire-audio-client-libraries pipewire

と入れます。

これで再起動すればBlueALSAが完成です。


ではBlueALSAを使ってみましょう。アプリでBluetooth Controlを開きます。するとBluetoothがペアリング相手を求めて稼働します。その際に使用したいヘッドホンをペアリングモードにしてしばらく待ちます。するとそのうちそのヘッドホンがBluetooth Controlの画面に出てくるでしょう。そしてそれを選択するのですが、その後方に記載されているアドレスをメモしてください。

XX:XX:XX:XX:XX:XX

と6つの2桁の数字からなっています。これを先に作成したasound.confに記入します。そのためには

sudo nano /etc/asound.conf

として例の「XX:‥」のところに今メモした数字を記載してゆきます。ちなみに複数のヘッドホンを使い分けたいなら、数字の前に「#」を入れますとそのヘッドホンのペアリンクは失活しますので、#のついていないものだけが稼働します。

記載したらmpdを再稼働します。ターミナルで

sudo service mpd restart

これでヘッドホンがLinuxとペアリングできるようになります。Bluetooth Controlに現れてきたそのヘッドホンのところをダブルクリックしますとペアリンクが完成します。

ここでBlueALSAをスタートします。LDACであればターミナルに

sudo bluealsa -p a2dp-source --ladc-abr

と入力してスタートします。ちなみにLDAC対応でなくてもこれで稼働します。ただしその場合のプロトコールはSBCとなります。

そして最後にmpdをCantataなどで再生させます。全てがうまくいっていたら素晴らしい音がヘッドホンから聞こえてきます。


念のためにちゃんとLDACなどのプロトロールで稼働しているのかどうか確認します。それにはターミナルに

sudo bluealsa-aplay -L

と入力します。これでLDAC 98 kHzと出ていれば完成です。LDAC非対応のヘッドホンであればSBC 48 kHzとなっているはずです。でもSBCでも十分素晴らしい音が出ます。通常のWindwosとかMacなどとは次元の違う音です。


以上、ご幸運をお祈り申し上げます。

なお、間違った箇所などありましたらどうかご指摘ください。皆様がちゃんとBlueALSAの素晴らしさを味わっていただけますよう心より願っております。


修正:2024/1/11
修正:2024/2/4
修正:2024/2/11
修正:2024/3/1

いいなと思ったら応援しよう!