raspberry pi の環境を作っては壊し、壊しては作りを繰り返しているので備忘録

実行環境

Mac Book Pro により ssh 接続でraspberry piに接続、CUI操作をメインとする。

Mac

ProductName:    Mac OS X
ProductVersion: 10.15.4
BuildVersion:   19E266

Raspberry pi

基本的にZero WHで動作確認をしているが、一部4でも動作確認済み

Raspbian のダウンロード

raspbian-lite(var.2020/02/13) の例

curl -O http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/raspbian_lite-2020-02-14/2020-02-13-raspbian-buster-lite.zip

SD カードのフォーマット

ディスクの確認

diskutil list

自分の場合他の外部デバイス接続をしていない場合基本的に /dev/disk2 に SD カードが割り当てられている。

SD カードフォーマット

diskutil eraseDisk MS-DOS RPI /dev/disk2

フォーマット形式(MS-DOS)、ディスクの名前(RPI)、フォーマット対象ディスク(/dev/disk2)の順

memo

NOOBS のインストールドキュメントを見てると ~32GB 容量の SD カードであれば MS-DOS でフォーマットしてやれば良さげ。

イメージの書き込み

ddコマンドなるものでもできるらしいが、Etcherで行った。

Copying an operating system image to an SD card using Mac OS

無線 LAN 設定

Mac でイメージを書き込んだあとに SD カードの名前が /Volumes/boot と変わっている。

よってこのファイル内を変更することにより Mac 側でraspberry piの設定を行う。

touch /Volumes/boot/ssh

ネットワーク設定

read -p 'wifi_ssid: ' wifi_ssid
read -sp 'wifi_pswd: ' wifi_pswd

cat <<EOF >/Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="$wifi_ssid"
    psk="$wifi_pswd"
}
EOF

平文パスワードを嫌う場合WPA key calculationを使ってパスワードを暗号化して記載することもできる。wpa_passphraseコマンドもあり。

また以下コマンドで Mac が接続しているWi-Fiを確認できる。

networksetup -getairportnetwork en0

raspberry pi での wpa_supplicant.conf

/etc/wpa_supplicant/wpa_supplicant.confに場所が変わっている

ssh 接続

ssh ユーザー名@IPアドレスで接続することができる。

初期パスワードはraspberry

raspberry pi の IP アドレス確認

arp -a

raspberrypi への接続

より簡単には以下でも可能

ssh pi@raspberrypi.local

ssh-keygen -R raspberrypi.local

これより以下 Mac 上で Raspberri Pi に ssh 接続していることが前提

pi ユーザーのパスワード変更

raspberrypi の初期ユーザーとパスワードは公開されているため、一番最低限のセキュリティ対策としてpiユーザーのパスワード変更をすべきである。

$ passwd

root ユーザーのパスワード変更

$ sudo passwd root

新規ユーザーの追加

$ sudo adduser ユーザー名

新規ユーザーに sudo 権限を追加

$ sudo gpasswd -a ユーザー名 sudo

pi ユーザを sudo から外す

$ sudo gpasswd -d pi sudo

日本時間にする

sudo timedatectl set-timezone Asia/Tokyo

$ date
Sun Jun 14 08:01:52 BST 2020
$ sudo timedatectl set-timezone Asia/Tokyo
$ date
Sun Jun 14 16:03:39 JST 2020

cron のログ出力

sudo vim /etc/rsyslog.conf

#cron.*                          /var/log/cron.log
↓
cron.*                          /var/log/cron.log

設定の反映

$ sudo /etc/init.d/rsyslog restart

RaspberryPi3 で初めて crontab を使う前に - Qiita

[記載予定] エディタ設定

nano も良いが、せっかくだしvimを使えるようになりたい

エディタ戦争

vim-tiny アンインストール

$ sudo apt-get --purge remove vim-common vim-tiny

vim インストール

$ sudo apt-get install vim
$ vim ~/.vimrc

日本語化

$ sudo apt-get update
$ sudo apt-get install fcitx-mozc
$ sudo reboot
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: LC_ALL??????????????????: ??????????????????????
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

vi ~/.bashrc
export LANGUAGE=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export LC_TYPE=ja_JP.UTF-8

pip

$ pip3 -V
-bash: pip3: コマンドが見つかりません
$ sudo apt-get install python3-pip
$ pip3 -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory ImportError: libf77blas.so.3: cannot open shared object file: No such file or directory · Issue #262 · Kitt-AI/snowboy

$ sudo apt-get install libatlas-base-dev

git

$ sudo apt-get install git
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

[記載予定] ip アドレスの固定化