<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Bluetooth_di_Arch_Linux_%28Pairing_TWS%29</id>
	<title>Bluetooth di Arch Linux (Pairing TWS) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Bluetooth_di_Arch_Linux_%28Pairing_TWS%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Bluetooth_di_Arch_Linux_(Pairing_TWS)&amp;action=history"/>
	<updated>2026-11-02T00:33:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=Bluetooth_di_Arch_Linux_(Pairing_TWS)&amp;diff=762&amp;oldid=prev</id>
		<title>SanzSkuy: Created page with &quot;Panduan setup Bluetooth stack di Arch Linux dari nol sampai TWS (True Wireless Stereo earbuds) tersambung sebagai audio output. Arch tidak menyertakan Bluetooth stack secara default (filosofi minimalis), jadi semua komponen harus di-install manual.  == Arsitektur ==  &lt;pre&gt; +-------------------+ |  Aplikasi (audio) | +---------+---------+           | +---------v---------+     +------------------+ | PipeWire / Pulse  |&lt;---&gt;| bluetoothd       | | (audio server +   |     | (...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Bluetooth_di_Arch_Linux_(Pairing_TWS)&amp;diff=762&amp;oldid=prev"/>
		<updated>2026-07-05T13:48:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Panduan setup Bluetooth stack di Arch Linux dari nol sampai TWS (True Wireless Stereo earbuds) tersambung sebagai audio output. Arch tidak menyertakan Bluetooth stack secara default (filosofi minimalis), jadi semua komponen harus di-install manual.  == Arsitektur ==  &amp;lt;pre&amp;gt; +-------------------+ |  Aplikasi (audio) | +---------+---------+           | +---------v---------+     +------------------+ | PipeWire / Pulse  |&amp;lt;---&amp;gt;| bluetoothd       | | (audio server +   |     | (...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Panduan setup Bluetooth stack di Arch Linux dari nol sampai TWS (True Wireless Stereo earbuds) tersambung sebagai audio output. Arch tidak menyertakan Bluetooth stack secara default (filosofi minimalis), jadi semua komponen harus di-install manual.&lt;br /&gt;
&lt;br /&gt;
== Arsitektur ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------------+&lt;br /&gt;
|  Aplikasi (audio) |&lt;br /&gt;
+---------+---------+&lt;br /&gt;
          |&lt;br /&gt;
+---------v---------+     +------------------+&lt;br /&gt;
| PipeWire / Pulse  |&amp;lt;---&amp;gt;| bluetoothd       |&lt;br /&gt;
| (audio server +   |     | (daemon BlueZ)   |&lt;br /&gt;
|  modul BT/libspa) |     +--------+---------+&lt;br /&gt;
+-------------------+              |&lt;br /&gt;
                          +--------v---------+&lt;br /&gt;
                          | Kernel (btusb,   |&lt;br /&gt;
                          | HCI, rfkill)     |&lt;br /&gt;
                          +--------+---------+&lt;br /&gt;
                                   |&lt;br /&gt;
                          +--------v---------+&lt;br /&gt;
                          | Adapter BT (HW)  |&lt;br /&gt;
                          +------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BlueZ&amp;#039;&amp;#039;&amp;#039; = Bluetooth stack resmi Linux (daemon &amp;lt;code&amp;gt;bluetoothd&amp;lt;/code&amp;gt; + library).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Audio server&amp;#039;&amp;#039;&amp;#039; (PipeWire/PulseAudio) yang mengekspos TWS sebagai &amp;#039;&amp;#039;sink&amp;#039;&amp;#039;. Pairing sukses tapi tidak ada suara = biasanya masalah di layer ini, bukan di BlueZ.&lt;br /&gt;
&lt;br /&gt;
== Instalasi ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pacman -S bluez bluez-utils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;bluez&amp;lt;/code&amp;gt; — daemon dan stack utama.&lt;br /&gt;
* &amp;lt;code&amp;gt;bluez-utils&amp;lt;/code&amp;gt; — tool CLI, terutama &amp;lt;code&amp;gt;bluetoothctl&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Modul audio:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* PipeWire (modern, default): sudah termasuk via &amp;lt;code&amp;gt;libspa&amp;lt;/code&amp;gt;. Pastikan &amp;lt;code&amp;gt;pipewire-pulse&amp;lt;/code&amp;gt; ter-install dan jalan sebagai user service.&lt;br /&gt;
* PulseAudio klasik: install &amp;lt;code&amp;gt;pulseaudio-bluetooth&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Cek:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pacman -Q pipewire-pulse&lt;br /&gt;
systemctl --user status pipewire pipewire-pulse wireplumber&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aktivasi Service ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable --now bluetooth.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;enable --now&amp;lt;/code&amp;gt; = auto-start saat boot + langsung aktif sekarang.&lt;br /&gt;
&lt;br /&gt;
Verifikasi adapter terdeteksi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bluetoothctl list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kalau kosong:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rfkill list                    # cek soft/hard block&lt;br /&gt;
rfkill unblock bluetooth       # buka soft block&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hard block = switch fisik/BIOS, tidak bisa di-unblock via software.&lt;br /&gt;
&lt;br /&gt;
== Pairing TWS ==&lt;br /&gt;
&lt;br /&gt;
Masuk shell interaktif:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bluetoothctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Di dalam &amp;lt;code&amp;gt;bluetoothctl&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
power on&lt;br /&gt;
agent on&lt;br /&gt;
default-agent&lt;br /&gt;
scan on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Masukkan TWS ke &amp;#039;&amp;#039;&amp;#039;pairing mode&amp;#039;&amp;#039;&amp;#039; (biasanya tahan tombol di case sampai LED berkedip). Tunggu device muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[NEW] Device 12:34:56:78:9A:BC Soundcore R50i&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lalu (MAC bisa tab-completion):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pair 12:34:56:78:9A:BC&lt;br /&gt;
trust 12:34:56:78:9A:BC&lt;br /&gt;
connect 12:34:56:78:9A:BC&lt;br /&gt;
scan off&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa &amp;lt;code&amp;gt;trust&amp;lt;/code&amp;gt;?&amp;#039;&amp;#039;&amp;#039; Tanpa trust, daemon menolak koneksi ulang yang diinisiasi device — TWS tidak akan auto-reconnect saat case dibuka.&lt;br /&gt;
&lt;br /&gt;
== Verifikasi Audio ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pactl list sinks short&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Harus muncul sink baru, contoh: &amp;lt;code&amp;gt;bluez_output.12_34_56_78_9A_BC.1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Set default:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pactl set-default-sink bluez_output.12_34_56_78_9A_BC.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auto-Reconnect Setelah Boot ==&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/etc/bluetooth/main.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ini membuat controller otomatis &amp;lt;code&amp;gt;power on&amp;lt;/code&amp;gt; saat boot. Kombinasi &amp;lt;code&amp;gt;AutoEnable&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;trust&amp;lt;/code&amp;gt; = buka case TWS langsung nyambung.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gejala !! Penyebab !! Solusi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;br-connection-profile-unavailable&amp;lt;/code&amp;gt; saat connect || Modul audio tidak tersedia (audio server belum jalan / modul BT belum ter-install) || Cek &amp;lt;code&amp;gt;systemctl --user status pipewire pipewire-pulse wireplumber&amp;lt;/code&amp;gt;; install &amp;lt;code&amp;gt;pulseaudio-bluetooth&amp;lt;/code&amp;gt; kalau pakai PulseAudio&lt;br /&gt;
|-&lt;br /&gt;
| Adapter tidak muncul di &amp;lt;code&amp;gt;bluetoothctl list&amp;lt;/code&amp;gt; || Soft block rfkill, atau driver/firmware belum load || &amp;lt;code&amp;gt;rfkill unblock bluetooth&amp;lt;/code&amp;gt;; cek &amp;lt;code&amp;gt;dmesg | grep -i bluetooth&amp;lt;/code&amp;gt; untuk firmware yang hilang (&amp;lt;code&amp;gt;linux-firmware&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Suara jelek / robotik / mono || Profil ke-switch ke HSP/HFP (mode headset dengan mic, kualitas rendah) || &amp;lt;code&amp;gt;pactl set-card-profile bluez_card.XX_XX_... a2dp-sink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Pairing sukses tapi tidak ada sink audio || Layer audio server bermasalah, bukan BlueZ || Restart user service: &amp;lt;code&amp;gt;systemctl --user restart pipewire pipewire-pulse&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tidak auto-reconnect setelah reboot || Belum &amp;lt;code&amp;gt;trust&amp;lt;/code&amp;gt;, atau controller mati saat boot || &amp;lt;code&amp;gt;trust MAC&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;AutoEnable=true&amp;lt;/code&amp;gt; di main.conf&lt;br /&gt;
|-&lt;br /&gt;
| Device tidak muncul saat scan || TWS tidak dalam pairing mode, atau sudah paired ke device lain || Reset pairing mode TWS; kalau perlu &amp;lt;code&amp;gt;remove MAC&amp;lt;/code&amp;gt; dulu lalu pair ulang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Catatan ==&lt;br /&gt;
&lt;br /&gt;
* Profil &amp;#039;&amp;#039;&amp;#039;A2DP&amp;#039;&amp;#039;&amp;#039; = stereo kualitas tinggi (playback only). Profil &amp;#039;&amp;#039;&amp;#039;HSP/HFP&amp;#039;&amp;#039;&amp;#039; = mono + mic. Audio server otomatis switch ke HSP/HFP saat aplikasi memakai mic — ini normal, bukan bug.&lt;br /&gt;
* Codec (SBC, AAC, aptX, LDAC) dinegosiasikan otomatis oleh PipeWire; dukungan codec premium tergantung TWS dan versi PipeWire.&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Linux]]&lt;br /&gt;
[[Kategori:Networking]]&lt;/div&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
</feed>