raspberry pi setup(キーボード、マウスなし、無線)

よく調べて忘れるため、備忘録

環境

キーボード、マウス、ディスプレイ、イーサネット cable全てないにも関わらずセットアップしたい。

無線LANで、sshで接続できれば設定できる。 そのためにこれらの設定をしたいが、そもそも繋がないと設定できない。 母艦のMacからMicroSDカードへはイメージの書き込みを行う必要がるため、SD CardWriterなどを使用してmountする。 MicroSDカードは、Fat32形式にてフォーマットされている領域がある。ここに設定ファイルをおくことで、これらを有効化できる。 そこでMacにmountされているFat32領域へ書き込む。

手順

raspberry pi image download

SDカードを初期化

diskutilを使う

$ diskutil list


$ sudo diskutil unmountDisk /dev/disk2

DOS-FAT32形式でフォーマット

$ sudo diskutil eraseDisk FAT32 RASP MBRFormat /dev/disk2

ddで書き込む

フォーマットするとマウントされるため再度アンマウントする

$ sudo diskutil unmountDisk /dev/disk2

書き込みデバイスは/dev/rdisk, rあり、なしがある

rdiskの方はシーケンシャル、diskの方はランダムアクセス

ランダムアクセスだと、バッファコピーが入る。

OS image書き込みのようなシーケンシャルアクセスの場合はrdiskの方が速い

$ sudo dd if=rpi-image-name.img of=/dev/rdisk2 bs=1m
  1. Macから/bootが見えるので、そこに設定ファイルをおく /Volume/boot/にsshという名前で空ファイルをおく
touch /Volume/boot/ssh

/bootにwpa_supplicant.confをおく

raspberrypi 3でwifi設定

raspi ZeroだとそのままではUSB繋がらないたため、キーボードなどが接続可能なraspberry pi3にて初期設定を行う

wpa-cliを行なってもfailとなってしまう

$ wpa_cli -i wlan0 scan
FAIL

raspi-cofigにてwifi設定をしたところ、Under voltage detectedと表示された。そのためwifiが有効化されていなかったと思われる。

raspi-config

raspi-configwifi設定を行うと、ssidとpskの設定が促される

raspi-config/etc/wpa_supplicant/wpa_supplicant.confを確認したところ、country=JPが追加されていた。 国毎に無線の規制(技適)があるため、国の設定が必要で、これがないと有効化しないのかもしれない。

キーボード設定

USキーボードを使用していると、returnの横がSHIFTを押しながらだと、" でなく @ に なってしまう。これはキーボード設定がUS_EN PC105となっているため。 PC104に変えれば解決する

ja.wikipedia.org

これもraspi-configにて設定

dpkg-reconfigure keyboard-configuration を使えば良いのかな?

tempfs

rasppiはhddがなく、sdカードに書き込む。 SDカードの寿命を延ばすためにtempfs化は必須。 また、デフォルトでswapが有効化されている。 swap も無効化しないと、sdカードへガリガリ書き込むため、swap無効化も合わせて行なったほうが良い。 (free を行うと、swapのfreeが0でないことがわかる)

$ free
               total        used        free      shared  buff/cache   available
Mem:         3885496       94256     3411824         936      379416     3719992
Swap:         102396           0      102396

swap無効化

起動している状態でswapを無効化する

sudo swapoff --all

freeで確認するとfreefが0になることがわかる。

free
               total        used        free      shared  buff/cache   available
Mem:         3885496       93344     3411704         936      380448     3720772
Swap:              0           0           0

再起動後もswapを無効化する

swapサービスは dphys-swapfile

sudo systemctl stop dphys-swapfile.service
sudo systemctl disable dphys-swapfile.service

確認

sudo systemctl status dphys-swapfile

tempfs

常時書き込む以下のディレクトリをtmpts化する。

/etc/fstabに以下設定を追記しrebootする

tmpfs  /tmp           tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs  /tmp/log       tmpfs defaults,size=16m,noatime,mode=1777 0 0

tmpfs化する際の検討メモは以下を参照のこと kawawa.hatenablog.com