はじめに
授業でRaspberry Piを扱うことになって,できるだけ少ない配線で作業したいなと思って構築した環境です. どっちかっていうと実用ではなく学習向けの環境かも.インターネット共有はできません.
環境
- MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
- macOS Sierra 10.12.4
- Raspberry Pi 3
- MicroUSB 電源
- Wi-Fi(2.4GHz)もしくはEthernet
- microSD
- (必要であれば)各種変換
- ディスプレイ
- HDMIケーブル
- USBキーボード
- USBマウス
初期セットアップはやっぱり装備多めになりますよね〜.
これらを最終的に上から4つ(または5つ)ぐらいまでに絞ります.
やり方
普通にセットアップしていきます.
まずはRaspbianを公式からダウンロードします.割と長い.
ダウンロードできたら,イメージをmicroSDに焼いていきます.
macOSのターミナルにて
$ diskutil list $ diskutil unmountDisk /dev/diskN $ diskutil eraseDisk MS-DOS RASPI /dev/diskN $ diskutil unmountDisk /dev/diskN $ sudo dd if=~/Downloads/xxx-raspbian-jessie.img of=/dev/diskN bs=N
Nは,環境に合わせて適当にやってください.eraseDisk前のunmountは必要だったか覚えてませんが,まあ一応やっておきます.
焼き終わったらRasPiに各種I/Oと焼いたmicroSDを差して電源を投入します.
無事起動したら,左上のスタートボタンからPreference -> Raspberry Pi Configurationをクリック.
Interface
タブから,SSHを探してEnableしておく.Locale
タブから,ロケールとかタイムゾーンとか設定しとく.
設定の適用には再起動が必要なので,ダイアログに従って再起動する.
戻ってきたらコンソールを立ち上げて,update & upgrade
していきます.
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade
パスワードが初期パスのままなので変えておきましょう.初期パスはraspberry
です.
$ passwd
- 初期パス
- 新パス
- 新パス確認
の順で打っていきます.このパスはSSHのログインにも使います.
次に,ネットワークの設定をやっていきます.コンソールエディタを使いますので,いろいろ好みはあると思いますがなければインストールしておきます.
$ sudo emacs /etc/dhcpcd.conf
こいつに追記していきます.
bnep0
は,今回のメインであるBluetooth PANのインターフェースです.書いといてください.
#Bluetooth PAN with my MBP interface bnep0 static ip_address=192.168.x.y/z static routers=192.168.l.1
xyzは好みで変えてください.
static ip_addressに設定したアドレスは,静的に割り振られます.メモっときましょう.
次に,BluetoothでMacとRasPiをペアリングします.
$ bluetoothctl [bluetooth]# scan on
こうすると,周囲のBluetoothデバイスが検知されていきます.
自分のMacが検知されたら(そのMacのの名前とアドレスが出ます),一緒に書かれているアドレスをメモっときます.以降,これをBT_Addr
と呼びます.
ではペアリングです.
自分がやった時割とよくFailedとか出されたので,出た場合は後述の対処をしてください.
[bluetooth]# pair BT-Addr [bluetooth]# connect BT-Addr [bluetooth]# trust BT-Addr
とします.
これらのいずれかでBluez.Failed
とか出されたら,以下の対処を試してください.
$ pulseaudio --start $ bluetoothctl [bluetooth]# connect BT-Addr
これでできなかったら,もうわかりません.格闘してください.
自分はこれで成功したこともあったのですが,なぜこれで成功するのかわかりません.格闘してたら見つけました.
それでは,ペアリングが完了した前提で進めていきます.確認方法としては
って感じです.これらが揃っていればペアリングは成功しているでしょう.
次に,Bluetooth PANを構築します.
参考にした記事はこちら.
必要なパッケージをインストールしておきます.
sudo apt-get install python-dbus
スクリプトを適当な場所にwgetし,実行権限とか与えて,BluetoothPANのリクエストをMacに送信します.
$ wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan $ chmod +x bt-pan $ sudo chown root: bt-pan $ sudo mv bt-pan /usr/bin/ $ sudo bt-pan client BT_Addr
Macにダイアログが出てくるので許可する.
ここで一旦Macの設定に戻ります.Macの設定からネットワーク設定を開きます.左側の窓の中にBluetooth PANが出ていると思いますが,自己割り当てアドレス
となって黄色くなっていると思います.
これを修正しなければなりません.Bluetooth PANの詳細を開き,TCP/IP
タブで,IPv4の設定を手入力
にします.もし他の設定とかぶったりする場合は新しくプロファイルを作ってくださいね.
そして,IPv4アドレスのところをstatic routers
のアドレスにします.
サブネットマスクはおおかた255.255.255.0
でしょうか.
ルーターはメインのネットワークのルーターアドレスを設定しておきましょう.
これで,黄色から緑になったと思います.
ではRasPiに戻って,コンソールでIPが振られているか確認しましょう.
$ ifconfig bnep0
これで,inet
のアドレスが,static ip_address
のアドレスになっていればうまくBluetooth PANが構築できています.
それでは,電源投入後自動で構築するようにしましょう.
sudo emacs /etc/rc.local
一番下にexit 0
が見えると思いますが,そこの上であればどこに書いても構いません.
先ほど実行したbt-pan
を,ここに記述しておきます.これにはsudo
は不要です.
bt-pan BT_Addr
と記述します.
ここまできたら,とりあえずテストとしてMacからSSH叩いてみましょう.
ssh pi@192.168.x.y
これでパスワード入力まで行けば成功です.一旦sudo reboot
して再起動しましょう.自動でMacとつながるかどうか試します.
RasPiが起動した10秒後くらいにもういっかいSSHを叩いてパスワード入力まで行くようであれば,rc.local
に書いた自動接続もうまくいっているようです.
それでは最後にVNCもできるようにしましょう.
MacからのVNCなので,プリインストールのReal VNCではできません.別のパッケージを使います.
sudo apt-get install tightvncserver
これをインストールすると,$ vncserver
が$ tightvncserver
にエイリアスされます.
$ vncserver
と実行すると,初回は接続用のパスワード設定しろと出てくるので,設定しましょう.
設定が終わると,画面の配信が始まります.気をつけて欲しいのは,配信される画面はディスプレイに映っているものと同じではなく別ウィンドウだということです.
それでは接続してみましょう.
MacのFinderを開きます.メニューバーの移動
から,一番下のサーバーに接続
をクリックします.
ダイアログが出てくるので,アドレス欄にvnc://192.168.x.y:5901
と打って接続します.:5901
もちゃんとつけてくださいね.
パスワード入力を要求されるので,入力して接続します.すると,RasPiの画面がMacに映ります!やったね!
VNCは,あくまで第二の手段として用意しておくまでです.基本的には,必要になった時にSSHから叩いてからの接続です.もし起動時に配信したいのであれば,先ほど同様rc.local
に記述しましょう.
もし配信を停止したければ
$ vncserver -kill :N
で配信を切れます.Nは,$ vncserver
を叩いた時に出てくるウィンドウ番号です.
けっこう長くなりましたね.お疲れ様でした.
Bluetooth PANによる接続ですが,インターネット接続は提供できません.他のやり方でできるかもしれませんが,このやり方ではできません.
しかし,僕がなぜWi-Fi共有ではなくBluetooth PANを選んだかにはきちんと理由があって,Mac/RasPi側のWi-Fi等を食いつぶしたくなかったからです.
RasPi側に,Bluetooth PAN以外に外界へのネットワーク接続をすれば,パッケージ等のインストールもSSH越しでできます.
あ,注意してほしいのですが,Mac側がスリープしてペアリングとかBluetooth PANが途切れると,他のネットワークを経由するか再起動しか接続の方法がありませんので悪しからず.
おわりに
画像とかなくてすみません.後日スクショとかつけるかもしれません.
指摘等ありましたらコメントでお願いします.
長くなってすみませんでした.あなたのRasPiライフがスマートでありますように.
ではまた.