BlueZ5は、コアBluetoothレイヤーとプロトコルのサポートを提供します。柔軟性があり、効率的で、モジュール式の実装を使用しています。BlueZ5は、GAP、L2CAP、RFCOMM、およびSDPを含むBluetoothコア仕様4.0および3.0 + HS用のBluetooth低レベルホストスタックを実装しています。ホストスタックの他に、BlueZ5は、以下のプロファイル自体またはサードパーティのソフトウェアを介してもサポートしています。
BlueZ5は最新のFreescale Linux BSPリリースでサポートされているため、Bluetoothコアスタックとそのプロファイルのバイナリを生成するのは非常に簡単です。SabreSDボードでA2DPシンクをサポートするには、以下のソフトウェアも対象のrootfsにダウンロードしてインストールする必要があります。
PulseAudio パッケージは bluetooth や sbc パッケージといくつかの依存関係があり、pulseaudio は 2 つのパッケージがビルドされたかどうかを検出し、どの pulse プラグインモジュールを生成するかを決定します。したがって、建物の順序は 1) bluez5_utils または bluez_utils 2) sbc 3) pulseaudio になります。
上記のソフトウェアをコンパイルしてターゲットの rootfs にインストールすると、ディレクトリ /usr/bin の下に次の実行可能ファイルが表示されます
ビルドの依存関係が正しく設定されている場合、次のパルスプラグインモジュールはディレクトリ /usr/lib/pulse-5.0/modules の下に配置する必要があります
ファイル /etc/dbus-1/system.d/pulseaudio-system.conf を編集し、次の行を赤字で追加します。
<許可 send_destination="org.bluez"/>
ファイル/etc/dbus-1/system.d/bluetooth.confを編集します。をクリックし、次の行を追加します。
/etc/pulse/system.pa にある pulseaudio システム設定ファイルの下部に次の設定を追加します。
### Bluetoothハードウェア用のドライバーモジュールを自動的にロードします
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
ロードモジュールモジュールスイッチオンコネクト
load-module module-alsa-sink device_id=0 tsched=true tsched_buffer_size=1048576 tsched_buffer_watermark=262144
alsa カードを自動的に検出できるシステムでは、上記の行 #13 を削除する必要があります。
また、次の行に「auth-anonymous=1」が追加されていることを確認して、「無効な認証データを持つクライアントへのアクセスを拒否しました」という問題を解決してください。
ロードモジュールモジュールネイティブプロトコル-UNIX auth-anonymous=1
オーディオ再サンプリングアルゴリズムを選択し、/etc/pulseにあるdaemon.confファイルに次の設定を追加してオーディオ出力を設定します。
再サンプル法=些細なこと
enable-remixing = いいえ
enable-lfe-remixing = いいえ
デフォルトサンプル形式= S16LE
デフォルトサンプルレート= 48000
代替サンプルレート= 24000
デフォルトサンプルチャネル= 2
Pulseaudio は、デーモンまたはシステム全体のインスタンスとして起動できます。PulseAudioをシステム全体のモードで実行するために、プログラムは自動的に「root」から権限をドロップし、「pulse」ユーザーとグループに変更します。この場合、プログラムを起動する前に、ターゲットシステム上に「パルス」ユーザーとグループを作成する必要があります。以下の例では、"/var/run/pulse" は "pulse" ユーザーのホームディレクトリです。
adduser -h /var/run/pulseパルス
addgroupパルスアクセス
adduser パルスアクセス
PulseAudio はサウンド デバイスにアクセスする必要があるため、ユーザー "pulse" も "audio" グループに追加します。
AddUserパルスオーディオ
bluetoothd と pulseaudio の起動:
/usr/libexec/bluetooth/bluetoothd -d および
pulseaudio --system --リアルタイム &;
pulseaudio が正しく設定されているかどうかを確認するには、次のコマンドを使用してローカルの wave ファイルを再生します。音が聞こえる場合は、システムが正しく構成されているはずです。
paplay -vvv audio8k16S.wav
pulseaudioを設定したら、bluetoothctlを起動してペアリングし、携帯電話に接続します。携帯電話に接続すると、bluetoothctlコンソールに次の情報が表示されるはずです。
[Bluetooth]#表示
コントローラー 12:60:41:7F:03:00
名前: BlueZ 5.21
エイリアス:BlueZ 5.21
クラス:0x1c0000
電源:はい
検出可能: いいえ
ペアリング可能:はい
UUID: PnP 情報 (00001200-0000-1000-8000-00805f9b34fb)
UUID: 汎用アクセス プロファイル (00001800-0000-1000-8000-00805f9b34fb)
UUID: 汎用属性プロファイル (00001801-0000-1000-8000-00805f9b34fb)
UUID:A / Vリモコン(0000110e-0000-1000-8000-00805f9b34fb)
UUID:A / Vリモートコントロールターゲット(0000110c-0000-1000-8000-00805f9b34fb)
UUID: メッセージ通知メッセージ。(00001133-0000-1000-8000-00805f9b34fb)
UUID: メッセージアクセスサーバー (00001132-0000-1000-8000-00805f9b34fb)
UUID: 電話帳アクセスサーバ (0000112f-0000-1000-8000-00805f9b34fb)
UUID: IrMC 同期 (00001104-0000-1000-8000-00805f9b34fb)
UUID:OBEXファイル転送(00001106-0000-1000-8000-00805f9b34fb)
UUID: OBEX オブジェクト プッシュ (00001105-0000-1000-8000-00805f9b34fb)
UUID: ベンダー固有 (00005005-0000-1000-8000-0002ee000001)
UUID: オーディオ ソース (0000110a-0000-1000-8000-00805f9b34fb)
UUID: オーディオシンク (0000110b-0000-1000-8000-00805f9b34fb)
モダリアス: usb:v1D6Bp0246d0515
検出中: いいえ
オーディオシンクUUIDが見える場合は、今すぐBluetooth音楽を楽しむ準備ができています。
こんにちはシェンウェイ、
私はあなたのガイドに従いました、そしてついに私はi.MX7dで動作するBluetoothオーディオストリーミングを手に入れることができます。しかし、ヘッドフォンの左側でしかBluetoothオーディオを聞くことができません。
さらに、aplay audio.wavを実行すると、ヘッドフォンの両側で音声が聞こえます。paplay audio.wavを実行し、残念ながら、Bluetoothストリーミングと同じ問題があります:ヘッドフォンの左側にしか音声が聞こえません。
ヘッドホンの両方のチャンネルでオーディオを聞くことができるように、どこで設定を変更できますか?
シンクに関する情報をフォローします。
---------------------------------------------------------------------------------------------------------
シンクが利用可能です。
* インデックス: 0
名前:
ドライバー:
フラグ: ハードウェアHW_VOLUME_CTRL DECIBEL_VOLUMEレイテンシ
状態: 中断
中断の原因: IDLE
優先度:9009
ボリューム:モノラル:52057 / 79%/ -6.00 dB
バランス 0.00
ベースボリューム:52057 / 79%/ -6.00 dB
ボリュームステップ:65537
ミュート:いいえ
現在のレイテンシ: 0.00 ミリ秒
最大リクエスト: 0 KiB
最大巻き戻し量: 0 KiB
モニター ソース: 0
サンプルスペック:S16LE 1ch 44100Hz
チャンネルマップ:モノラル
モノ
使用者: 0
リンク元:0
固定遅延: 99.95 ミリ秒
カード:0
モジュール:6
プロパティ:
alsa.resolution_bits = "16"
device.api = "アルサ"
device.class = "音"
alsa.class = "ジェネリック"
alsa.subclass = "ジェネリックミックス"
alsa.name = ""
alsa.id = 「HiFi wm8731-hifi-0」
alsa.subdevice = "0"
alsa.subdevice_name = "サブデバイス #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "wm8731-audio"
alsa.long_card_name = "wm8731-audio"
device.bus_path = 「プラットフォームサウンド」
sysfs.path = "/デバイス/SOC0/サウンド/サウンド/カード0"
device.form_factor = "内部"
device.string = "hw:0"
device.buffering.buffer_size= "8816"
device.buffering.fragment_size= "2204"
device.access_mode = "mmap"
device.profile.name = 「アナログ-モノ」
device.profile.description = "アナログモノラル"
device.description = "ビルトインオーディオアナログモノラル"
module-udev-detect.discovered = "1"
device.icon_name = 「オーディオカード」
ポート:
analog-output: アナログ出力 (優先度 9900、レイテンシ オフセット 0 usec、使用可能: 不明)
プロパティ:
アクティブポート:
---------------------------------------------------------------------------------------------------------
よろしくお願いいたします
クサイ
Hi Shenwei Wang,
あなたが提供した構成は、yoctoを使用して生成されたfsl(Freescale)イメージで完全に正常に機能しています。
Kernel version : 4.1.15
Bluezバージョン:5.33
pulseaudioバージョン:6.0なので、これらのバージョンのパッケージを使用すると、Bluetoothから音楽を再生できます。
しかし、fsl-qtイメージを使用しようとすると、編集が必要なファイルが対応するディレクトリ(/ etc / dbus-1 / system.d / pulseaudio-system.conf、/ etc / dbus-1 / system.d / bluetooth.conf、 および/ etc / pulse / system.pa)にさえ利用できません。私がfsl-qt画像でも使用しているのと同じバージョンのBluezとpulseaudio。
bluetoothctl コンソールの "show" コマンドを実行すると、次のログが表示されます。
コントローラー 43:39:00:00:1F:AC
名前: BlueZ 5.33
エイリアス:BlueZ 5.33
クラス:0x200000
電源:はい
検出可能: いいえ
ペアリング可能:はい
UUID: 汎用属性プロファイル (00001801-0000-1000-8000-00805f9b34fb)
UUID:A / Vリモコン(0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP 情報 (00001200-0000-1000-8000-00805f9b34fb)
UUID: 汎用アクセス プロファイル (00001800-0000-1000-8000-00805f9b34fb)
UUID:ハンズフリー(0000111e-0000-1000-8000-00805f9b34fb)
UUID:A / Vリモートコントロールターゲット(0000110c-0000-1000-8000-00805f9b34fb)
モダリアス: usb:v1D6Bp0246d0521
検出中: いいえ
したがって、ここでは UUID:オーディオソース/ UUID:オーディオシンク を取得していないため、Bluetoothからオーディオをストリーミングできません。
これに関して、いくつかの意見を提供してください。
よろしくお願いいたします。
よろしくお願いします。
ガナパティラオ
それは何の理由ですか?????
私はいくつかのBluetooth USBドングルでテストしました。理論的には、HCIインターフェースの準備ができている限り、どのUSBモジュールでも動作するはずです。
シェンウェイ
Hi Shenwei Wang,
どのBluetoothモジュールをテストしますか?
AR6233Xまたはその他のチップ設定?
Hi,
私はandroidKitkat 4.4.2でbluez 5.30を使用しています、それは正常に機能しており、私はsppを除くすべてのプロファイルを取得しています。SPPを参照しようとすると、「SDPレコードが見つかりません」などのエラーが表示されます。どなたかこの問題を解決するために助けていただけますか。