Peringatan
Sumber terbaru menggunakan nama baru untuk beberapa komponen inti:
bluealsa
sekarang disebut bluealsad
bluealsa-cli
sekarang disebut bluealsactl
Lihat panduan wiki yang bermigrasi dari rilis 4.3.1 atau sebelumnya untuk informasi lebih lanjut.
Proyek ini adalah kelahiran kembali integrasi langsung antara Bluez dan ALSA. Sejak BlueZ> = 5, integrasi bawaan telah dihapus demi aplikasi audio pihak ketiga. Mulai sekarang, Bluez bertindak sebagai middleware antara aplikasi audio, yang mengimplementasikan profil audio Bluetooth, dan perangkat audio Bluetooth.
Status quo saat ini adalah, untuk melakukan streaming audio dari/ke perangkat Bluetooth, orang harus menginstal server audio tujuan umum seperti PipeWire atau Pulseaudio, atau menggunakan BlueZ Versi 4 yang sudah usang dan tidak terawat.
Proyek ini menciptakan dan memelihara produk yang disebut Bluealsa, yang dengannya seseorang dapat mencapai dukungan profil audio Bluetooth yang sama seperti halnya Pulseaudio, tetapi dengan lebih sedikit ketergantungan dan pada tingkat yang lebih rendah dalam tumpukan perangkat lunak. Bluealsa mendaftarkan semua profil audio Bluetooth yang diketahui di BlueZ, jadi secara teori setiap perangkat Bluetooth (dengan kemampuan audio) dapat dihubungkan.
Bluealsa dirancang khusus untuk digunakan pada sistem audio atau audio/visual khusus, berdedikasi rendah, di mana fitur manajemen audio tingkat tinggi dari Pulseaudio atau Pipewire tidak diperlukan. Sistem target harus dapat berfungsi dengan benar dengan semua aplikasi audio yang berinteraksi langsung dengan ALSA, dengan hanya satu aplikasi pada satu waktu menggunakan setiap aliran audio Bluetooth. Dalam sistem seperti itu, Bluealsa menambahkan dukungan audio Bluetooth ke dukungan kartu suara ALSA yang ada. Perhatikan ini berarti bahwa aplikasi dibatasi oleh kemampuan API ALSA, dan fitur pemrosesan audio tingkat lebih tinggi dari server audio seperti Pulseaudio dan Pipewire tidak tersedia.
Bluealsa terdiri dari daemon bluealsad
, plug-in ALSA, dan sejumlah utilitas. Konteks dasar ditampilkan dalam diagram ini:
Flowchart TD
ClassDef External Fill:#eee, stroke:#333, stroke-lebar: 4px, warna: hitam;
ClassDef Bluealsa Isi:#BBF, Stroke:#333, Stroke-Width: 4px, Warna: Hitam;
A [Adaptor Bluetooth] <--> B ((Bluetoothd <br/> Daemon))
A <--> C ((Daemon Bluealsad))
B <-dbus-> c
C <-dbus-> g ((bluealsactl))
C <-dbus-> d ((bluealsa-aplay)))
D -> E ([Alsa Libasound])
E -> k [pembicara]
C <-dbus-> f ((bluealsa <br/> alsa plug-in))
F <--> h ([libasound alsa])
H <-> i ((alsa <br/> aplikasi))
C <-dbus-> j (("d-bus lainnya <br/> klien"))
C <--> l ((alsa midi <br/> sequencer))
L <--> m ([libasound alsa])
M <--> n ((alsa midi <br/> aplikasi)))
Kelas A, B, E, H, I, J, K, L, M, N Eksternal;
Kelas C, D, F, G Bluealsa;
Jantung Bluealsa adalah Daemon bluealsad
yang berinteraksi dengan Bluez Bluetooth Daemon bluetoothd
dan adaptor Bluetooth lokal. Ini menangani koneksi profil dan logika konfigurasi untuk A2DP, HFP dan HSP dan menyajikan aliran audio yang dihasilkan ke aplikasi melalui D-Bus.
Bluealsa termasuk plug-in ALSA yang menyembunyikan semua spesifik D-bus dan aplikasi memungkinkan untuk menggunakan ALSA PCM dan antarmuka mixer, sehingga aplikasi ALSA yang ada dapat mengakses perangkat audio Bluetooth dengan cara yang sama seperti menggunakan PCM dan mixer kartu suara.
Dalam kasus BLE MIDI, daemon membuat port MIDI sederhana langsung di sequencer MIDI ALSA, sehingga aplikasi ALSA MIDI dapat terhubung ke perangkat MIDI BLE jarak jauh dengan cara yang sama seperti yang akan terhubung ke perangkat MIDI lokal.
Bluealsa juga mencakup sejumlah aplikasi utilitas. Catatan khusus adalah:
Bluealsactl
Aplikasi untuk memungkinkan manajemen baris perintah dari sistem bluealsa.
Bluealsa-Aplay
Aplikasi untuk menyederhanakan tugas membangun speaker Bluetooth menggunakan Bluealsa.
Bluealsa-rfcomm
Aplikasi baris perintah yang menyediakan akses ke terminal RFCOMM untuk perangkat HFP/HSP.
Bangun dan instal instruksi disertakan dalam file install.md dan panduan yang lebih rinci tersedia di wiki.
Komponen utama Bluealsa adalah program yang disebut bluealsad
. Secara default, program ini harus dijalankan sebagai root selama startup sistem. Ini akan mendaftarkan layanan org.bluealsa
di bus sistem D-bus, yang dapat digunakan untuk mengakses perangkat audio yang dikonfigurasi. Secara umum, Bluealsa bertindak sebagai proxy antara Bluez dan Alsa.
Daemon bluealsad
harus berjalan untuk memasangkan, menghubungkan, dan menggunakan perangkat audio Bluetooth jarak jauh. Untuk streaming audio untuk misalnya headset Bluetooth, pertama orang harus menghubungkan perangkat. Jika Anda tidak terbiasa dengan pemasangan Bluetooth dan prosedur penghubung di Linux, ada panduan dasar di wiki: pemasangan dan penghubung Bluetooth.
Untuk perincian opsi baris perintah ke bluealsad
, konsultasikan halaman manual Bluealsad.
Ketika perangkat audio Bluetooth terhubung, seseorang dapat menggunakan perangkat PCM virtual bluealsa
dengan aplikasi ALSA seperti halnya perangkat PCM lainnya:
aplay -D bluealsa Bourree_in_E_minor.wav
Jika ada lebih dari satu perangkat Bluetooth yang terhubung, target yang dapat ditentukan sebagai parameter ke PCM:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
Harap dicatat bahwa perangkat PCM ini didasarkan pada plug -in PCM I/O Software ALSA - tidak memiliki kartu suara yang terkait, dan tidak akan tersedia di antarmuka ALSA Kernel Proc.
Parameter Pengaturan perangkat PCM bluealsa
dapat diatur dalam file konfigurasi .asoundrc
lokal seperti ini:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
Bluealsa juga memungkinkan untuk menangkap audio dari perangkat Bluetooth yang terhubung. Untuk melakukannya, seseorang harus menggunakan perangkat Capture PCM, misalnya:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
Selain profil A2DP, digunakan untuk audio berkualitas tinggi, Bluealsa juga memungkinkan untuk menggunakan koneksi audio telepon melalui tautan SCO. Seseorang dapat menggunakan dukungan HSP/HFP bawaan, yang hanya mengimplementasikan bagian terkait audio dari spesifikasi, atau penggunaan layanan OFONO sebagai back-end. Untuk membuka SCO Audio Connection, seseorang harus beralih ke profil sco
seperti berikut:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
Untuk mengontrol level audio input atau output, orang dapat menggunakan plug-in bluealsa
Control yang disediakan. Plug-in ini memungkinkan penyesuaian volume aliran audio atau hanya bisu/buka saja, misalnya:
amixer -D bluealsa sset ' <control name> ' 70%
Di mana nama kontrol adalah nama perangkat Bluetooth yang terhubung dengan akhiran elemen kontrol, misalnya:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Untuk detail lengkap dari perangkat Bluealsa ALSA PCM dan perangkat mixer Konsultasikan dengan halaman manual plug-in bluealsa.
Ada juga sejumlah artikel di Wiki Proyek Bluez-Alsa yang memberikan lebih banyak contoh menggunakan plug-in ini.
Untuk konfigurasi ALSA yang lebih canggih, konsultasikan dengan dokumentasi on-line AsoundRC yang disediakan oleh halaman Wiki Alsaproject.
Dimungkinkan untuk membuat speaker bertenaga Bluetooth menggunakan Bluealsa. Untuk ini diperlukan untuk meneruskan sinyal audio dari Capture PCM Bluealsa ke beberapa PCM pemutaran lainnya (misalnya kartu audio bawaan). Untuk menyederhanakan tugas ini, Bluealsa menyertakan program yang disebut bluealsa-aplay
, yang bertindak sebagai pemain Bluealsa sederhana. Hubungkan perangkat Bluetooth Anda (misalnya smartphone) dan lakukan sebagai berikut:
bluealsa-aplay XX:XX:XX:XX:XX:XX
Untuk perincian opsi baris perintah ke bluealsa-aplay
, konsultasikan halaman manual Bluealsa-Aplay. Ada juga beberapa artikel tentang Wiki Proyek Bluez-Alsa yang memberikan contoh penggunaannya.
Daftar PCM Bluealsa yang tersedia (disediakan oleh perangkat Bluetooth yang terhubung dengan kemampuan audio) dapat diperoleh langsung dari Bluealsa D-Bus API atau menggunakan bluealsa-aplay
sebagai pembungkus yang nyaman sebagai berikut:
bluealsa-aplay -L
Proyek ini menyambut kontribusi kode, dokumentasi, dan pengujian.
Silakan lihat panduan yang berkontribusi untuk detailnya.
Kesalahan yang paling umum ditemui dibahas dalam panduan pemecahan masalah. Silakan periksa file itu untuk melihat apakah sudah ada solusi untuk masalah Anda.
Jika Anda tidak dapat menemukan solusi dalam dokumen itu atau dengan membaca halaman manual, maka silakan cari masalah sebelumnya (baik terbuka dan tertutup), dan berkonsultasi dengan wiki sebelum mengangkat masalah baru. Sayangnya wiki tidak diindeks oleh mesin pencari web, jadi mencari secara online untuk masalah Anda tidak akan menemukan informasi di sana.
Jika melaporkan masalah sebagai masalah baru, silakan gunakan template pelaporan masalah BlueZ-Alsa GitHub yang sesuai dan selesaikan setiap bagian dari templat sebanyak mungkin.
Bluealsa dilisensikan berdasarkan ketentuan lisensi MIT. Lihat file lisensi untuk detailnya.