Orange Pi の Ubuntu に Bluetooth を設定する

昨日、"Orange Pi One"に"Ubuntu 16.04 LTS"を導入したので、Bluetoothキーボードの接続を行いました。

使用機器

  • 親機
    • Single Board Computer : Orange Pi One
      • Hardware Performance
        • SoC : Allwinner H3 @ 1.2GHz / Quad-Core Cortex-A7
        • MEM : 512MB
        • USB : Type A x 1, microUSB(Micro-B)
      • OS : Lubuntu 16.04.3 LTS
  • 登録するBluetooth Device
  • 設定に使用したキーボード・マウス
    • Wireless Combo MK240
      非Bluetooth接続ドングルのキーボード・マウスセット
      (無線アダプタとキーボード・マウスがセットになった商品で設定なしに利用可)

非Bluetooth接続のドングルの説明は以下が分かりやすいです。
なお、どちらも2.4GHz帯を利用します。

base on Logitech Bluetooth USB ドングル

Logitech のドングルには Embedded と HCI という二つのモードで動作するものがあります。
embedded モードではドングルは USB デバイスをエミュレートするので PC は普通の USB マウス・キーボードを使っていると認識します。

つまり、"Wireless Combo MK240"は、(embedded モード接続により)PCからはUSBケーブルで接続されていると認識されていることになります。

早速、設定していきます。

Bluetooth関連モジュールの導入

先日導入した"Ubuntu"には"Bluetooth"関連モジュールが全く入っていなかったので一通り入れます。
なお、最後の"blueman"はGUI設定ツール(Graphical bluetooth manager)です。

$ sudo apt-get install bluetooth bluez bluez-dbg bluez-utils bluez-hcidump libbluetooth3 libbluetooth3-dbg blueman

サービス登録

$ sudo systemctl start bluetooth.service
$ sudo systemctl enable bluetooth.service

設定

なぜかGUI設定画面が落ちる

Bluetooth設定画面で検索すると対象のデバイスが見つかるものの、ペアリング設定の画面に進むと漏れなく強制終了します...。

CUIで設定

仕方がないので、コンソールから設定することにしました。
CUIとは言っても対話的なので難しくはありません。

$ bluetoothctl
[bluetooth]# scan on  # デバイスを検索
[bluetooth]# pair 00:00:00:00:00:00:  # ペアリング
[bluetooth]# trust 00:00:00:00:00:00:  # デバイスを信用する
[bluetooth]# connect 00:00:00:00:00:00:  # 接続
  • デバイスを検索しなくても対象のMACアドレスが画面上に出る場合は"scan on"は不要です。
  • ペアリング時にPIN入力を求められる場合("Pairing request ...")は、登録するデバイスで入力してください
  • PINコードがない機器の場合"trust"を設定しておいたほうが無難です

追加設定

OS起動時に自動的に接続するように設定する

base on 起動後に自動でBluetoothアダプタを有効にする

デフォルトでは、再起動後に Bluetooth アダプタが有効になりません。
hciconfig hci0 up を使用する以前の方法は非推奨となりました。
現在では、AutoEnable=true を /etc/bluetooth/main.conf の [Policy] セクションの下部に追加するだけです

$ sudo vi /etc/bluetooth/main.conf
[Policy]
AutoEnable=true