====== parear cascos (actualizado) ====== Instalar bluetooth sudo apt update && sudo apt install bluetooth Ejecutar: bluetoothctl default-agent pairable on devices Si sale el mismo que hay que parear mejor olvidarlo: remove F8:4D:89:25:92:89 Poner el dispositivo bluetooth a parear en modo "descubrible". En mi caso unos airpods scan on Encontrar el ID del dispositivo pair F8:4D:89:25:92:89 En futuras ocasiones: bluetoothctl connect F8:4D:89:25:92:89 ====== bluetooth ====== bluetooth bluez obexftp obexftpd bluetoothd Requisitos: * Pc con tarjeta de bluetooth integrada o adaptador pinchado (lo vemos con un 'lspci -vv' o un 'lsusb' * Móvil con bluetooth activado, configurado como visible y (no se si todos los móviles lo soportan) habilitada la capacidad de ser examinado Lo interesante de esta receta es poder enviar/recibir archivos **sin tener que instalar KDE/Gnome y sus applets** ===== Habilitar bluetooth ===== 1. Habilitar módulos del kernel modprobe btusb Creo que no hace falta, pero por si las moscas: modprobe uhci_hcd ehci_hcd 2. Instalar paquetes: aptitude update && aptitude install bluetooth obexftp obexpushd Por si ascaso listo los paquetes que yo tengo instalados: ii bluetooth 4.42-2 Bluetooth support ii bluez 4.42-2 Bluetooth tools and daemons ii bluez-alsa 4.42-2 Bluetooth ALSA support ii bluez-cups 4.42-2 Bluetooth printer driver for CUPS ii bluez-firmware 1.2-2 Firmware for Bluetooth devices rc bluez-gnome 0.27-1 Bluetooth utilities for GNOME ii bluez-gstreamer 4.42-2 Bluetooth GStreamer support rc bluez-utils 4.42-2 Transitional package rc libbluetooth2 3.36-1 Library to use the BlueZ Linux Bluetooth sta ii libbluetooth3 4.42-2 Library to use the BlueZ Linux Bluetooth sta ii mplayer-skin-blue 1.6-2 blue skin for mplayer rc gnome-vfs-obexftp 0.4-1+b1 GNOME VFS module for OBEX FTP ii libmulticobex1 0.23-1 multi-protocol cable OBEX library ii libobexftp0 0.23-1 object exchange file transfer library ii libopenobex1 1.5-2 OBEX protocol library ii obex-data-server 0.4.4-2 D-Bus service for OBEX client and server sid ii obexftp 0.23-1 file transfer utility for devices that use t ii obexpushd 0.7-1.1 program for receiving files via Bluetooth or 3. Arrancar el demonio de bluetooth: /usr/sbin/bluetoothd Para comprobar que tenemos un dispostivo bluetooth funcionando: hcitool dev Devices: hci0 00:16:41:8A:27:B6 ===== Parear los dispositivos ===== ==== Arch Linux ==== http://wiki.archlinux.org/index.php/Bluetooth#Pairing 1. Lanzar como root el comando(parte del paquete 'bluez'): sudo bluez-simple-agent Si todo va bien, se tiene que ver: Agent registered Si aparece algun error de python, reiniciar el demonio bluetooth: sudo /etc/rc.d/bluetooth restart 2. Lanzar como usuario, y pasando la direccion MAC del dispositivo a parear: bluez-simple-agent hci0 MAC_DISPOSITIVO_A_PAREAR 3. (Movil) confirmar que se quiere parear 4. (Pc) teclear el codigo que se quiere usar 5. (Movil) Teclear el mismo codigo que el paso 4. Otra: * Desde el teléfono móvil 4.1.1 Situarse en el directorio en el que se quiere recibir los archivos y escribir: bluetooth-agent 1234 4.1.2 Desde el móvil buscar dispositivos, seleccionar el nombre susceptible de ser el ordeñador y teclear '1234' * Desde el pc 4.2.1 Situarse en el directorio en el que se quiere recibir los archivos y escribir: bluetooth-agent 1234 4.2.2 Teclear: rfcomm connect mac_telefono_movil Error: Can't find a config entry for rfcomm0 Tengo que depurarlo * Desde el pc 2 (funciona 14/12/2009) 4.3.1 Situarse en el directorio en el que se quiere recibir los archivos y escribir: bluetooth-agent 1234 4.3.2 Desde otra consola averiguar la dirección mac del móvil: hcitool scan Scanning ... 00:17:83:ED:AD:14 HTC_P3650 00:09:DD:50:6E:1C airis-0 4.3.3 Listar el contenido del móvil (no se si todos los móviles soportan esta opción): obexftp -b 00:17:83:ED:AD:14 -l 4.3.4 En el móvil teclear '1234' ===== Recibir archivos ===== 1. Arrancar el demonio para recibir archivos: obexpushd 2. Hacer visible nuestro dispositivo: * NO funciona dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable * Funciona hciconfig hci0 piscan Para comprobar que nuestro dispositivo es visible: hciconfig hci0: Type: USB BD Address: 00:16:41:8A:27:B6 ACL MTU: 384:8 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:786030 acl:1915 sco:0 events:1467 errors:0 TX bytes:19928 acl:1227 sco:0 commands:112 errors:0 Tienen que estar presente los valores 'ISCAN PSCAN' 3. Ahora podemos recibir archivos de dos formas: * Desde el pc (recomendado, más cómodo) 3.1.1 Rastrear dispositivos. Lógicamente hay que habilitar el usb del móvil y situarlo cerca: hcitool scan Scanning ... 00:17:83:ED:AD:14 HTC_P3650 00:09:DD:50:6E:1C airis-0 3.1.2 **NOTA** No se si todos los móviles soportan la capacidad de ser examinados. Listar el directorio que el móvil comparte. En este ejemplo usamos la dirección MAC de la HTC P3650: obexftp -b 00:17:83:ED:AD:14 -l Browsing 00:17:83:ED:AD:14 ... Connecting..\done Tried to connect for 27ms Receiving "(null)"...| done Disconnecting../done En mi caso vemos que el directorio que comparte contiene únicamente otro directorio, '100MEDIA', por lo que para listar el contendio de '100MEDIA': obexftp -b 00:17:83:ED:AD:14 -l 100MEDIA Browsing 00:17:83:ED:AD:14 ... Connecting..\done Tried to connect for 16ms Receiving "100MEDIA"...- done Disconnecting..\done 3.1.3 Situarnos en el directorio en el que queramos recibir el archivo: cd /tmp/ 3.1.4 Recibir el archivo: obexftp -b 00:17:83:ED:AD:14 -g 100MEDIA/VIDEO0001.mp4 * Desde el móvil 3.2.1 Seleccionamos el archivo (depende del modelo de móvil el como hacerlo) 3.2.2 Seleccionar 'transferir' o 'enviar por bluetooth' o algo así (depende del modelo de móvil el como hacerlo) El archivo irá a parar al directorio desde el cual se ejecutó la instrucción 'bluetooth-agent 1234' ===== Enviar archivos ===== 1. Enviar archivos * Móvil => pc Seleccionar el archivo, 'transferir' o algo así y seleccionar el pc. En el pc aparecerá un mensaje: Pincode request for device /org/bluez/2884/hci0/dev_00_17_83_ED_AD_14 El archivo se dejará en el directorio desde el cual se lanzó el comando 'bluetooth-agent 1234' * Pc => móvil obexftp -b MAC_MOVIL -c DIRECTORIO_REMOTO -p ARCHIVO_LOCAL o obexftp -b MAC_MOVIL -p ARCHIVO_LOCAL Browsing 00:17:83:ED:AD:14 ... Connecting..\done Tried to connect for 69ms Sending "/tmp/log.txt".../done Disconnecting..-done ===== Gnome applet debian lenny ===== Módulos instalados: hci_usb 18460 3 bluetooth 57636 9 rfcomm,l2cap,hci_usb ehci_hcd 36620 0 uhci_hcd 26272 0 Paquetes: ii bluetooth 3.36-3 Bluetooth stack utilities ii bluez-audio 3.36-3 Bluetooth audio support ii bluez-gnome 0.27-1 Bluetooth utilities for GNOME ii bluez-utils 3.36-3 Bluetooth tools and daemons ii gnome-bluetooth 0.9.1-1 GNOME Bluetooth tools ii libbluetooth2 3.36-1 Library to use the BlueZ Linux Bluetooth stack ii gnome-vfs-obexftp 0.4-1 GNOME VFS module for OBEX FTP ii libopenobex1 1.3+cvs20070425-2 OBEX protocol library ii obex-data-server 0.3.4-1 D-Bus service for OBEX client and server side functionality ii obexftp 0.19-7 file transfer utility for devices that use the OBEX protocol ii obexpushd 0.7-1 program for receiving files via Bluetooth or IRDA Servicios corriendo: 3885 ? Ss 1:12 /usr/sbin/dhcdbd --system 14599 ? Ss 0:00 /usr/sbin/hcid -x -s 14612 pts/0 S 0:00 /usr/bin/bluetooth-applet 14614 ? S 0:00 /usr/bin/obex-data-server --no-daemon 14616 ? S 0:00 gnome-obex-server 14704 pts/0 S 0:00 /usr/bin/bluetooth-applet Hay algunos problemillas de instalación: http://lists.alioth.debian.org/pipermail/pkg-bluetooth-maintainers/2008-July/001636.html ===== Guión para copiar archivos ===== Pulir una miaja #!/bin/bash directorio="100MEDIA" mac="00:17:83:ED:AD:14" rm /tmp/mobil.txt; for i in `obexftp -c $directorio -l`;\ do name="` echo \"$i\" | grep name | sed 's/"//g' | sed 's/^name=//g' `";\ echo $name >> /tmp/mobil.txt; done; \ echo `cat /tmp/mobil.txt|sed 's/\n//g'` > /tmp/mobil2.txt; sleep 1;\ obexftp -b $mac -g $directorio/`cat /tmp/mobil2.txt` ===== beacon ===== Lanzamos el scan y mientras está el scan el btmon: hcitool lescan 4A:F6:C7:2E:D3:DE (unknown) 44:9B:E0:3A:70:DA (unknown) E7:9F:D3:88:87:66 (unknown) 42:AA:DA:C2:5D:5C (unknown) 14:51:9A:A1:9C:E3 (unknown) F8:DF:15:C8:E0:E2 JBL Flip 4 sudo btmon > HCI Event: LE Meta Event (0x3e) plen 42 [hci0] 662.852030 LE Advertising Report (0x02) Num reports: 1 Event type: Connectable undirected - ADV_IND (0x00) Address type: Random (0x01) Address: E7:9F:D3:88:87:66 (Static) Data length: 30 Flags: 0x06 LE General Discoverable Mode BR/EDR Not Supported Company: Apple, Inc. (76) Type: iBeacon (2) UUID: 25786407-ebc6-cfaf-b14f-e2a49306a5fd Version: 256.512 TX power: -40 dB RSSI: -61 dBm (0xc3) Para buscar dispositivos que también nos sirve para ver la señal: sudo btmgmt find Discovery started hci0 type 7 discovering on hci0 dev_found: 67:27:CE:8B:B9:47 type LE Random rssi -89 flags 0x0000 AD flags 0x1a eir_len 30 hci0 dev_found: 73:02:AE:3E:48:1D type LE Random rssi -72 flags 0x0000 AD flags 0x1a eir_len 30 hci0 dev_found: 72:9B:24:DA:2E:6D type LE Random rssi -63 flags 0x0004 AD flags 0x00 eir_len 31 hci0 dev_found: 0F:CE:FC:59:11:D2 type LE Random rssi -92 flags 0x0004 AD flags 0x00 eir_len 31 hci0 dev_found: 28:11:A5:33:A0:B7 type LE Public rssi -87 flags 0x0000 AD flags 0x19 eir_len 25 hci0 dev_found: 49:ED:F5:D8:8E:FA type LE Random rssi -87 flags 0x0000