Panduan Bluetooth Gentoo Linux
1.
Pendahuluan
Apa itu Bluetooth?
Bluetooth merupakan sebuah spesifikasi industri yang menyediakan sebuah cara
untuk melakukan koneksi dan bertukar informasi melalui perangkat seperti PC,
PDA, atau telpon genggam. Dengan menggunakan teknologi Bluetooth, kita bisa
mendapatkan pengiriman data dan suara tanpa kabel antara beberapa perangkat
dengan biaya rendah. Bluetooth juga menawarkan kemungkinan untuk menciptakan
jaringan lokal nirkabel kecil dan sinkronisasi perangkat-perangkat.
Tentang isi panduan ini
Bagian pertama dari panduan ini menberikan daftar perangkat yang terkualifikasi
dan yang tidak terkualifikasi teknologi Bluetooth. Dengan begini, pengguna
dapat membeli Bluetooth yang telah diketahui dapat berfungsi. Setelah itu,
panduan ini menjelaskan cara mengkonfigurasi kernel sistem, identifikasi
perangkat Bluetooth yang terpasang di sistem dan telah terdeteksi oleh kernel,
dan menginstal utilitas dasar Bluetooth yang diperlukan.
Bagian ke dua berisi cara mendeteksi perangkat jauh dan cara melakukan koneksi
dari atau ke perangkat tersebut dengan men-setup komunikasi frekuensi radio
(RFCOMM) atau dengan men-setup personal area network (PAN).
Bagian terakhir dari panduan ini berisi daftar lengkap aplikasi yang dapat
menggunakan seluruh keuntungan yang ditawarkan oleh teknologi Bluetooth.
2.
Perangkat-perangkat yang Didukung
Perangkat-perangkat yang terkualifikasi dan tidak terkualifikasi yang
mendukung Bluetooth
Penting:
Produk-produk ini mungkin bisa berfungi walaupun beberapa di antaranya tidak
terkualifikasi sebagai produk Bluetooth. Gentoo tidak mendukungnya dengan cara
apapun, perangkat-perangkat ini mungkin bisa berfungsi langsung.
|
Daftar perangkat saat ini yang didukung bisa anda temukan di: Fitur Perangkay
Bluetooth dan informasi revisi oleh Marcel Holtmann.
3.
Konfigurasi Sistem
Konfigurasi Kernel
Karena kernel Linux stabil terbaru adalah seri 2.6, maka konfigurasi pada
panduan ini akan menggunakan kernel seri tersebut. Kebanyakan perangkat
Bluetooth terhubung ke port USB, jadi kita juga akan mengaktifkan USB. Bacalah
Panduan USB Gentoo Linux.
Daftar Kode 3.1: Konfigurasi untuk kernel 2.6 |
Networking --->
<*> Bluetooth subsystem support --->
--- Bluetooth subsystem support
<M> L2CAP protocol support
<M> SCO links support
<M> RFCOMM protocol support
[*] RFCOMM TTY support
<M> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<M> HIDP protocol support
Bluetooth device drivers --->
<M> HCI USB driver
[*] SCO (voice) support
<M> HCI UART driver
[*] UART (H4) protocol support
[*] BCSP protocol support
[*] Transmit CRC with every BCSP packet
<M> HCI BCM203x USB driver
<M> HCI BPA10x USB driver
<M> HCI BlueFRITZ! USB driver
<M> HCI DTL1 (PC Card) driver
<M> HCI BT3C (PC Card) driver
<M> HCI BlueCard (PC Card) driver
<M> HCI UART (PC Card) device driver
<M> HCI VHCI (Virtual HCI device) driver
USB support --->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<M> EHCI HCD (USB 2.0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators (EXPERIMENTAL)
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
< > SL811HS HCD support
|
Sekarang kita akan reboot ke kernel baru kita. Jika semuanya berjalan dengan
lancar, kita akan memiliki sebuah sistem dengan Bluetooth yang siap digunakan.
Penting:
Perangkat USB anda boleh memiliki dua modus secara default berupa HID, bukan
HCI. Jika ini kasusnya, gunakan hid2hci untuk berpindah ke modus HCI.
Sistem anda tidak akan mengingat perubahan ini ketika anda melakukan reboot.
|
Daftar Kode 3.2: Memeriksa perangkat Bluetooth |
# cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1
T: Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev= 5.25
# lsusb
Bus 003 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 0db0:1967 Micro Star International Bluetooth Dongle
|
4.
BlueZ - StackBluetooth
Instalasi BlueZ
Sekarang perangkat telah dikenal oleh kernel, kita membutuhkan sebuah lapisan
yang mengizinkan aplikasi untuk berkomunikasi dengan perangkat Bluetooth. BlueZ
menyediakan stack Bluetooth Linux resmi. Ebuild yang kita butuhkan adalah
bluez-libs dan bluez-utils. Perangkat yang membutuhkan file-file
firmware Broadcom atau yang sejenisnya mungkin memerlukan bluez-firmware.
Daftar Kode 4.1: Instalasi bluez-libs dan bluez-utils |
# emerge net-wireless/bluez-libs net-wireless/bluez-utils
|
Konfigurasi BlueZ dan Menjodohkan PIN
Sekarang saatnya untuk melihat apakah perangkat bluetooth telah dinyalakan
dengan benar oleh sistem. Pertama kita jalankan servis Bluetooth.
Daftar Kode 4.2: Menjalankan hciconfig |
# /etc/init.d/bluetooth start
* Starting Bluetooth ...
* Starting hcid ... [ ok ]
* Starting sdpd ... [ ok ]
* Starting rfcomm ... [ ok ]
# hciconfig
hci0: Type: USB
BD Address: 00:01:02:03:04:05 ACL MTU: 192:8 SCO MTU: 64:8
DOWN
RX bytes:131 acl:0 sco:0 events:18 errors:0
TX bytes:565 acl:0 sco:0 commands:17 errors:0
|
Ini menunjukkan bahwa perangkat Bluetooth telah dikenal. Seperti yang mungkin
telah anda lihat, perangkat sedang dalam keadaan DOWN. Mari kita
konfigurasikan agar kita dapat menyalakannya. File konfigurasinya adalah
/etc/bluetooth/hcid.conf. Perubahan yang diperlukan tertera di
bawah ini. Untuk rincian lebih lanjut, silakan membaca manual hcid.conf
(man hcid.conf).
Daftar Kode 4.3: Edit /etc/bluetooth/hcid.conf |
# HCId options
options {
# Automatically initialize new devices
autoinit yes;
# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
#
security auto;
# Pairing mode
pairing multi;
# PIN helper
pin_helper /etc/bluetooth/pin-helper;
}
# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "BlueZ at %h (%d)";
# Local device class
class 0x3e0100;
# Inquiry and Page scan
iscan enable; pscan enable;
# Default link mode
lm accept;
# Default link policy
lp rswitch,hold,sniff,park;
# Authentication and Encryption (Security Mode 3)
#auth enable;
#encrypt enable;
}
|
Selanjutnya, kita harus mengkonfigurasi PIN perangkat bluetooth. Hal ini akan
membantu kita ketika menjodohkannya dengan perangkat Bluetooth lain.
Daftar Kode 4.4: Edit /etc/bluetooth/pin |
123456
|
Penting:
Nomor (pilihan anda) ini harus sama pada semua host dengan perangkat Bluetooth
agar dapat dijodohkan. Nomor ini juga harus dirahasiakan karena orang yang
mengetahuinya bisa mendapatkan koneksi dengan perangkat anda.
|
Catatan:
Jika anda menggunakan <=bluez-libs-2.x dan
<=bluez-utils-2.x, anda dapat memilih antara beberapa pin helpers,
tergantung kebutuhan anda. Pin helper yang tersedia adalah:
/usr/lib/kdebluetooth/kbluepin (net-wireless/kdebluetooth),
/usr/bin/bluepin atau /etc/bluetooth/pin-helper di antara yang
lainnya.
|
Catatan:
Sejak >=bluez-libs-3.x dan >=bluez-utils-3.x, pin helper telah
digantikan oleh passkey agents. Ada beberapa passkey agents grafis yang
tersedia untuk membantu anda mengatur PIN, seperti bluez-gnome dan
kdebluetooth. Anda juga dapat menggunakan passkey-agent (bagian
dari paket bluez-utils) dari konsol.
|
Konfigurasi Servis
Setelah kita merapungkan konfigurasi BlueZ, saatnya untuk me-restart
servis-servis yang diperlukan.
Daftar Kode 4.5: Menjalankan daemon-daemon Bluetooth |
# /etc/init.d/bluetooth restart
# rc-update add bluetooth default
* bluetooth added to runlevel default
* rc-update complete.
|
Mari kita pastikan agar daemon Bluetooth telah dijalankan dengan benar. Jika
kita dapat melihat hcid dan sdpd aktif, berarti kita telah
mengkonfigurasi Bluetooth dengan benar. Selanjutnya, kita dapat melihat apakah
perangkat telah dijalankan dengan opsi-opsi konfigurasi yang telah kita
tentukan.
Daftar Kode 4.6: Memeriksa apakah daemon Bluetooth telah dijalankan dengan benar |
# ps -ae | grep hcid
26050 ? 00:00:00 hcid
# ps -ae | grep sdpd
26054 ? 00:00:00 sdpd
# hciconfig -a
hci0: Type: USB
BD Address: 00:0A:0B:0C:0D:0E ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:125 acl:0 sco:0 events:17 errors:0
TX bytes:565 acl:0 sco:0 commands:17 errors:0
Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ at bluehat (0)'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing, Object Transfer,
Audio
Device Class: Computer, Uncategorized
HCI Ver: 1.1 (0x1) HCI Rev: 0x1e7 LMP Ver: 1.1 (0x1) LMP Subver: 0x1e7
Manufacturer: Cambridge Silicon Radio (10)
|
5.
Deteksi dan Melakukan Koneksi ke Perangkat Remote
Mendeteksi perangkat Bluetooth di host lain
Sekarang kita telah siap untuk mendeteksi perangkat Bluetooth yang terpasang
di host lain. Hal ini bergantung kepada Sistem Operasi yang digunakan. Kita
akan menggunakan perintah hcitool.
Daftar Kode 5.1: Memeriksa perangkat lokal |
# hcitool dev
Devices:
hci0 00:01:02:03:04:05
|
Daftar Kode 5.2: Melacak perangkat remote |
# hcitool scan
Scanning ...
00:0A:0B:0C:0D:0E Grayhat
|
Daftar Kode 5.3: Menambahkan perangkat remote |
# hcitool inq
Inquiring ...
00:0A:0B:0C:0D:0E clock offset: 0x5579 class: 0x72010c
|
Setelah kita mengetahui MAC address dari perangkat Bluetooth remote, kita
dapat memeriksa apakah kita telah menjodohkannya dengan benar.
Daftar Kode 5.4: Menjalankan l2ping |
# l2ping 00:0A:0B:0C:0D:0E
Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) ...
20 bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms
20 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms
20 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms
20 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms
4 sent, 4 received, 0% loss
|
Men-setup Radio Frequency Communication (RFCOMM)
Catatan:
Harap dicatat bahwa men-setup RFCOMM merupakan opsional.
|
Kita dapat men-setup koneksi frekuensi radio (RFCOMM) ke perangkat Bluetooth
lain dengan perintah rfcomm. Agar lebih mudah terutama untuk user dengan
banyak perangkat yang mendukung Bluetooth, sangat dianjurkan untuk sedikit
mengubah konfigurasi default rfcomm di /etc/bluetooth/rfcomm.conf.
Seluruh segmen konfigurasi yang dimulai dengan rfcomm0 { dan berakhir
dengan } adalah konfigurasi untuk perangkat yang akan melakukan koneksi
di /dev/rfcomm0. Pada kasus ini, kita hanya akan menampilkan satu
contoh, rfcomm0. Anda dapat menambahkan perangkat lain sesuai dengan kebutuhan
anda.
Daftar Kode 5.5: Edit /etc/bluetooth/rfcomm.conf |
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:0A:0B:0C:0D:0E;
}
|
Setelah mengkonfigurasi RFCOMM, kita dapat melakukan koneksi ke perangkat lain.
Karena kita telah menciptakan setting yang diperlukan di file
/etc/bluetooth/rfcomm.conf, kita hanya perlu menjalankan perintah
berikut ini. Jika anda belum menciptakan setting di file konfigurasi, berikut
ini juga merupakan sebuah metode alternatif.
Daftar Kode 5.6: Melakukan koneksi RFCOMM |
# rfcomm connect 0
Connected /dev/rfcomm0 to 00:0A:0B:0C:0D:0E on channel 1
Press CTRL-C for hangup
# rfcomm connect 0 00:0A:0B:0C:0D:0E 1
Connected /dev/rfcomm0 to 00:0F:DE:69:50:24 on channel 1
Press CTRL-C for hangup
|
Parameter pertama setelah perintah koneksi adalah node device RFCOMM TTY yang
akan digunakan (biasanya 0). Parameter ke dua ialah MAC address milik perangkat
remote. Parameter ke tiga merupakan opsional dan menentukan channel yang akan
digunakan. Harap dicatat bahwa untuk melakukan koneksi ke sebuah perangkat,
perangkat tersebut harus mendengar koneksi yang datang. Untuk melakukannya,
kita harus secara ekspilist memerintahkannya untuk mendengar. Kita dapat
membatalkan komunikasi kapan saja dengan menekan CTRL+C.
Daftar Kode 5.7: Mendengarkan koneksi RFCOMM yang datang |
# rfcomm listen 0 1
Waiting for connection on channel 1
|
Pada sebuah cara yang mirip dengan perintah koneksi, perintah mendengarkan
bisa mendapatkan dua parameter. Parameter pertama menyatakan node device
RFCOMM TTY (biasanya 0) yang akan digunakan untuk menerima koneksi, sedangkan
yang ke dua adalah channel yang akan digunakan.
Setiap kali anda menjalankan perintah rfcomm, anda juga dapat menentukan
perangkat fisik yang ingin anda gunakan. Di bawah ini merupakan sebuah contoh
sederhana yang menentukan perangkat fisik pada kedua perintah di atas.
Daftar Kode 5.8: Koneksi RFCOMM dengan menentukan perangkat fisik |
# rfcomm -i hci0 listen 0 1
Waiting for connection on channel 1
# rfcomm -i hci0 connect 0 00:0A:0B:0C:0D:0E 1
|
Men-setup Personal Area Network (PAN)
Catatan:
Harap dicatat bahwa men-setup PAN merupakan opsional. Seksi ini menjelaskan
cara men-setup sebuah Network Access Point, tetapi men-setup sebuah Group
Ad-Hoc Network juga mengikuti cara yang mirip.
|
Pertama-tama, kita perlu me-load modul bnep. Mungkin kita juga perlu
me-load modul ini setiap kali komputer dinyalakan.
Daftar Kode 5.9: Load modul bnep |
# modprobe bnep
# echo "bnep" >> /etc/modules.autoload.d/kernel-2.6
|
Kita harus menjalankan daemon pand pada host yang akan menyediakan NAP.
Kita juga harus menentukan bahwa kita akan menyediakan layanan NAP dan komputer
ini akan menjadi master, jadi semua komputer lain, slave, bisa terhubung.
Layanan lain yang bisa digunakan adalah GN (Group ad-hoc Network).
Daftar Kode 5.10: Menjalankan daemon pand |
# pand --listen --role NAP --master --autozap
|
Sekarang, kita sudah memiliki komputer yang siap menerima komputer lain yang
ingin terhubung.
Daftar Kode 5.11: Melakukan koneksi ke Network Access Point |
# pand --connect 00:0A:0B:0C:0D:0E --service NAP --autozap
|
Jika semuanya berjalan dengan baik, sekarang kita dapat mengatur alamat-alamat
IP untuk semua host.
Daftar Kode 5.12: Konfigurasi IP bnep |
host0 # ifconfig bnep0 192.168.2.1
host1 # ifconfig bnep0 192.168.2.2
host0 # ifconfig bnep0
bnep0 Link encap:Ethernet HWaddr 00:0A:0B:0C:0D:0E
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::210:60ff:fea3:cb41/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:208 (208.0 b) TX bytes:188 (188.0 b)
host1 # ifconfig bnep0
bnep0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::210:60ff:fea2:dd2a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:208 (208.0 b) TX bytes:188 (188.0 b)
|
Terakhir, kita lakukan pengujian sederhana untuk melihat apakah jaringan sudah
bisa bekerja dengan benar.
Daftar Kode 5.13: Ping IP antar bnep |
host1 # ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=34.0 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=37.3 ms
--- 192.168.2.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 34.045/35.690/37.336/1.656 ms
|
6.
Aplikasi Desktop untuk Bluetooth
Pendahuluan
Ada beberapa aplikasi Bluetooth yang digunakan di desktop. Bab ini dibagi
menjadi tiga bagian, masing-masing aplikasi untuk Gnome, KDE dan
aplikasi-aplikasi lain.
Untuk Gnome
Jika anda pengguna Gnome, kemungkinan anda akan memilih gnome-bluetooth.
Paket ini menyediakan fungsionalitas dasar yang paling sering digunakan,
seperti yang tertera di bawah ini.
-
gnome-bluetooth-manager: Untuk mengatur perangkat remote
Bluetooth
-
gnome-obex-send: Untuk mengirim file ke perangkat lain
-
gnome-obex-server: Untuk menerima file
Daftar Kode 6.1: Instalasi gnome-bluetooth |
# emerge gnome-bluetooth
|
Sebuah entri menu akan ditambahkan di bawah "Applications" > "System Tools"
agar anda lebih mudah meluncurkan manajer "File Sharing" atau untuk mengirimlan
file ke perangkat lain.
Untuk mengirimkan file (cara mudah):
-
"From the Phone to the Computer" - mengirim file dari telpon melalui
Bluetooth yang akan diterima dan selalu disimpan di
/home anda.
gnome-phone-manager adalah sebuah aplikasi bagus yang dapat anda gunakan
untuk mengirim dan menerima pesan dari dan ke telpon anda, hanya dengan
menggunakan komputer. Anda tidak perlu menyentuh telpon anda untuk membaca
dan mengirimkan pesan karena semuanya diproses oleh aplikasi ini. Anda juga
akan mendapatkan pemberitahuan di layar anda ketika ada pesan baru yang
masuk jika anda telah mengaktifkan opsi ini di bagian "Preferences". Seperti
biasa, instalasinya sangat mudah.
Daftar Kode 6.2: Instalasi gnome-phone-manager |
# emerge gnome-phone-manager
|
Untuk KDE
KDE memanfaatkan kdebluetooth dan menyediakan lebih banyak utilitas
dibandingkan dengan saingannya di Gnome.
-
kbluetoothd: Bluetooth Meta Server
-
kbtsearch: Utilitas pencari perangkat Bluetooth
-
khciconfig: Monitor Bluetooth KDE
-
kioclient: Klien baris perintah KIO
-
qobexclient: Tool untuk pengujian/pengembangan obex
-
kbtobexclient: KDE Bluetooth Framework Application
- kioobex_start
- kbtserialchat
-
kbemusedsrv: KDE Bemused Server.
-
kbtobexsrv: OBEX Push Server KDE untuk Bluetooth
-
kbluepin: Aplikasi KPart KDE
-
auth-helper: Program pembantu untuk kbtobexsrv yang mengirimkan
permintaan otentikasi untuk link ACL yang diberikan
Daftar Kode 6.3: Instalasi kdebluetooth |
# emerge kdebluetooth
|
Aplikasi-aplikasi Menarik Lainnya
-
app-mobilephone/obexftp: Pengiriman file melalui OBEX untuk handphone
-
app-mobilephone/bemused: Bemused adalah sebuah sistem yang dapat
anda gunakan untuk mengendalikan koleksi musik anda dari handphone, melalui
Bluetooth.
-
app-pda/multisync: Dengan multisync anda dapat mengsinkronkan daftar
kontak, entri kalender dan catatan (serta masih banyak lagi) dari handphone
anda dengan komputer, melalui koneksi Bluetooth. Memiliki beberapa fitur
seperti back-up informasi dan sinkronisasi dengan klien e-mail
Evolution. Anda perlu mengaktifkan flag USE irmc untuk memastikan
agar multisync mendapatkan dukungan Bluetooth.
-
net-wireless/opd dan net-wireless/ussp-push adalah tool baris
perintah (server dan klien) yang dapat anda gunakan untuk mengirimkan file
ke handphone anda.
7.
Ucapan Terima Kasih
Terima kasih kepada Marcel Holtmann
atas waktu dan dedikasinya untuk pengembangan Bluetooth dan review
panduan ini. Terima kasih juga untuk Douglas
Russell atas pengujian perangkat tambahan dan perbaikan panduan ini.
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|