2018年4月15日日曜日

Raspberry Pi に、自動で開始するサービスを追加する

Raspberry Pi の起動時に、自動で Bluetooth PAN を開始する

以前はこういう場合は chkconfig コマンドでしたが、Raspbian Stretch だと新しく systemctl を使用します。
https://wiki.archlinux.jp/index.php/Systemd

前記事の Bluetooth PAN のセットアップ スクリプト(bt-pan) であれば、

$ cat /etc/systemd/system/bluetooth-tethering.service
[Unit]
Description=Bluetooth Tethering
After=networking.service bluetooth.service dbus-org.bluez.service

[Service]
ExecStart=/home/pi/bt-pan client 00:00:00:00:00:00
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target


Raspberry Pi の起動時に自動で開始するように、"有効" に切り替えます。
$ sudo systemctl enable bluetooth-tethering

屋外で使用する場合は、Bluetooth テザリングの接続先を準備してから Raspberry Pi を起動する必要があります。

2018年4月14日土曜日

Raspberry Pi を Bluetooth 経由でスマートフォンから操作する

Android タブレットから Raspberry Pi へ Bluetooth で接続して、VNC のリモートデスクトップを操作する方法です。(SSH でも同様に可)

今回使用したもの
  • Nexus 7 (2013)
  • Raspberry Pi Zero WH (Raspbian Stretch with desktop)

Raspbery Pi のうち、Bluetooth を標準装備しているものは BlueZ 等は導入済みであり、追加のパッケージは必要ない。
$ apt-cache show bluetooth
Package: bluetooth
Source: bluez
Version: 5.43-2+rpt2+deb9u2
(以下略)


VNC で接続するためには、Raspberry Pi 側に Bluetooth 経由でアクセスできる IPアドレス が必要になるが、これは Raspberry Pi からタブレットへ、Bluetooth テザリングで接続すれば済む。

■ Android 側での設定
  1. BluetoothをONにする
  2. BluetoothテザリングをONにする
  3. VNC互換のクライアントをインストール
    VNC Viewer - RealVNC Limited

■ Raspberry Pi 側での設定
  1. VNCサーバを「有効」にする
    Raspberry Pi のスタートメニュー > 設定 > Raspberry Pi の設定 > [インターフェース]タブ
  2. BluetoothをONにする
  3. Bluetoothのペアリングを行い、タブレットの Bluetooth と接続する
  4. テザリングを開始する(下記)

まずは、Raspberry Pi でペアリングしたタブレットの Bluetooth デバイスアドレス(BD Address) を確認します。
$ bluetoothctl
以下は bluetoothctl のセッション
# devices
Device 00:00:00:00:00:00 nexus7(これがペアリングしたタブレットのBD Address)
# quit


Raspberry Pi のテザリングを開始するためには、Bluetooth PAN (Personal Area Network) の設定が必要です。GitHub で提供されている Bluetooth PAN のセットアップ スクリプトが使用できます。
https://github.com/mk-fg/fgtk#bt-pan

$ wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan
$ chmod a+x bt-pan
$ sudo ./bt-pan client 00:00:00:00:00:00(上記 タブレットの BD Address を指定する)
$ ifconfig bnep0
bnep0: flags=4163 mtu 1500
inet 192.168.xx.xx netmask 255.255.255.0 broadcast 192.168.xx.xx
(以下略)

これで Bluetooth PAN で使える IPアドレス(192.168.xx.xx) が有効になったので、タブレットの VNC クライアントからこのアドレスに接続すればOK

Raspberry Pi の起動時に、自動で Bluetooth PAN を開始するには、次の記事を参照
Raspberry Pi に、自動で開始するサービスを追加する

2018年4月10日火曜日

Raspberry Pi で Wi-Fiアクセスポイントの名前が見えない

Raspberry Pi Zero WH で Wi-Fi の SSID 一覧が表示されるが、目的の接続先の名前が表示されない場合の対処について。強引に CLIの設定で乗り切る前に、確認したほうがよい設定ミスの可能性があります。

Raspberry Pi のスタートメニュー > 設定 > Raspberry Pi の設定 > [ローカライゼーション]タブ
・「無線LANの国」を、JP (Japan) に変更

通常の Wi-fi 機器であれば、これで再起動すれば、目的の SSID が表示されるはず。