みなさん、Raspberry Pi使ってますか。
むかしむかし買ったはいいものの引き出しに眠っている方から、引き出しに無造作に何台も転がっているツワモノまでいらっしゃることでしょう。
私は最近Raspberry Piを使ってなにかを作ることが多いので、そろそろ共通のセットアップ方法をメモしておくことにしました。
こんなパターンに利用できる手順を目指します。
このエントリの方法がいつまで使えるか分かりませんが、Raspbianが機会があるたびに便利になってるのでこれからもマメに調べた方がよさそうです。
起動前の作業
microSDにRaspbianを焼きこむついでに、無線LAN設定とIP設定を済ませてしまいます。
ddでOSを焼きこむ。
$ sudo dd if=2020-02-13-raspbian-buster-lite.img of=/dev/sdb bs=1M status=progress
/boot直下に空ファイルssh
を置いてやることでsshdが有効化されます。
$ cd /path/to/microSD/boot $ touch ssh
無線LAN設定も同じく/boot直下に作成します。
$ vim wpa_supplicant.conf
wpa_supplicant.conf
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YOUR_SSID_HERE" psk="PASSWORD_HERE" key_mgmt=WPA-PSK }
/rootfs/etc
をマウントし、IPアドレスも設定します。
$ cd /path/to/microSD/rootfs/etc/ $ vim dhcpcd.conf
dhcpcd.conf
interface wlan0 static ip_address=192.168.x.x/24 static routers=192.168.x.1 static domain_name_servers=192.168.x.1 8.8.8.8
起動後の作業
さて、ここまで準備したmicroSDカードをRaspberry Piに差し込み、起動します。
設定したIPアドレスにSSHでログインできるので、適宜sudo raspi-config
等で設定したり、sudo apt update
sudo apt upgrade
等でいい感じにアップデートします。
HDMI出力を無効化し、省電力化をはかります。
HDMIは以下コマンドで無効化できますが、起動するたびにコマンドを叩くのは面倒なので自動化します。
$ /usr/bin/tvservice -o $ /usr/bin/tvservice --help Usage: tvservice [OPTION]... -p, --preferred Power on HDMI with preferred settings -e, --explicit="GROUP MODE DRIVE" Power on HDMI with explicit GROUP (CEA, DMT, CEA_3D_SBS, CEA_3D_TB, CEA_3D_FP, CEA_3D_FS) MODE (see --modes) and DRIVE (HDMI, DVI) -t, --ntsc Use NTSC frequency for HDMI mode (e.g. 59.94Hz rather than 60Hz) -c, --sdtvon="MODE ASPECT [P]" Power on SDTV with MODE (PAL or NTSC) and ASPECT (4:3 14:9 or 16:9) Add P for progressive -o, --off Power off the display -m, --modes=GROUP Get supported modes for GROUP (CEA, DMT) -M, --monitor Monitor HDMI events -s, --status Get HDMI status -a, --audio Get supported audio information -d, --dumpedid <filename> Dump EDID information to file -j, --json Use JSON format for --modes output -n, --name Print the device ID from EDID -l, --list List all attached devices -v, --device Specify the device to use (see --list) -h, --help Print this information
起動時にコマンドを実行するために crontabを設定します。
ファイルを作って
$ vim crontab.prm # m h dom mon dow command @reboot /usr/bin/tvservice -o
登録します。
$ crontab crontab.prm
おまけ
私はRaspberry Piで作ったものがある程度完成した時点で、ファイルシステムをReadOnly化しています。
microSDの寿命的にもメリットがありますが、なによりいきなり電源を切ってもいいのが便利。
昔はカーネルにパッチあててビルドして…なんて修行が必要でしたが、今はraspi-config
からさくっと設定できます。
$ sudo raspi-config
Advanced Options
> Overlay FS
> 有効化 、これだけ!
ということで、楽しいRaspberry Piライフを!