power on
- hciconfig [장치이름] up : hciconfig hci0 up
scan devices
Browse all available services on the device specified by a Bluetooth address as a parameter.
- sdptool browse bdaddr : sdptool browse D0:57:85:C1:5E:D6
Retrieve all possible service records.
- sdptool records bdaddr : sdptool records D0:57:85:C1:5E:D6
--------------------------------------------------------------------------------------------------------------------------------------------------
Install bluez
mkdir Bluez
cd BlueZ
git clone git://git.kernel.org/pub/scm/bluetooth/bluez.git
mv bluez bluez-5.28
sudo apt-get install libudev-dev libpcre3-dev libtool libglib2.0-dev libdbus-1-dev elfutils libelf-dev libdw-dev libical-dev libsbc-dev libspeexdsp-dev libreadline6 libreadline6-dev automake
edit ./bootstrap-configure : add --enable-library \
add --disable-systemd \
delete --enable-android \
./bootstrap-configure
make
sudo make install
GATT 용 rpi
GATT 제외한 나머지 profile 용 rpi
git checkout ad410057b17933339774fa7e4a12bfc87bfd545d
bluez configuration 수정
/etc/bluetooth/main.conf 수정
- DiscoverableTimeout = 0 주석해제
- PairableTimeout = 0 주석해제
- Class = 0x000100 주석해제
bluetoothd 실행
sudo /usr/libexec/bluetooth/bluetoothd -n -d
SSP mode enable
sungmokshin @sungmokshin -desktop2:~/bt_automation/automation-tests$ hciconfig hci0 sspmode
hci0: Type: BR/EDR Bus: USB
BD Address: 00 : 49 : 00 :C0: 20 : 00 ACL MTU: 1021 : 8 SCO MTU: 64 : 1
Simple Pairing mode: Disabled
sungmokshin @sungmokshin -desktop2:~/bt_automation/automation-tests$ sudo hciconfig hci0 sspmode 1
[sudo] password for sungmokshin:
sungmokshin @sungmokshin -desktop2:~/bt_automation/automation-tests$ hciconfig hci0 sspmode
hci0: Type: BR/EDR Bus: USB
BD Address: 00 : 49 : 00 :C0: 20 : 00 ACL MTU: 1021 : 8 SCO MTU: 64 : 1
Simple Pairing mode: Enabled
sungmokshin @sungmokshin -desktop2:~/bt_automation/automation-tests$
|
export DISPLAY=:0
SPP
SPP-loopback.py를 /home/sungmokshin/BlueZ/bluez-5.28/test로 복사
chmod 755 SPP-loopback.py
현재 rpi에서 rfcomm device node release 시 kernel panic 문제 있음
Can't create RFCOMM TTY: Address already in use
재부팅 하지 않는 이상 rfcomm 접속 불가
laptop에서는 kernel panic 빈도가 rpi보다 적음 (rpi는 2번 rfcomm 접속 시 대부분 kernel panic)
[ 1076.910112 ] Bluetooth: TIOCGSERIAL is not supported
[ 1089.034997 ] Bluetooth: TIOCGSERIAL is not supported
[ 1089.037061 ] Bluetooth: TIOCGSERIAL is not supported
[ 1089.037689 ] ------------[ cut here ]------------
[ 1089.037739 ] WARNING: CPU: 1 PID: 1507 at drivers/tty/tty_port.c: 143 tty_port_destructor+ 0x84 / 0x88 ()
[ 1089.037756 ] Modules linked in: rfcomm fuse bnep btusb btrtl btintel btbcm bluetooth joydev rfkill evdev bcm2835_wdt bcm2835_gpiomem uio_pdrv_genirq uio snd_bcm2835 snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_seq_device snd_timer snd ipv6
[ 1089.037945 ] CPU: 1 PID: 1507 Comm: kworker/ 1 : 0 Not tainted 4.4 . 11 -v7+ # 888
[ 1089.037958 ] Hardware name: BCM2709
[ 1089.037986 ] Workqueue: events release_one_tty
[ 1089.038056 ] [< 80018724 >] (unwind_backtrace) from [< 80014058 >] (show_stack+ 0x20 / 0x24 )
[ 1089.038092 ] [< 80014058 >] (show_stack) from [<803205a4>] (dump_stack+ 0xd4 / 0x118 )
[ 1089.038134 ] [<803205a4>] (dump_stack) from [< 80025300 >] (warn_slowpath_common+ 0x98 / 0xc8 )
[ 1089.038170 ] [< 80025300 >] (warn_slowpath_common) from [<800253ec>] (warn_slowpath_null+ 0x2c / 0x34 )
[ 1089.038209 ] [<800253ec>] (warn_slowpath_null) from [<803794d4>] (tty_port_destructor+ 0x84 / 0x88 )
[ 1089.038273 ] [<803794d4>] (tty_port_destructor) from [< 80379524 >] (tty_port_put+ 0x4c / 0x50 )
[ 1089.038363 ] [< 80379524 >] (tty_port_put) from [<7f1e4010>] (rfcomm_tty_cleanup+ 0x5c / 0x60 [rfcomm])
[ 1089.038464 ] [<7f1e4010>] (rfcomm_tty_cleanup [rfcomm]) from [<8036f3e4>] (release_one_tty+ 0x3c / 0xb4 )
[ 1089.038522 ] [<8036f3e4>] (release_one_tty) from [<8003c634>] (process_one_work+ 0x154 / 0x458 )
[ 1089.038573 ] [<8003c634>] (process_one_work) from [<8003c98c>] (worker_thread+ 0x54 / 0x500 )
[ 1089.038604 ] [<8003c98c>] (worker_thread) from [< 80042668 >] (kthread+ 0xec / 0x104 )
[ 1089.038638 ] [< 80042668 >] (kthread) from [<8000fbc8>] (ret_from_fork+ 0x14 / 0x2c )
[ 1089.038659 ] ---[ end trace 2c2c2e5cebcc4d2c ]---
|
PAN
bt-pan을 /home/sungmokshin/BlueZ/bluez-5.28/test로 복사
chmod 755 bt-pan