はじめに
2020/5/28 に 最新モデルRaspberry Pi 4 Model B (8GB)が発売されたよーということで、4年ぶりに KSYさんでスターターキットを購入しちゃいました。前買ったのは 3Bですが届いたまま箱すら空けずメルカリさんで売却したので今回は久しぶりに組み立てて色々と弄ってみました。
※まあ、いつものいまさら感たっぷりですけどね
スターターキットが便利
こだわりなければ「Pi4 B 8GB スターターキット V1 32GB 透明」を購入するのが便利だと思います。個別に注文するのも楽しいが、まず始めてみる環境があったほうがいいと思う。
起動メディアは、まだ SDカード だが
Pi 4 で USB-SSD から起動できるというのは、もうすぐらしい。(FWで正式対応っていう意味で)
OSインストール、初期設定など
microSDカードが壊れたのもあり結局3回?最初からやり直した訳で、その都度googlesで検索するのが面倒なので手順を列挙しときます。(自分メモ)
SDカードに書き込み
Raspberry Pi Imager ツールを使うと簡単。win/mac/ubuntu が対応している。
RasbianOS(Raspberry PI Desktop) 初期設定
折角なので Rasbian Full(Desktop)を入れる。単に毎回パッケージが足りなくて指定するのが面倒なだけです。OS起動するとDesktopが表示されるけど、個人的な趣味でVNC⇒SSH⇒Desktopは最終的にOFFす手順で進めます。
黒い画面を使うよ
ターミナル(黒い画面)での操作です、苦手な方も覚えておいたほうがいい。
しかしroot,pi にパスワードかかっていないのか…用途を考えればそうなるね。
root,piパスワードを設定する
$ sudo passwd root
$ sudo passwd pi
ipアドレス固定化
rasberrypi.local で Raspberry のアドレスを参照できるが、ip固定の方がなにかと便利なので設定しときます。/etc/dhcpcd.conf
を編集して再起動します。
# Example static IP configuration:
interface eth0
static ip_address=192.168.0.xxx/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
VNC,sshを有効化
VNC&ssh経由でアクセスするので VNC ssh を有効化する。
sshは、デフォルト設定のままなので、パスワード認証となっているが後で変更するので今回このまま。Rlogin/TeraTermなどのターミナルから ssh 経由で "pi" ユーザでアクセスできることを確認しときます。
$ sudo raspi-config nonint do_vnc 0
$ sudo raspi-config nonint do_ssh 0
$ sudo raspi-config nonint get_ssh # sshの状態を確認(0:Enable 1:Disable)
ssh の最低設定
デフォルトで「パスワードでのログイン」となっているのはOKとしても、rootでのsshアクセスは禁止しておく。本来は接続先port番号、公開鍵認証などしておいたほうがいいが、非武装地帯にいるのであればOKとしとく。/etc/ssh/sshd_config
に下記を有効化する。
PermitRootLogin no
VNCで接続してみる
PCに 「VNC Viewer」をインストールして、Raspberry にアクセスしてみる。"pi" ユーザでログインできることを確認する。
もし接続して「cannot currently show the desktop」と表示されたら。というか多分なるので下記のようにする。
hdmi_force_hotplug=1
Locale, Timezone の設定
こちらもコマンドから実行します。
$ sudo raspi-config nonint do_change_locale ja_JP.UTF-8
$ sudo raspi-config nonint do_change_timezone Asia/Tokyo
キーボードレイアウトの設定
コマンドからは指定できなかったんで、"Raspberry Piの設定" ⇒ ローカライゼーション ⇒ キーボード で設定する。
Model : Generic 105-Key PC (intl.)
layout : Japanese
Variant : Japanese
swap領域を無効化
8GBもメモリがあるのでswapを削除します。2GB以上メモリあればやっとくのがいいでしょうね。
$ free -h
$ sudo swapoff --all
$ sudo apt-get purge -y --auto-remove dphys-swapfile
$ sudo rm -fr /var/swap
$ free -h
ホスト名の変更
GUIを使えば簡単だけど、あえてコマンドから。下記2ファイルを変更して再起動する。
ホスト名の確認は uname -a
で確認できる。
$ sudo vi /etc/hosts
$ sudo vi /etc/hostname
電源 LED 点滅の設定
これ結構いいかもと思った。電源が ON ⇒ 赤LED 点滅、OFF ⇒ 赤LED 消灯。赤LED で ON/OFF を判別できる。
モニターつないでないので電源抜くタイミングがわからんかったのよね。
// 以下を追記 して再起動
# turn power LED into heartbeat
dtparam=pwr_led_trigger=heartbeat
vimのインストール
ある程度の年代だと nano より vim が好きなはず。
デフォルトだと OSC52 が有効になるのでうざければ ~/.vimrc
を作っとく。
sudo apt-get install vim
新規ユーザを追加
セキュリティ強化のため "pi" ユーザーとは別のユーザーを作成する。
ついでに sudo 使えるようにもしておく。※hoge は例ですよ
$ sudo adduser hoge
$ sudo gpasswd -a hoge sudo
$ sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio hoge
Desktop 自動ログインの無効化
"pi"ユーザで自動ログインするのをこれで無効化できます。
#autologin-user=pi
コメントアウトするだけ。再起動するとログイン画面がでます。
#autologin-user=pi
Desktop 自動ログインの無効化 もういっこ
こちらも "pi" ユーザから hoge に変更しとく。
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --autologin hoge --noclear %I $TERM
piユーザ削除すると面倒なことになるので無効化
ユーザを削除するのを推奨しているが pi ユーザでの定義が結構あるため無効化しておいたほうがいいと判断した。
$ sudo usermod --expiredate 1 pi
sudoers(piユーザ用)の削除
pi ユーザで sudo するときにパスワード聞いてこないし /etc/sudoers
定義にも書いてないし…と思ったらそういうことなのね、こういう定義は止めて欲しいな。
$ sudo rm /etc/sudoers.d/010_pi-nopasswd
VNCで接続してみる
「VNC Viewer」から、Raspberry にアクセスしてみる。"pi" ユーザでログインできないことを確認できれば、まずOK。
NTPの設定(確認)
たぶん初期値のままで問題ないですが、問い合わせ ntpサーバが海外なので国内にしたい。
※timedatectl status
コマンド結果で NTP service
の状態が active
以外だったら設定する必要あります
$ vi /etc/systemd/timesyncd.conf
[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com
サービスの再起動
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-timesyncd.service
systemctl status systemd-timesyncd.service
コマンドで確認すると、"debian.pool.ntp.org(192.33.96.102)" から "ntp.jst.mfeed.ad.jp(210.173.160.27)" に変更されていることがわかる。※例なのでこのipと同一になるとは限らない
/etc/fstab に mountポイント指定してもエラーとなる
どうやらブートオプションを変更する必要があるようだ。 raspi-config
を起動して設定を変更してあげる。
$ sudo raspi-config
① 3 Boot Options Configure options for start-up
② B2 Wait for Network at Boot Choose whether to wait for network
③ Would you like boot to wait until a network connection is established?、<yes>
④ Waiting for network on boot is enabled、<enter>
⑤ <Finish>
パッケージの最新化とファームウエアの更新
割と頻繁にパッケージが更新されている模様です。セキュリティ的にあれなので適度に更新するのがよいと思う。
パッケージ,OSの更新
apt-get と apt なにが違うのだろ。。まあいいか。
$ sudo apt-get update # パッケージリストの更新
$ sudo apt-get upgrade # パッケージの更新
$ sudo apt-get dist-upgrade # OSのアップグレード
パッケージ自動化
unattended-upgrades
パッケージを導入すればパッケージの自動化ができる。
インストール後に /etc/apt/apt.conf.d/50unattended-upgrades
を開き、Unattended-Upgrade::Origins-Pattern
セクション最後の行がコメントになっていないことを確認するらしい。※コメントされることあるんだろうか
$ sudo apt install -y unattended-upgrades
確認点
$ sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Origins-Pattern {
・
・
"origin=Debian,codename=${distro_codename},label=Debian-Security";
そのあとに unattended-upgrades
を有効化する必要がある。
$ sudo dpkg-reconfigure -plow unattended-upgrades
ファームウェアの更新
気軽にしない方がいいらしいですよ。調べてみると「標準のRaspbianの update/upgrade プロセスを使用すると、自動的にカーネルが最新の安定版に更新されます。これが推奨される手順です。」らしいので、そもそも?サービス運用しているならしない方がいいですね。
そう言われてもわたしはするけどね~
$ sudo apt-get install rpi-update # インストール
$ sudo rpi-update # 更新実行
$ sudo reboot # 反映のための再起動
・Raspberry Pi ファームウェアのアップデート方法
参考にして頂いたサイト様
・Raspbian初期設定(RaspberryPi4)
・raspi-configをコマンドラインで実行する。
・ラズパイダ
次回予告
とりあえず数台設定するのだったら面白いかもしれん。つか手作業が多すぎなのがあるので一括登録できないもんかね。と感じです。
次回、ラズパイがあっついのと色々グッツを買ってみたのでそれを記事にしてみる。