GNU/Linux >> Linux Esercitazione >  >> Linux

Come connettere e inviare dati a una porta seriale Bluetooth su Linux?

Sto cercando di configurare una porta seriale virtuale tramite un adattatore USB-Bluetooth su Linux e inviargli un messaggio tramite un dispositivo Android. Sono sul kernel 3.6. Sono in grado di accoppiare correttamente il dispositivo utilizzando gnome-bluetooth e anche di inviargli file.

Per configurare la porta seriale aggiungo prima un canale con un profilo SP al mio adattatore:

sdptool add --channel=22 SP

Quindi chiamo "ascolta" con rfcomm:

rfcomm listen /dev/rfcomm0 22

che blocca su

Waiting for connection on channel 22

Apparentemente rfcomm creerà /dev/rfcomm0 dopo una connessione riuscita. Una volta che ciò accade, vorrei usare qualcosa come cutecom per inviare messaggi avanti e indietro al dispositivo connesso.

Sul mio dispositivo Android apro un terminale Bluetooth SPP (ce ne sono diversi là fuori, ne ho provati alcuni diversi) e provo a connettermi. Tutti falliscono.

Dato che posso accoppiare correttamente e inviare file senza problemi, so che l'accoppiamento e la comunicazione Bluetooth funzionano.

Non sono troppo sicuro di cos'altro posso provare. Ho utilizzato "sdptool browser" sul mio dispositivo locale e sul dispositivo Android per assicurarmi che non vi siano conflitti di canale RFCOMM.

Risposta accettata:

Mi sembra di averlo fatto funzionare ora. Il Bluetooth sembra un po' schizzinoso. Sto ricapitolando i miei passaggi per intero nel caso qualcun altro lo trovi utile (anche se è più o meno quello che ho provato inizialmente). Questo è per Android JB (4.2.2) su Nexus 4 e Arch Linux 3.6.7-1, con bluez 4.101 su Gnome 3.6 (con gnome-bluetooth).

(questo passaggio potrebbe non essere utile) Disattiva il Bluetooth su Android e scollega l'adattatore USB/Bluetooth dal tuo computer Linux (o se ne hai uno integrato, ripristinalo utilizzando hcitool devname reset)

Collega/accendi il tuo adattatore Bluetooth su Linux. Assicurati che il tuo adattatore sia visibile (può essere impostato in gnome-bluetooth:dovresti vedere un'icona bluetooth nella barra delle applicazioni).

Attiva il bluetooth sul tuo dispositivo Android. Usa Android per accoppiare l'adattatore (non sono stato in grado di accoppiare il contrario da Linux). Verrà visualizzata una finestra di dialogo che ti chiederà una chiave. Inserisci il PIN che desideri. Gnome dovrebbe far apparire una notifica che ti chiede una chiave; inserisci lo stesso PIN che hai inserito in precedenza. A questo punto il tuo dispositivo Android e la chiave dovrebbero essere accoppiati.

In Linux, apri un terminale e controlla quali servizi Bluetooth sono disponibili digitando

sdptool browse local

Se disponi già di un servizio di porta seriale, prendi nota di quale canale si tratta. In caso contrario, puoi aggiungere il servizio:

sdptool add --channel=22 SP

Ora ascolta su questo canale usando rfcomm:

sudo rfcomm listen /dev/rfcomm0 22

rfcomm si bloccherà, ascoltando una connessione con un messaggio come

Waiting for connection on channel 22

Tornato su Android, ho usato l'applicazione BlueTerm (http://pymasde.es/blueterm/, disponibile anche gratuitamente su Google Play Store) anche se qualsiasi applicazione simile dovrebbe funzionare. Apri BlueTerm, vai su opzioni> Connetti dispositivo:seleziona l'adattatore associato.

Correlati:Freebsd – Come avviare FreeBSD in modalità console?

Si spera che l'applicazione sia stata in grado di connettersi. Vedrai un'ulteriore verifica nel terminale in cui hai bloccato l'ascolto con un messaggio come:

Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup

Tutto ciò che digiti nell'app BlueTerm dovrebbe andare su /dev/rfcomm0. Puoi vedere le cose visualizzate durante la digitazione aprendo un nuovo terminale e facendo qualcosa del tipo:

cat /dev/rfcomm0

Linux
  1. Come eliminare in modo sicuro e permanente i tuoi dati in Linux

  2. Come inviare dati a una porta seriale e vedere qualche risposta?

  3. Linux – Porta seriale Raspberrypi?

  4. Linux:come trovare processi utilizzando la porta seriale?

  5. DAEMON Sync – Sincronizza i dati da Linux a dispositivi Android e iOS

Come eseguire una scansione delle porte in Linux

Come utilizzare il terminale Linux in Android

Come eseguire il backup e il ripristino dei dati utilizzando Restic in Linux

Come trovare e chiudere le porte aperte in Linux

Come connettere e condividere dati tra due sistemi Linux

Come e perché usare Linux per installare Telnet