嫁から少し古めのラズパイを貰いました。興味はあったのですが一度も触ったことがなかったので、年末年始休みの機会にちょっと遊んでみようと思います。
1. 必要なものを用意します。
- Raspberry Pi 2 ModelB (「2」とか「モデル」とかなにがあるのかさえよく知りません…)
- 手持ちのPC(Mac)
- ラズパイに刺さってた32GBのMicroSD(つまり元々嫁が使っていたやつ)
- MicroSDをMacに接続できるようななにか
RaspberryPi用のOSをダウンロード
まずはOSをMicroSDに焼く必要があるみたいです。
公式サイトを見てみると、OSはNOOBS
,Raspbian
の2種類があるようです。
NOOBSは色々なOSがインストール時に選べるようなのですが、よくわからないので、シンプルそうなRaspbian
を使うことにします。
またRaspbian
にも三種類ありました。withDesktopとかはGUIなのかな?とりあえずCLIが動けばよいので、シンプルで軽いLite
というやつをダウンロードすることにしました。
ダウンロードしたファイルは2019-09-26-raspbian-buster-lite.zip
という名前で、約450MB
、解凍すると2019-09-26-raspbian-buster-lite.img
という1ファイルだけでした。容量は約2.25GB
でした。
MicroSDのフォーマット(初期化)
MicroSDには嫁が使ってたOSが入っているはずですが、導入を最初からやってみたいのでMicroSDをフォーマットしちゃいます。
フォーマットはGUIでもディスクユーティリティで「消去」→「フォーマット(MS-DOS)」で初期化できますが、慣れ親しんだCLIでやっちゃいます。
ディスクの確認
MicroSDをMacに接続した状態でdiskutil list
を実行すると、私のMacではMicroSDが/dev/disk6
にマウントされていることが確認できました。
$ diskutil list
# ※略disk1〜disk5は関係ないので省略
/dev/disk6 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *32.0 GB disk6
1: Windows_FAT_32 boot 45.0 MB disk6s1
2: Linux 32.0 GB disk6s2
ディスクのフォーマット
確認が済んだので、次は本番のフォーマットです。上記で確認した/dev/disk6
に対してフォーマットを行います。
ディスクのフォーマットはdiskutil eraseDisk
コマンドです。フォーマット形式
、ディスクの名前
、フォーマット対象ディスク
の順に指定します。
$ diskutil eraseDisk MS-DOS RPI disk6
Started erase on disk6
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk6s2 as MS-DOS (FAT) with name RPI
512 bytes per physical sector
/dev/rdisk6s2: 62077280 sectors in 1939915 FAT32 clusters (16384 bytes/cluster)
bps=512 spc=32 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=62107648 bspf=15156 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk6
これでフォーマット完了です。
RaspberryPiのOSをMicroSDに書き込む
これまたCLIでやってしまいます。GUIでもできるのかも知れませんが、残念ながらやり方知りません…
MicroSDのアンマウント
imgファイルを書き込むにはddコマンドを使用しますが、マウントされていると出来ないので一旦アンマウントします。
$ diskutil unMountDisk /dev/disk6
Unmount of all volumes on disk6 was successful
MicroSDへ書き込む
disk6
じゃなくてrdisk6
って指定すると書き込み速度が早くなります。なんでかは知らないです。
$ sudo dd if=/Users/tomohiro.b.sasaki/Downloads/2019-09-26-raspbian-buster-lite.img of=/dev/rdisk6 bs=1m
2144+0 records in
2144+0 records out
2248146944 bytes transferred in 51.164256 secs (43939795 bytes/sec)
完成!
※まだMicroSDはMacに接続したままにしてください。
SSHログインができるように設定する
ラズパイは、初期設定だとsshログインが許可されていないようです。sshログインできるようにするには、microSDのルートであるbootにsshという名前の空ファイルを作ればよいようです。
$ touch /Volumes/boot/ssh
wifiの設定をしてみる
ラスパイと無線で通信するために、ラズパイにWi-Fiの設定を書き込みます。
Wi-FiのSSID(ネットワーク名)がhogehoge、パスワードがfugafugaのとき、下記のようなファイルを作成しMicroSDのルートディレクトリbootに配置します。
$ vim /Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="hogehoge"
psk="fugafuga"
}
※ こうやればできるらしいのですが、僕のラズパイは無線機能が無さそうです…。なので家に転がってたBuffaloの無線子機を接続することで無線化しました。
RaspberryPiとMacを物理的に繋ぐ
RaspberryPiのOSを書き込んだMicroSDをMacから引っこ抜いて、RaspberryPi本体にぶっ刺します。あとはなんとかしてLANケーブルでRaspberryPi本体とMacを接続して電源を入れます。
Macからラズパイにsshでアクセスしてみる
ラズパイにsshでログインするために必要な情報は、初期では以下のようになっているようです。
項目 | 値 |
---|---|
ホスト名 | raspberrypi.local |
ユーザー名 | pi |
パスワード | raspberry |
ということでさっそくログインしてみます。
ssh pi@raspberrypi.local
pi@raspberrypi.local's password:
パスワードを聞かれるので、初期パスワードであるraspberry
と入力してreturnキーを押すと
すると下記のように表示され、ラズパイに接続されたことが確認できました。
Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Sep 26 01:25:13 2019 from fe80::2b:e4a3:d9a7:df66%eth0
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
pi@raspberrypi:~ $
ちょっと調べて見る
rootになれる
初期ユーザーのpiでrootになれました。
pi@raspberrypi:~ $ sudo su -
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
root@raspberrypi:~#
ipを調べる
普通にip addr
でいけます。まあdebianですからね。
pi@raspberrypi:~ $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:e4:b4:9f brd ff:ff:ff:ff:ff:ff
inet 169.254.60.194/16 brd 169.254.255.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::7609:ae7c:ea60:d924/64 scope link
valid_lft forever preferred_lft forever
debianのバージョンを調べる
cat /etc/debian_version
10.1
pythonのバージョンを調べる
pi@raspberrypi:~ $ python --version
Python 2.7.16
pi@raspberrypi:~ $ python3 --version
Python 3.7.3
ちゃんと3系もはいっているようです。
細かめの設定をする
パッケージ類のアップデート
なにはともあれ、はいっているものをアップデートします。
$ sudo apt-get update
$ sudo apt-get upgrade
timezoneの変更
ラズパイ専用のコマンドでもできるようなのですが、今後の設定自動化を考えて非対話式のやり方で実施します。
まずは今のtimezoneを確認
$ sudo timedatectl
Local time: Sun 2019-12-29 05:01:04 GMT
Universal time: Sun 2019-12-29 05:01:04 UTC
RTC time: n/a
Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
timezoneのAsia/Tokyoをセット
$ sudo timedatectl set-timezone Asia/Tokyo
timezoneの再確認
$ sudo timedatectl
Local time: Sun 2019-12-29 14:16:34 JST
Universal time: Sun 2019-12-29 05:16:34 UTC
RTC time: n/a
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
pipのインストール
# インストール
$ sudo apt-get install python3-pip
# 最新化
$ sudo pip3 install --upgrade pip
# バージョン確認
$ sudo pip3 install --upgrade pip