Bluetooth経由での BeagleBone Black ログインする


今回は、BeagleBone Black に Bluetooth 経由でログインするまでのメモ記事です。
Windows10のPCから、Bluetooth 経由で BeagleBone Black にログインします。
Linuxで Bluetooth を利用するときはほぼ同じような手順になります。

最近では、BeagleBone Black に無線機能が搭載されたボードが発売されています。
BeagleBone Black Wireless では、Wi-Fi と Bluetooth を利用することができます。

しかし、手元の BeagleBone Black では無線機能がないため、外付けで利用することになります。


準備:

Bluetoothドングル
 今回、利用したのはバッファローの BSBT4D09BK です。
 この、BluetoothドングルをUSBポートに接続して利用します。

 → バッファローのページへ

5V AC/DCアダプター
 BeagleBone Black で外付けのデバイスを利用するときには必要なようです。
 (BeagleBone Greenでは不要なような?)
 HDMI出力時も必要になりますが、内部的にUSB給電では電力不足なのでしょうね。

 モノは、手元にあった秋月電子の5Vのアダプタを使いました。

RootFS
 RootFSは、BeagleBone 用のRootFSを持ってきてください。
 Bluetooth関連のソフトウェアもインストール済みです。


ログインまで:

1. BeagleBone Black でBluetoothを開始します。
 "bluetoothctl" コマンドで以下の操作を行います。
 コマンドを実行すると、サブコマンドの受付状態になります。

 以下のサブコマンドを投入します。
    power on
     discoverable on
     agent on
     default-agent

 この状態で、コントローラーがON、他機から検出可能、
 ペアリング可能な状態となります。

 Bluetoothコントローラーの状態を確認したいときは、
  show
 コマンドで確認できます。

 その他:
  trust <MAC address> device trusted.
  info <MAC address> device conditions.


2. Windows10 側でデバイスのペアリングを行います。
 Winキー + i で設定画面を開きます。
 Devices を選択して、Bluetooth & other device を開きます。
 [+] Add Bluetooth or other device を選択、デバイスの追加を開きます。
 その中から、Bluetooth を選択すると、周辺のデバイス検索が始まります。

 "beaglebone" を見つけたら、接続します。
 PC、BeagleBone ともパスキーを確認して入力します。

 ここまででデバイス自体のペアリングまで完了です。
 "bluetoothctl" コマンドは終了して大丈夫です。


3. BeagleBone Black 側のログイン環境を設定します。
Bluetooth SPP(Serial Port Profile) と SDP(Service Discovery Protocol) を有効にします。

SDPサーバーの設定
 /etc/systemd/system/dbus-org.bluez.service を編集します。

 下記の行を見つけてください。
  ExecStart=/usr/lib/bluetooth/bluetoothd

 以下のように変更します。
  ExecStart=/usr/lib/bluetooth/bluetoothd --compat


Bluetooth のデーモン、bluetoothd を再起動します。

 systemctl daemon-reload
 systemctl restart bluetooth


SDPサーバーにシリアルポートの追加

      sdptool add --channel=22 SP


SDPサーバーの確認
 以下のコマンドで確認します。
  sdptool browse local

 以下のような表示が出るので。。。
      Service Name: Serial Port
      Service Description: COM Port
      Service Provider: BlueZ
            :
 以下のRFCOMMを確認する。
  SPP start emulater RFCOMM(Radio Frequency Communication).
  rfcomm -r watch 0 22 /sbin/agetty -L rfcomm0 115200 &


4. Windows10側のSPP設定を行いログインする。
 コントロールパネルを開く。
 Hardware and Sound を開く。
 Devices and Printers を開く。

 デバイスに"beaglebone"を見つけ、右クリックでプロパティを開く。

 プロパティのサービスタグを選択。
 Serial port(SPP) `Serial Port` をチェックする。

この状態で、Windows10側はターミナルソフトを使って、SPPに表示されているCOMポートに接続することができます。


Windows10からログインする。
 Teratermなどのターミナルソフトで接続してログインできます。

 BeagleBone Black 側で、"who" コマンドなどでログイン状態を確認できます。





Have a Happy Hucking!!


Lightning Brains

コメント

このブログの人気の投稿

Linuxシステムコール、共有メモリの使い方

Linuxシステムコール、メッセージキューの使い方

Linuxシステムコール、セマフォの使い方