Agak terlambat di sini, tetapi saya baru-baru ini menderita sakit kepala karena mengikuti berbagai panduan yang berbeda, tidak ada yang bekerja untuk saya. Jadi di sini ada panduan lain ... yang mungkin tidak akan berhasil untuk Anda;)
Saya mengunduh versi terbaru dari halaman resmi: bluez.org/download . Jika halaman itu mati, gunakan yang ini sebagai gantinya.
Sebagai contoh, pada saat penulisan adalah 5.47, jadi saya menggunakan (pada raspberry saya):
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.47.tar.xz
Lalu saya mengekstraknya dan membangunnya:
tar -xf bluez-5.47.tar.xz
cd bluez-5.47
Baca README
! Ini mencantumkan dependensi dan sakelar konfigurasi:
Instal dependensi terlebih dahulu: (glib, dbus, libdbus, udev, dll.) Sebagian besar sudah diinstal dan jika tidak mudah diinstal, semua disediakan oleh manajer paket. Setelah Anda selesai melakukannya:
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var
Saya juga menambahkan --enable-experimental
karena saya percaya objek GattCharacteristics adalah bagian dari fitur eksperimental. Lalu lakukan:
make
sudo make install
Mungkin perlu 10 menit untuk dikompilasi. Setelah menginstal, Anda harus menemukan
bluetoothd
di /usr/libexec/bluetooth
. Anda juga harus melihat bluetoothd di /usr/lib/bluetooth
.
Pergi ke masing-masing direktori dan jenis ini
./bluetoothd --version
Anda akan perhatikan bahwa yang di libexec baru dan yang di lib sudah lama.
BlueZ menciptakan objek dan antarmuka d-bus ini untuk mengekspos perangkat bluetooth kepada Anda dengan cara yang baik.
Dalam rangka untuk memastikan bahwa d-bus sedang berbicara dengan Anda baru BlueZ 5,47 dan tidak Anda tua BlueZ 5,23, Anda perlu memberitahu systemd
menggunakan daemon bluetooth baru:
sudo vim /lib/systemd/system/bluetooth.service
Pastikan exec.start
baris menunjuk ke daemon baru Anda di /usr/libexec/bluetooth
.
Bagi saya, itu tidak cukup. Tidak peduli apa, setelah restart saya selalu mendapat bluetoothd 5.23 ... Jadi saya baru saja membuat symlink dari yang lama ke yang baru.
Pertama ganti nama file lama:
sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig
Buat symlink:
ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
sudo systemctl daemon-reload
Itu harus dilakukan.
Sekarang, saya harus mengatakan ini, meskipun itu tidak relevan dengan pertanyaan :
Jika Anda ingin mengembangkan aplikasi untuk pi Anda, baca folder blueZ docs . Ini memperkenalkan Anda pada sesuatu yang disebut d-bus , yang benar-benar layak dipelajari, dan memungkinkan Anda untuk mengembangkan aplikasi Anda dengan python, node.js, atau c (dan banyak lagi). Tonton video ini di bluez dev .
Ada banyak ikan haring merah di luar sana: pembungkus yang berupaya memberi Anda fungsionalitas "mudah". Bahkan sumber daya yang mengatakan ada kekurangan dokumentasi tentang cara mengembangkan bluetooth. Namun, begitu Anda ingin melakukan apa pun selain sekadar menghubungkan ke perangkat dan melihat karakteristiknya, Anda akan menyadari bahwa pembungkusnya akan mengecewakan Anda.
Bantulah dirimu sendiri. Butuh beberapa jam untuk mempelajari cara BlueZ
kerjanya (video yang saya tautkan adalah emas murni). Ini menggunakan sesuatu yang disebut d-bus. Baca sedikit tentang d-bus. Jika Anda suka Python, lihat kode di folder tes. Baca tutorial python dbus sekali atau dua kali. Itu akan membayar dengan sangat baik. Saya menyia-nyiakan beberapa hari untuk menemukan sesuatu yang mudah, tetapi ini ternyata cara terbaik.
Semoga berhasil!