記事を書く動機
ラズパイ用のSDカード作成手順について、Windows前提の情報は多いが、Linuxでの手順があまり無いため(Linux使いにとっては簡単だから・・?)。ついでに、OS起動後のセットアップについてもまとめる。
※参考:Raspberry Pi セットアップ(書き込み~SSH設定まで)
Linuxでセットアップ作業するメリットは
- Windowsより簡単
- ext4フォーマットできる
使用モデル
Raspberry Pi 4 Model B (RAM 4GB)
必要なS/W、H/Wの入手
-
必要なハードウェア
機器類はアマゾンでポチって入手する。合計13000円くらい。-
ラズパイ4本体
これがないと始まらない。
本体+SDカード(プリインストール)をセット購入すると、準備の手間が省けておすすめ。 -
本体ケース
これは任意。ただ、個人的にはケースなしはあり得ない…と思う。
基盤むき出しは怖いわ… -
microHDMIとHDML変換アダプタ
ラズパイ3は一般的(?)なHDMIポートがあったが、ラズパイ4はmicroHDMIポートしかない。
そのため変換アダプタがないとディスプレイに表示ができない。
microHDMIって主流になってくるんかな・・?あまり見かけないけど… - HDMIケーブル
ssh設定するまでディスプレイが必要なので用意しておく。 -
microSDカード
ラズパイ4のmicroSDは2TBまで認識可能。今回は64GBにした。
SDカードの書き込み可能回数は500~1000回程度らしいので、寿命とお財布事情を考慮して決めればよい。 - microsd usb カードリーダー
USB接続でmicroSDの読み書きをするときに使用。
プリインストールされたSDカードを購入している場合は不要。しかし、トラブル等でOS再インストールする場合に欲しくなるので持っておいたほうがよい。
-
ラズパイ4本体
-
必要なソフトウェア
fat32formater
とdd for Windows
は、Linuxでセットアップする場合は不要。Windowsでセットアップする場合は用意する。-
raspbian
ラズパイ用のOS。NOOBS(raspbianのインストーラ)とraspbianがあるが、raspbianを直で入れる方が早いためraspbianをダウンロードする。見出しのリンクは海外サイトのため、国内ミラーサイトから同じバージョンを探してダウンロードするとよい(さくさくダウンロードできる)。- 19/12/26時点の最新版
2019-09-26-raspbian-buster.zip 2019-09-26 10:36 1.1G
- 19/12/26時点の最新版
-
fat32formater
SDカードのフォーマット用ソフト。
容量が32GB以下の場合は、Windows10標準機能でフォーマットできるかもしれない(未確認)。
ライセンスはGPL。商用利用可。ソース公開なしにしたい場合もBSD+ライセンス料で対応している。著作権者はRidgecrop Consultants Ltd.
一応「気に入ったらdonateよろ!」って書いてあるが、ユーザとして使う分には気にしなくてよさげ。 -
dd for Windows
ブロック単位でファイルをコピーするソフト。SDカードへのファイル書き込みに使用する。
ライセンスは無料、無保証、業務利用可。著作権者はシリコンリナックス(株)
-
raspbian
OS起動までの手順
usbカードリーダーにmicroSDを入れてPCにさす。
以下、Linuxでセットアップするときの手順。参考までにWindowsでのセットアップ方法もメモしておく。
Linxuでセットアップする場合
SDカードが/dev/sdgで認識されている場合を例にする。
下記コマンドでフォーマットする。
$ mkfs.ext4 /dev/sdg1
SDカードデバイスをアンマウント状態にして、下記コマンドでOS(raspbian)をSDカードに焼く。
$ sudo dd if=2019-09-26-raspbian-buster.img of=/dev/sdg bs=4M
書き込み終了後、アンマウントする
$ sudo umount /dev/sdg
ラズパイ本体にSDカードを刺して電源ON。デフォルトは自動ログインの設定になっているため、デスクトップが表示されれば成功。デフォルトのユーザ・パスワードは下記。
- 初期ユーザー名:pi
- 初期パスワード:raspberry
起動後、wifi設定、ホスト名、パスワード変更、ロケールなどの変更ウィンドウが出てくるため、最低限の設定はここで対話的に実行できる。
Windwosでセットアップする場合
fat32formaterを実行し、SDカードをFATでフォーマットする。fat32formaterは32GB以上でもFATフォーマット可能(らしい)。
※注意点:exFATではなくFATとすること
WindowsだとFAT(FAT32)でしかフォーマットできない様子。
ext4と違い、SDカードをWindowsから読めるというメリットはあるかも?
OSをSDカードに焼くときは、DD for Windowsを用いる。
ラズパイ本体にSDカードを刺して以降は、上述のLinuxの場合と同じ。
リモート作業の準備
-
設定変更
色々変更したい場合は下記コマンドを実行。$ sudo raspi-config
ホスト名変更などの他、overclock設定とかもあるっぽいので、そのうち試してみたい。また、raspi-configのソースをみると、コマンドライン実行できるようなので、自動構成スクリプトみたいなものが作れそう。
-
sshの有効化
左上のラズパイアイコンをクリックし、設定からsshを有効化する。
ラズパイ3ではルート直下にsshファイルを作るとsshが有効化されたが、そちらは未確認。
同じ方法で有効化される場合、下記コマンドを実行で有効化できる。$ touch /ssh
-
ホスト鍵の更新
$ sudo rm -v /etc/ssh/ssh_host* $ sudo dpkg-reconfigure openssh-server
-
ファイアーウォールの導入
インストール$ sudo apt install ufw
有効化
$ sudo ufw enable
ssh用にポート22番を解放。特定のサブネットに属する接続だけ開放する。
$ sudo ufw allow from 192.168.0.0/24 to any port 22
確認
$ sudo ufw status Status: active To Action From -- ------ ---- 22 ALLOW 192.168.0.0/24
-
sshで接続可能か確認
$ ssh pi@<ホスト名 or IPアドレス>
aptリポジトリを変更
デフォルトはraspbian.raspberrypi.orgとなっており、適当な場所にリダイレクトされる。海外サーバだと通信が遅いため、ラズパイのミラーリポジトリを参考にして国内サーバへ設定を変更する。
以下、JAIST(北陸先端科学技術大学院大学)サーバへの変更例
$ sudo sed -ie "s/raspbian.raspberrypi.org/ftp.jaist.ac.jp/g" /etc/apt/sources.list
ベースOSのアップデート
-
現在のバージョンを確認
$ uname -a Linux pisrv 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
-
いろいろアップグレード
1時間くらいかかる。$ sudo apt update $ sudo apt upgrade $ sudo apt dist-upgrade $ sudo rpi-update # ファームウェア
-
再起動してバージョンを確認
$ reboot $ uname -a
自動アップデート設定
セキュリティアップデートの自動更新を行うための設定。
まず下記パッケージをインストール。
$ sudo apt install unattended-upgrades
/etc/apt/apt.conf.d/50unattended-upgrades
を開き、Origin-Pattern以下のSecurityがコメントになっていないことを確認する。
Unattended-Upgrade::Origins-Pattern {
// Codename based matching:
// This will follow the migration of a release through different
// archives (e.g. from testing to stable and later oldstable).
// Software will be the latest available for the named release,
// but the Debian release itself will not be automatically upgraded.
// "origin=Debian,codename=${distro_codename}-updates";
// "origin=Debian,codename=${distro_codename}-proposed-updates";
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security"; # これ
以下コマンドで有効化する
$ sudo dpkg-reconfigure -plow unattended-upgrades
アップデートログは/var/log/unattended-upgrades/unattended-upgrades.log
。
sudoパスワード
デフォルトではsudo実行時にパスワードなしで実行できるようになっている。
/etc/sudoers.d/010_pi-nopasswdにNOPASSWDの設定がされている。ファイルごと消せばOK。
$ sudo rm /etc/sudoers.d/010_pi-nopasswd