防備録も兼ねてRaspberry Pi Zero Wのセットアップ方法をかいておきます。
後で気づいたんですが多分IPの固定もheadless setupが可能だと思います。(時間があればどっかでチャレンジします)
必要なモノ
- Raspberry Pi Zero W本体
- SDカード(8GBぐらいでいい気がしますが、正直そこまで値段が変わらないので16GBぐらいあって良いと思います。)
- SDカード書き込み機(USB SD変換のようなもの、PCにSDカードを直接させる場合は不要)
- 電源(USB microBで電源供給します。500mAぐらいは流せる電源が望ましいと思います。)
- コンセントに挿して直接USBケーブルが生えてるタイプもありますが、普通のUSB ACアダプタにUSB microBケーブルを挿す方が汎用性もあるし値段もそこまで変わらないと思いますのでお薦めです。
- 無線LAN
細々したのがめんどくさいという人はスターターキットを買ってしまうのも手でしょう。
セットアップ
OSのインストール
Raspberry Pi Imagerのセットアップ
今はRaspberry Pi Imagerという便利ツールがあるのでソレを利用すると簡単にSDカードのセットアップが出来ます。
Raspberry Piのサイトから該当のインストーラーをダウンロードしてインストールして下さい。
SDカードのセットアップ
Raspberry Pi Zeroは基本GUIは使わないと思うのでLite版をインストールします。Operating Systemの項目はPi OS LITEを選択します。
Storageは各々のSDカードを指定してください。
上記が完了すればWRITEというボタンが押せると思うので書き込み開始してください。
暫く待つと完了すると思います。
無線LANのセットアップ
画面とキーボードを接続してセットアップしても良いんですが、基本的にminiHDMIやmicroUSB A→USB Aみたいな気持ち悪い変換を普通は持っていないと思います。
なので画面など無しでセットアップ(headlessみたいなワードで検索すると色々出てくると思います)します。
SSHの有効化
公式ドキュメントに従い、SDカードのルートディレクトリ(一番上)に'ssh'という空ファイルを作ります。
どんな方法でも良いですが、Windowsならファイルパスを利用するバーを利用するのが手軽でいいです。
SDカードのディレクトリ(自分の場合はH: でした)にエクスプローラーで移動して、パスのバーに
cmd /C copy nul ssh
と入力してEnterを押すと、開いているディレクトリにssh
という名前の空ファイルが作成されます。
ファイルが出来てればOKです。
WiFiの設定
公式ドキュメントに従いますが、boot
フォルダを作成してくれと書かれていますがたぶんSD名がbootなのでこれは無視してカード直下にwpa_supplicant.conf
というファイルを作成します。このファイルに設定を記載します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="<WiFiのSSID>" psk="<WiFiのパスワード>" }
上記で設定は完了です。
電源を入れてしばらく待ちます(たぶん5分以内ぐらいだったと思います。)
初期設定
SSHでログイン
初期設定を行う為、SSHでログインします。
上記までのセットアップでssh pi@raspberrypi.local
でログインできる筈です。
デフォルトのパスワードはraspberry
です。
raspi-config
基本的な初期設定はsudo raspi-config
で行えるようになっています。
raspi-config
では
- パスワード変更
- 地域情報の設定(タイムゾーン)
を調整します。
パスワード変更
raspi-config
の画面は矢印キーとEnterで操作できますが、一番上の1 System Options
でEnterを押します。
その次にS3 Password
をEnterで選択します。
ウィザードに従ってパスワードを設定します。
これで次回以降ログイン時にはパスワードが今決めたものになります。
あとでSSHの公開鍵認証に変更しようと思うので、ログインで使う事は無いかもしれませんが念のため変更しておくことをお薦めします。
地域情報の設定
sudo raspi-config
で対話式の設定項目を出した後に5 Localisation Options
に入ります。
次にL1 Locale
を選択します。
そうするとConfigureing locales
という画面に切り替わります。
キー操作で上下に移動出来ると思います。デフォルトではen_GB.UTF-8 UTF-8
が選択されていますが、一般的なen_US.UTF-8 UTF-8
も追加しておきます。
日本語が使いたい人はja_JP.UTF-8 UTF-8
も選択しても良いかもしれません。
default localeをen_US.UTF-8 UTF-8
にして完了
次にタイムゾーンを変更します。
先ほどの5 Localisation Options
に入ったあとで次はL2 Timezone
を選択します。
自分は日本に合わせたいのでAsia
を選択します。
町の一覧が出てくるのでTokyo
を選択します。
これで完了です。一応時間がちゃんと設定されているか確認するにはdate
コマンドなどを使ってみるのも良いでしょう。
IPの固定
今はDHCPでIPが降ってきてるだけなので固定しておきます。
公式サイトに従い、/etc/dhcpcd.conf
の最後に追記します。
interface wlan0 static ip_address=192.168.0.4/24 static routers=192.168.0.254 static domain_name_servers=192.168.0.254
(この辺の設定は適宜変えて下さい。)
IPは適当なモノか、思いつかなければ降ってきてるIPを固定するのでも良いでしょう。
自分はip addr show
コマンドで確認してそれを利用しました。
WiFiの追加設定
一応WiFiのパスワードを平文で入力しているのでハッシュ化しておきます。
wpa_passphrase
コマンドで必要情報が出力できるので、コレを利用します。
sudo sh -c 'wpa_passphrase "SSHD名" "パスワード" >> /etc/wpa_supplicant/wpa_supplicant.conf'
以前のWiFiの設定やパスワードなどが記載された状態なので、適宜/etc/wpa_supplicant/wpa_supplicant.conf
を編集して下さい。
たぶん
network={ ssid="<WiFiのSSID>" psk="<WiFiのパスワード>" } network={ ssid="<WiFiのSSID>" #psk="<WiFiのパスワード>" psk=ハッシュ値 }
みたいになってるので、
network={ ssid="<WiFiのSSID>" psk=ハッシュ値 }
にしてあげて下さい。
公開鍵認証の設定
ここは通常のLinuxと変わらないと思いますので割愛します。
パッケージなどの更新
この辺まできたら大体完了なのでパッケージの更新などをしておきます。
sudo apt update && sudo apt upgrade -y sudo apt dist-upgrade
速度を気にされる方はリポジトリを日本にしてから更新した方が早いと思います。
pipのインストールあたりでたぶん悪さするので推奨しません。
sudo sh -c 'mv /etc/apt/sources.list /etc/apt/sources_old.list; echo "deb http://ftp.jaist.ac.jp/raspbian stretch main contrib non-free rpi" > /etc/apt/sources.list'