【前提】
- 母艦はWindows10(一部 Linux上で作業)
- Pi は 3B、3B+
- Image は Raspbian Buster with desktop
- 各種ツールはインストール済みであるものとする
- インタネート、LAN環境は構築済みであるものとする
- ヘッドレスセットアップ、運用
- Stretch からのアップグレードではなく、新規インストール
【準備】
-
各種設定ファイルバックアップ
既に Stretch などで運用している場合、microSDカードのバックアップは当然だが、各種設定ファイルのバックアップも残しておくと、後で迷わない。
| ファイル | 内容 |
| ------------------- | ---------------------- |
| /etc/fstab | mount設定 |
| /etc/dhcpcd.conf | 固定IP化してある場合 |
| /etc/rsyslog.conf | ログ設定 |
| /boot/config.txt | OS設定 |
| /etc/samba/smb.conf | samba設定 |
| /etc/hostname | ホスト名 |
| /etc/hosts | ホスト名 |
| /etc/rc.local | 起動時の自動実行設定 |
| df -h | パーティション確認 |
| crontab -l | ジョブスケジュール確認 |
その他スクリプトファイル等、各自の独自設定も。 -
SSH、Wi-Fi接続設定ファイル用意
| ファイル名 | 内容 |
| ------------------- | ------------------- |
| ssh | サイズ0の空ファイル |
| wpa_supplicant.conf | Wi-Fi設定 |有線LAN 接続の場合、「wpa_supplicant.conf」は不要。
作成方法は他の解説サイト参照。 -
Image のダウンロード
以下からダウンロード。
https://www.raspberrypi.org/downloads/raspbian/
選択 Image は desktop版がお勧めだが、Stretch 辺りから「recommended software」(推奨ソフト)同梱版が用意されるようになり、どちらを導入すべきか最初迷う。
https://www.raspberrypi.org/blog/buster-the-new-version-of-raspbian/
で中の人が言うところによれば、「recommended software」同梱版とは、非インタネート接続環境での運用を想定しているようで、そのような特別な理由が無ければ通常の desktop版で良いとのこと。
サイズもその方が小さいし。必要になれば後から推奨ソフトのインストールはできるし。
【新規インストールが望ましい理由】
色々と独自の設定を施している場合、新規インストールとなると設定の再構築が面倒。
そこで Stretch からアップグレードを、と考えがち。
上記の公式の Buster公開告知でもアップグレードの方法が紹介されている。
しかし、Stretch からのアップグレードの場合、問題点がある。
https://www.raspberrypi.org/forums/viewtopic.php?t=243438
上記の公式フォーラムにその議論がある。
ポイントとして、bootパーティションが Buster では 256MB に拡張されていること。(Stretch では60MB)
それだけ、Buster では bootパーティション内の使用量が増えている。
従って、Stretch のパーティション構成のまま Buster を導入運用すると bootパーティションがパンクする可能性がある。この問題を回避するには、bootパーティションのサイズを増やす必要があり、その手順紹介サイトもインターネット上に散見される。
https://dbpro.xyz/7693
しかしパーティションサイズの変更は初心者には敷居が高い。
その点も含めて考えるに、新規インストールの方が確実で手っ取り早いという結論となる。
【手順】
1. Image焼き
公式サイトで紹介されているmicroSDカードライティングツールは以下。
- balenaEtcher
- Win32DiskImager
https://www.raspberrypi.org/documentation/installation/installing-images/windows.md
後は「DD for Windows」ぐらいか。
balenaEtcher がシンプルでカッコいいので最近はそれを紹介しているサイトが多い印象。
私の環境では以前、起動時にエラーを吐いて動かなくなる事象が発生したことがあった。
色々と調べるも問題解決できず。
そうこうしている内にバージョンアップがあり導入したら正常に動くようになった、という経緯があり、個人的には安定していな印象があるけど、どうなんだろう?
とにかく焼ければツールは何でも良い。
但し、これも私の環境だけかもしれないが、ツール上では正常に書き込み完了していても、中身がおかしい場合がある。microSDカード、USB の接続不良が原因か?
そんな訳で、焼いた後は中身を確認。以下のようになっていれば正常。パーティションが二つ作成されていること。
準備手順で用意した 2ファイルを bootドライブにコピー。
準備手順にもある通り、有線LAN 接続の場合、「wpa_supplicant.conf」は不要。
また、sshファイルは、空の sshディレクトリでも良いらしい。
これらは Pi起動時の初期設定で削除されるので、後で使いまわせるよう母艦環境側に残しておくこと。
2. Pi 本体設定
- 上記手順で作成した microSDカードを Pi 本体にセット
- 有線LAN 使用の場合は LANケーブル接続
- USB電源ケーブル接続
赤LEDの点灯を確認。
3. 母艦からの設定
-
Pi に割り当てられた IPアドレスの特定
セキュリティの関係でデフォルトで SSH接続はオフになっているが、前述手順で sshファイルをコピーしてあれば SSH接続は有効になっている。
しかし母艦からターミナル接続等を行う為には、Pi に割り当てられた IPアドレスが分からなければ始まらない。
調べ方は色々あるので詳細は他の解説サイトを参照して貰うとして、最も簡単と思われる方法だけ記す。Windows10 環境なら、「Bonjour」が標準で入っている。
デフォルトの Pi のホスト名は「raspberrypi」なので、そこから名前解決で IPアドレスが引ける筈。
コマンドプロンプトを起動し、ping を打ってみる。
pi/raspberry で接続。
初回起動時に表示されるダイアログ。
ログイン完了。
-
VNC有効化
ターミナル接続による CUI環境が基本ながら、VNCでも接続できれば何かと便利なので有効にする。
以下コマンドで raspi-config 起動。
sudo raspi-config
5 Interfacing Options 選択。
P3 VNC 選択。
\<Yes> 選択。
\<Ok> 選択。
\<Finish> 選択。
-
初期設定ウィザード
上記設定により再起動不要で即 VNC接続が有効になる。
VNC Clientソフトで接続。初回起動時なら初期設定ウィザードが起動している筈。
Stretch から導入されたこの機能は滅茶苦茶便利なので利用する。
https://www.raspberrypi.org/blog/raspbian-update-june-2018/
尚、何らかの理由でこの機能が利用できなかった場合は以下のコマンドで再実行可能。sudo piwiz
SSH接続の Warning は取り合えずスルーし、初期設定を進める。
「Next」クリック。
初期状態で Country は United Kingdom になっている。流石英国製ざんす。
大英帝国に敬意を表しつつ、Country項目は Japan に変更。そうすれば他の項目も連動して変更される。
「Next」クリックで少し待たされる。これは他の設定も連動して変更している模様。
以前は raspi-config でちまちまと設定していたけど、初期設定ウィザードでは色々とよきにはからってくれるので便利になった。
新しいパスワードを入力し「Next」クリック。
そのまま「Next」クリック。
Wi-Fi設定画面は必要に応じて設定。
現時点では色々と問題のあるアップデート機能。一応「Next」クリックで実行してみる。
少々待たされる。
うーん、失敗。後回しとする。
「Restart」クリックで即再起動でもいいが、ついでに他の初期設定も行いたいので「Later」クリック。
メニューから「Raspberry Pi の設定」選択。
解像度変更。
ホスト名変更。
画面が見切れていて「Ok」ボタンが見えない・・・。という場合は右下の「無効」までフォーカスを移動し、更に TABキーを二回押下。これで「OK」ボタンにフォーカスが合う筈なので ENTERキー押下。目論見通りなら「再起動が必要です」メッセージボックスが表示されるので「はい」クリックで再起動。
-
IPアドレス固定
名前解決できるなら IPアドレス固定は不要、という話もあるが、Linux環境やらスマホ、タブレットからの接続も考慮すれば、やはりやっておくと使い勝手が良い。
以下コマンドで /etc/dhcpcd.conf を編集する。
sudo vi /etc/dhcpcd.conf
ファイルの最後に以下コード追加。
interface eth0 static ip_address=192.168.11.110/24 static routers=192.168.11.1 static domain_name_servers=192.168.11.1
「ip_address」が固定したい任意の IPアドレス。その他の IPアドレスは自分の環境を設定すること。
又、「interface eth0」を「interface wlan0」とすれば、無線LAN の設定となる。 -
各種アップデート
前述の初期設定ウィザードでアップデートが成功していても、一応各種アップデートをかけておくが吉。少々時間がかかる作業なので気長に進めること。
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade
うーん、また失敗するがな。
再実行、今度は成功。まだまだ不安定な感じ。
各種アップデートで確認メッセージが表示された場合は yキー押下。
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
~~最後の rpi-update は firmware の更新問い合わせなので、更新が発生した場合は再起動すること。~~
2020/04/11 編集
rpi-update
は非推奨。
余計な物は削除したい場合は以下実行。
sudo apt-get autoremove -y
sudo apt-get clean -y
sudo apt-get autoclean -y
-
SDカード延命
「SDカード 延命」でググるだけで(raspberry pi の文言が含まれていなくても)対応方法が出てくる。それぐらい基本中の基本的な設定。
先人の築いたノウハウを参考にする。
https://azriton.github.io/2017/03/16/Raspbian-Jessie-Lite%E3%81%AESD%E3%82%AB%E3%83%BC%E3%83%89%E5%BB%B6%E5%91%BD%E5%8C%96/
取り合えず最低限以下は設定する。- Swap 領域無効化
- テンポラリ領域を RAM へ配置
- rsyslog ログ出力抑制
-
NFSクライアント設定
NFSサーバを利用している場合はクライアント設定する。追加パッケージは不要。
まず NFSサーバのマウント情報を確認。IPアドレスは NFSサーバ。showmount -e 192.168.11.101
NFSサーバが正常に機能していれば以下のような情報が表示される。
Export list for 192.168.11.101: /media/pi/a7ec2739-c469-442a-916d-f4ef391545ee 192.168.11.0/24
以下コマンドで /etc/fstab 編集。
sudo vi /etc/fstab
以下追記。
192.168.11.101:/media/pi/a7ec2739-c469-442a-916d-f4ef391545ee /mnt/nfs/a7ec2739-c469-442a-916d-f4ef391545ee nfs rw,defaults,nfsvers=3 0 0
マウント用ディレクトリ作成。
sudo mkdir /mnt/nfs/ sudo mkdir /mnt/nfs/a7ec2739-c469-442a-916d-f4ef391545ee sudo chown pi:pi /mnt/nfs/a7ec2739-c469-442a-916d-f4ef391545ee
マウント実行。
sudo mount -a
マウント状態確認。
df -h
正常にマウントされていれば以下のように表示される。
pi@raspberrypi3:~ $ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 (中略) 192.168.11.101:/media/pi/a7ec2739-c469-442a-916d-f4ef391545ee 3.6T 2.0T 1.5T 58% /mnt/nfs/a7ec2739-c469-442a-916d-f4ef391545ee pi@raspberrypi3:~ $
マウントに失敗している場合、手動でのマウントを試みる。
sudo mount -t nfs -o nfsvers=3 192.168.11.101:/media/pi/a7ec2739-c469-442a-916d-f4ef391545ee /mnt/nfs/a7ec2739-c469-442a-916d-f4ef391545ee
それでも失敗する場合はスイッチ指定を見直す。
ググるとファイアーウォールが云々といった情報も出てくるが、Pi に限って言えばデフォルトでファイアウォールは入っていないので関係ない。 -
FTPサーバ設定
入れておけば役に立つ場合がある(かもしれない)。
以下コマンドでインストール。
sudo apt-get install -y vsftpd ftp
エクスプローラーから接続を確認。
ftp://192.168.11.110/
以下のような「ログオン方法」ダイアログが表示されたらユーザー名、パスワードを入力しログオン。※ ここだけ後から画面キャプチャを取り直したので IPアドレスが異なる
接続に成功すれば /home/pi 直下が表示される。
インストールが完了したら以下コマンドで設定ファイル編集。
sudo vi /etc/samba/smb.conf
ファイルの最後に以下追記。
[pi]
comment = pi
path = /home/pi
read only = No
guest ok = Yes
force user = pi
エクスプローラから接続確認。
-
heartbeat設定
起動中も shutdown 後も赤LED は点灯で状態が分かりにくい。そこで設定を変更する。
以下コマンドで設定ファイル編集。
sudo vi /boot/config.txt
ファイルの最後に以下を追記。
# turn power LED into heartbeat dtparam=pwr_led_trigger=heartbeat #
以下コマンドで再起動。
sudo reboot
再起動したら、赤LED が点滅していることを確認。
-
Watchdog Timer設定
Pi を NAS 代わりに 24時間運用していると、年に数回アクセス不能に陥る場合がある。
たまにハングアップするのは仕方がないとして、その場合は自動で再起動して欲しい。
そこで Watchdog Timer を設定する。以下コマンドでインストール。
sudo apt-get install -y watchdog
以下コマンドで設定ファイル編集。
sudo vi /lib/systemd/system/watchdog.service
最終行をコメントアウトし、以下を追記。
WantedBy=multi-user.target
以下コマンド実行。(自動起動、モジュール追加)
sudo update-rc.d watchdog enable
sudo modprobe bcm2835_wdt
以下コマンドで設定ファイル編集。
sudo vi /etc/watchdog.conf
以下を編集。
#max-load-1 = 24 ①先頭のコメント削除
#watchdog-device = /dev/watchdog ②先頭のコメント削除
watchdog-timeout = 10 ③追記
以下コマンドで再起動。
sudo reboot
以下コマンド実行。※ ハングアップコマンドにて取扱注意
:(){ :|:& };:
自動で再起動されることを確認。
-
screenコマンドインストール
Wi-Fi接続でのターミナルからアップデート作業を行うのは実は危険。
アップデート処理中にネットワークの瞬断が発生し、ターミナルが落ちると、アップデート関連のファイルが壊れてしまう場合がある。
そうなると修復に手間がかかったり、最悪修復不能だったりで面倒。
それを回避するには以下。1. Pi 本体側で作業する
2. VNC接続しデスクトップ上でターミナルを開いて作業する
3. nohupコマンドでバックグラウンド実行する
4. 仮想端末ソフトを利用するそんな訳で仮想端末ソフトを入れておくと色々と捗るので以下コマンドでインストール。
sudo apt-get install -y screen
使い方は以下が分かりやす。
http://edosha.hatenablog.jp/entry/2017/11/10/142855 -
HDMI off設定
ヘッドレス運用なら HDMI 出力は不要。省電力も考慮し以下コマンドで止める。
/opt/vc/bin/tvservice --off
しかしこれでは再起動で元に戻ってしまう。
crontab の reboot 設定等で上記コマンドを設定。再起動後も off になっていること確認。pi@raspberrypi3:~ $ /opt/vc/bin/tvservice -s state 0x2 [TV is off] pi@raspberrypi3:~ $
省電力に関しては、モバイルバッテリでの運用を目指す省電力ガチ勢が情報を公開しているのでそちらを参照。
https://rabbit-note.com/2017/04/29/raspberry-pi-3-model-b-power-save/
4. デスクトップ設定
-
Bluetooth
ヘッドレス運用なら不要なので省電力を考慮し止める。
デスクトップ上で止めれば、再起動後もその状態が維持される。Bluetoothアイコン上でマウス右ボタンクリック、プルダウンメニュー「Turn Off Bluetooth」選択。
「パネルの設定」ダイアログで「追加」ボタンクリック。
「CPU 使用量モニタ」を選択、「追加」ボタンクリック。
「上へ」ボタンクリックで表示位置調整。
パーセンテージも表示したい場合は以下。
「CPU 使用量モニタ」上でマウス右クリック、プルダウンメニュー「CPU 使用量モニタ Settings」選択。
「Show usage as percentage」チェックボックスON、「OK」ボタンクリック。
5. パーティション縮小
必須ではないが、パーティションは縮小しておくことが望ましい。理由は以下。
他の microSDカードにバックアップイメージを書き戻す際、同じ容量の microSDカードを選んでも、微妙にサイズが異なる(少ない)場合があり、処理に失敗することがある。
それと、16~32G の microSDカードのバックアップは時間がかかる。
実質は数G しか使用していないので、適度にパーティションを縮小する。
作業は他の Pi 等、Linux環境を想定。GParted を使用。
まだ入れていない場合は以下コマンドでインストール。
sudo apt-get install -y gparted
GParted起動。パスワードの入力が求められるので入力、「OK」ボタンクリック。
鍵アイコンが表示されている場合、マウントされていることを示していて操作できないので解除する。
/dev/sdb2 でマウス右クリック、プルダウンメニュー「アンマウント」選択。
「新しいサイズ」エディットボックスに任意の容量を入力、TABキー押下でフォーカスが外れると「リサイズ/移動」ボタンが有効になるのでクリック。
確認メッセージボックスが表示されるので「適用」ボタンクリック。
以下のような正常終了を表す画面が表示されることを確認。「閉じる」ボタンクリック。
6. バックアップ
一連の設定作業が終わったら、microSDカードをバックアップ。ツールは Win32DiskImager を使用。
「Read Only Allocated Partitions」チェックボックスは ON にすること。
作成されたイメージのサイズを確認。パーティションを縮小していれば相応のサイズになっている。
7. 補足
パーティション縮小は Windows環境でもディスクの管理でできる筈。