Linux bluetooth setup with bluez and hcitool | Cerca per titolo, autore, parola chiave | ||||||||
Linux bluetooth setup with bluez and hcitool Aggiornato il 25 Giugno 2018 da Arnab Satapathi. Bluetooth è presente ovunque, oggi, perchè è la modalità meno costosa e più semplice per aggiungere connettività ad un qualsiasi apparecchio (device). Un sistema Linux può usare molti protocolli, OBEX, A2DP, DUN, HID etc. etc., per interagire con differenti apparcchi, per differenti fini. Come connettere, appaiare (pair) e gestire queste device bluetooth con Linux? Per installlare i package software necessari, su Debain o un suo derivato, Ubuntu, Linux Mint, eseguite il seguente comando: sudo apt-get install bluetooth bluez bluez-tools rfkill rfcomm Ora avviamo il servizio bluetooth e permettiamo l'avvio automatico, sempre che stiate usando systemd come demone init: sudo systemctl start bluetooth.service sudo systemctl enable bluetooth.service Prima di eseguire una scansione, assicuratevi che il vostro adattatore sia acceso e non bloccato: sudo rfkill list 0: hci0: Bluetooth Soft blocked: no Hard blocked: no sudo rfkill unblock bluetooth sudo rfkill unblock bluetooth Attiva il tuo controller bluetooth ed esegui una scansione, assicurandoti che l'apparecchio con cui vuoi connetterti sia discoverable: sudo hciconfig hci0 up hcitool scan Scanning ... 83:23:26:15:54:46 sat_P 83:23:26:15:54:46 è l'indirizzo bluetooth MAC, mentre sat_P è il nome, dell'apparecchio bluetooth trovato, per esempio, un telefono Android. Quali servizi (DUN, cuffie audio) sono disponibili in quella periferica? sdptool browse 83:23:26:15:54:46 Service Name: Headset Gateway Service RecHandle: 0x10003 Service Class ID List: "Headset Audio Gateway" (0x1112) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 2 Profile Descriptor List: "Headset" (0x1108) Version: 0x0102 L'indirizzo Bluetooth identifica un apparecchio o periferica. Un singolo apparecchio potrebbe offrire più servizi. Per esempio, un telefonino potrebbe, simultaneamente, ricevere file, comunicare con le cuffie audio, comunicare con la tastiera, il tutto via Bluetooth. Ciascuno di questi servizi opera su un canale dedicato, così da non interferire l'uno con l'altro. Se desiderate inviare un file ad un telefonino, per esempio, dovete conoscere il suo indirizzo e il canale usato dal file transfer service. Per connettersi alla periferica bluetooth: sudo rfcomm connect hci0 83:23:26:15:54:46 12 dove 12 è il numero del canale. Ora, la connessione è aperta. Abbiamo scelto il canale 12, il canale di OBEX Object Push. OBEX (OBject EXchange) è un protocollo di comunicazione che facilita i trasferimenti binari tra apparecchi Bluetooth (Generic Object Exchange Profile: File Transfer Profile, Object Push Profile, Synchronization Profile). Originariamente specificato per comunicazioni ad infrarossi (Infrared Communications), è stato in seguito adottato per Bluetooth ed è attualmente utilizzato da più profili, quali OPP, FTP, PBAP, MAP. Il protocollo Bluetooth RFCOMM (Radio frequency communication) è un semplice set di protocolli di trasporto, che utilizza il protocollo L2CAP (che trasmette i pacchetti all'Host Controller Interface (HCI)), e fornisce una emulazione di porte seriali RS-232 (serial communication transmission of data). Per ricevere file, apriamo un nuovo terminale e apriamo una sessione FTP: bt-obex -s /home/my/Download -f 83:23:26:15:54:46 Ora OBEX è in server mode, in ascolto di connessioni bluetooth. Ora, inviamo un qualche file dalla periferica client bluetooth, come il nostro cellulare. Il file verrà inviato nella cartella selezionata. Per inviare file ad una periferica client, eseguire il comando: bt-obex -p / --opp <name|mac> <file> bt-obex -p 83:23:26:15:54:46 file.pdf bt-obex --opp 83:23:26:15:54:46 file.pdf
|
|||||||||
Linux bluetooth setup with bluez and hcitool | Disclaimer: questo è un link a contenuti ospitati su server esterni. |