IoTLT vol.33 資料 https://iotlt.connpass.com/event/67583/ (2017/12/03更新)
あなたのお家に眠るラズパイを救出したいName: KoyanagiTwitter: @mascii_kIoTLT vol.33 @ LINE16 November 2017
View Slide
自己紹介mascii (ますきー)Twitter: @mascii_kGitHub, Qiita: @masciiAge: 24Job: System Engineer
ラズパイ眠ってませんか?
原因
解決策これならPi Zero WでもOK!
OSイメージをmicroSDに書き込むシンプルな構成をシンプルに実現しよう無線LANの設定SSHの有効化Zeroconfを利用したSSH接続
OSイメージをmicroSDに書き込むLet’s use Etcher!https://etcher.io/
OSをダウンロード● Raspbian Stretch Liteをダウンロードhttps://www.raspberrypi.org/downloads/raspbian/
Etcherの設定● Auto-unmount on success をオフ設定理由: イメージ書き込み直後に設定ファイルを書き込むため
EtcherでmicroSDに書き込む● zipファイルのまま microSD に Flash!zipファイルを展開すると出てくる imgファイルでも書き込めます
よくある間違い● イメージファイルをそのままコピー● USBメモリにイメージを書き込む
https://mascii.github.io/wpa-supplicant-conf-tool/無線LANの設定SSHの有効化Let’s use the tool made by me!
設定ファイルを作成・保存● ブラウザ上で設定ファイルを作成● 2つの作成ボタンを右クリック→別名で保存で microSD にファイルを保存https://mascii.github.io/wpa-supplicant-conf-tool/
設定ファイルの確認● microSD に2つのファイルが保存されていればOK○ wpa_supplicant.conf○ ssh.txt● wpa_supplicant (1).conf,ssh (1).txtなどになってしまった場合はリネーム一度、microSD に空の ssh.txt (または ssh) を作成しないと、SSH接続ができなくなりました
microSD をラズパイへ● microSD を取り出しラズパイにセット● ラズパイに電源ケーブルを繋げれば、無線LANに繋がった状態で起動する!
Raspberry Pi 2の場合● ELECOM WDC-150SU2Mがおすすめ● 安い(700円)、挿すだけで使える!○ (2017/12/03追記) Raspbian Jessie Lite までは挿すだけで使えましたが、Raspbian StretchLite からは挿すだけで使えなくなっていました。以下の記事を参照してドライバーインストールが必要です○ http://teppodone.hatenadiary.jp/entry/ELECOM_WDC-150SU2MonRaspberryPi
注意点● Pi 3, Zero Wの無線LAN機能やWDC-150SU2Mでは、2.4GHz帯のみ利用できます○ SSIDに g や G が付くことが多い● 有線LANでOKな方は、空の ssh.txt だけ作成し、ルーターとラズパイを直接接続します● このツールは WPA2-PSK が前提です● IE11, Edgeの方は右クリック→保存ができないので、左クリック→保存をしてください
Zeroconfを利用したSSH接続Let’s use Zeroconf!
Zeroconfを使うメリット● ルーターがRaspberry Pi に自動的に割り当てするIPアドレスを調べる必要がなくなる192.168.0.5 raspberrypi.local
Zeroconfの準備● macOS○ 何もインストールしなくてOK !● Windows○ iTunes または Bonjour Print Services がインストールされていればOK !
SSHクライアントの準備● macOS○ 何もインストールしなくてOK !● Windows○ Tera TermなどのSSHクライアントをインストールする
SSH接続(macOS)● ターミナルで ssh [email protected]○ WARNINGが出る場合は、ssh-keygen -R raspberrypi.localを実行してリトライ● Are you sure you want to continue connecting?が出たら yes を入力● パスワードを聞かれたら raspberry を入力
SSH接続(Windows & Tera Term)● Tera Termを起動しホスト(T)にraspberrypi.local を入力
SSH接続(Windows & Tera Term)● セキュリティ警告が出た場合は、チェックを入れて続行(C)をクリック
SSH接続(Windows & Tera Term)● ユーザ名pi● パスフレーズraspberryを入力しOKをクリック
SSH接続できた !● 勉強会会場の無線LANだと繋がらないことも...➢ ポケットWiFiやテザリングを使う
THANKS!Raspberry Pi を救出できましたか?
TIPSSSH接続できた後にやること知っておくと便利なこと
TIPS : ホスト名の変更● raspberrypi.local の raspberrypi の部分を変えたい● SSH接続後に sudo raspi-config を実行する(半角英数字 と - だけを使ってください)Enterキーで決定Escキーで終了Enter再起動後Enter
TIPS : piユーザーのパスワード変更● SSH接続後に passwd を実行するパスワードの長さが短いと更新に失敗することがあります
TIPS : Raspbianを最新の状態に更新● SSH接続後に○ sudo apt-get update○ sudo apt-get upgrade -yを実行する● sudo apt-get install... でパッケージのインストールがうまく行かない場合は、上記のコマンドを実行してみる
TIPS : Vim(テキストエディタ)をインストール● Raspbianの vi コマンドはVimエディタではなくviエディタ(使いにくい)なので要注意 !● SSH接続後に sudo apt-get install vim -yを実行する○ インストール後は vi コマンドでVimが起動TIPS : Git(バージョン管理ツール)をインストール● SSH接続後に sudo apt-get install git -y を実行する
TIPS : シャットダウンと再起動、SSH接続の終了● シャットダウン: sudo shutdown -h now○ いきなり電源ケーブルを抜くより、このコマンドを実行して数十秒経過してから電源ケーブルを抜いた方が良い● 再起動: sudo reboot● SSH接続の終了: exit
TIPS : PCから直接ファイルを操作● sshfsで、SSHと同じ認証方法を用いてPCからRaspberry Pi側のファイルを直接操作できます○ Atomなどお好きなエディタが使えます!● Windowsの場合、標準のメモ帳は改行コードLFに対応していないので、使用厳禁!○ AtomやVSCode, サクラエディタ, TeraPadなどを使って編集してください
TIPS : PCから直接ファイルを操作(macOS)● FUSE on OSXをインストールhttp://sourceforge.net/projects/osxfuse/● sshfsをインストールhttps://github.com/osxfuse/sshfs/releases● マウントポイントを作っておくmkdir mountpoint● マウントする(/home/pi)sshfs [email protected]:/home/pi mountpoint/ -o local● アンマウントするdiskutil unmount mountpoint参考文献: https://qiita.com/ysk24ok/items/bb148530a55a4e55d99b
TIPS : PCから直接ファイルを操作(Windows)● dokanのDokanSetup-1.0.5.1000.exeをダウンロードしてインストールhttps://github.com/dokan-dev/dokany/releases● WinSshFSのprevious.release-1.6.0-rc3.zipをダウンロードして展開、WinSshFS.exeを実行https://github.com/Foreveryone-cz/win-sshfs/releases● Addボタンをクリック、右図のように設定値を入れてSave● 右下のMountボタンをクリック○ /home/piがSドライブとしてマウントされる!
TIPS : ファイルの転送(macOS)● SCPコマンドで、SSHと同じ認証方法を用いてPC・ラズパイ間のファイルの転送ができます● 例: Raspbianのpiユーザーのホームディレクトリ上にあるファイル(~/file.txt)をmacOSのデスクトップ(~/Desktop)へ送りたい○ macOSのターミナルからscp [email protected]:~/file.txt ~/Desktop を実行● 例: macOSのデスクトップ上にあるファイル(~/Desktop/file.txt)をRaspbianのpiユーザーのホームディレクトリ(~)へ送りたい○ macOSのターミナルからscp ~/Desktop/file.txt [email protected]:~ を実行
TIPS : ファイルの転送(Windows & Tera Term)● Reveiveの場合は ~/ (piユーザーのホームディレクトリ)が使えないので/home/pi/を使う● 日本語ファイル名は文字化けするので注意● OS標準の改行コードの違い(Raspbian : LF, Windows : CRLF)に注意
● JavaScriptを使ってRaspberry Piで何かやってみたい場合はNode.jsをインストール !TIPS : Node.jsのインストールRaspberry PiにNode.jsとnpmの最新版をインストールするhttps://qiita.com/mascii/items/77c685df65c4cbca9315● Python (2.x系)であれば、Raspbianに標準で入っています
● PCとラズパイをLANケーブルで直接接続してSSH接続をしたい場合...TIPS : PCとラズパイを直接接続Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続するhttps://qiita.com/mascii/items/7d955395158d4231aef6