Linux

グラフィカルなBluetoothマネージャがある場合、ノートPCとBluetoothモジュールのペアリングに使えます。その場合、これらのほとんどの手順は不要です。 もしかすると、この手順は必要かもしれません。

電源を入れる

まず、ノートPCのBluetoothトランシーバは、オフになっている可能性があります。hciconfigで状態を確認し、必要があれば電源を入れて下さい。

$ hciconfig
hci0:   Type: Primary  Bus: USB
        BD Address: 68:17:29:XX:XX:XX  ACL MTU: 310:10  SCO MTU: 64:8
        DOWN  <--
        RX bytes:580 acl:0 sco:0 events:31 errors:0
        TX bytes:368 acl:0 sco:0 commands:30 errors:0

$ sudo hciconfig hci0 up

$ hciconfig
hci0:   Type: Primary  Bus: USB
        BD Address: 68:17:29:XX:XX:XX  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING  <--
        RX bytes:1190 acl:0 sco:0 events:67 errors:0
        TX bytes:1072 acl:0 sco:0 commands:66 errors:0

その後、BlueZ (Bluetooth) デーモンを起動しなければなりません。

  • systemdベースのLinuxディストリビューションでは、下記コマンドを使います。
$ sudo systemctl start bluetooth
  • Ubuntu(またはupstartベースのLinuxディストリビューション)では、下記コマンドを使います。
$ sudo /etc/init.d/bluetooth start

Bluetoothをアンブロックする必要があるかもしれません。rfkill listの出力に依存します。

$ rkfill list
9: hci0: Bluetooth
        Soft blocked: yes # <--
        Hard blocked: no

$ sudo rfkill unblock bluetooth

$ rkfill list
9: hci0: Bluetooth
        Soft blocked: no  # <--
        Hard blocked: no

スキャン

$ hcitool scan
Scanning ...
        20:16:05:XX:XX:XX       Ferris
$ #                             ^^^^^^

ペアリング

$ bluetoothctl
[bluetooth]# scan on
[bluetooth]# agent on
[bluetooth]# pair 20:16:05:XX:XX:XX
Attempting to pair with 20:16:05:XX:XX:XX
[CHG] Device 20:16:05:XX:XX:XX Connected: yes
Request PIN code
[agent] Enter PIN code: 1234

rfcommデバイス

/devにBluetoothデバイス用のデバイスファイルを作成します。すると、/dev/ttyUSB0を使ったように、Bluetoothデバイスを使うことができます。

$ sudo rfcomm bind 0 20:16:05:XX:XX:XX

bindの引数として0を使用したため、/dev/rfcomm0がBluetoothモジュールのデバイスファイルとして割り当てられます。

次のコマンドで、いつでもデバイスファイルを解放(削除)することができます。

$ # 今はこのコマンドを実行しないで下さい!
$ sudo rfcomm release 0