raspberry pi setup(キーボード、マウスなし、無線)
よく調べて忘れるため、備忘録
環境
- PC: Mac
- raspberry pi
- MicroUSB
- 電源
- SD CardWriter
キーボード、マウス、ディスプレイ、イーサネット 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
$ 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
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-config
でwifi設定を行うと、ssidとpskの設定が促される
raspi-config
後/etc/wpa_supplicant/wpa_supplicant.conf
を確認したところ、country=JP
が追加されていた。
国毎に無線の規制(技適)があるため、国の設定が必要で、これがないと有効化しないのかもしれない。
キーボード設定
USキーボードを使用していると、returnの横がSHIFTを押しながらだと、"
でなく @
に
なってしまう。これはキーボード設定がUS_EN PC105となっているため。
PC104に変えれば解決する
これも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