自宅の奥底からとても古いRaspberry Piが出てきてpython開発環境を構築した際の手順をまとめました。
ゴール(前提)
- wifi経由でMacbookからssh接続できるようにする
- プログラムの編集はMacbookで行いたいので、NFSでファイル同期させる
- Raspberry Piはwifi非内蔵の古めかしいタイプ
環境
- Macbook(メインPC)
- Ubuntuが動いているZenbook(SDカードにRaspbianOSを書き込む用)
- Raspbian Buster with desktop(September 2019)
使うもの
-
Raspberry Pi model B1
- 2012年に販売された古いモデル
- wifi内蔵していないので、無線子機を装着する
- Buffalo無線子機(ドングル)
- Buffalo家庭用wifiルーター
- SanDiskのSDカード(8GB)
- micro USBケーブル
- LANケーブル
1. SDカードにRaspbianOSをインストール
-
UbuntuPCにSDカードを挿す
-
RaspbianOSイメージを公式サイトからダウンロードする(今回は
Raspbian Buster with desktop
を選択) -
SHA-256
に書かれている文字列をコピーして、~/hash.txt
として保存する -
diffコマンドでhash値が一致していることを確認する。(OSイメージが正常にダウンロードされたことを確認)
# ダウンロードしたRaspbianOSイメージファイルのhash値をテキストファイルとして保存する $ sha256sum ~/Downloads/2019-09-26-raspbian-buster.zip > ~/Downloads/2019-09-26-raspbian-buster.zip.sha256 # hash値が一致していることを確認する $ diff ~/hash.txt ~/Downloads/2019-09-26-raspbian-buster.zip.sha256 1c1 < 2c4067d59acf891b7aa1683cb1918da78d76d2552c02749148d175fa7f766842 --- > 2c4067d59acf891b7aa1683cb1918da78d76d2552c02749148d175fa7f766842 ~/Downloads/2019-09-26-raspbian-buster.zip
-
SDカードに書き込む
$ unzip ~/Downloads/2019-09-26-raspbian-buster.zip $ sudo dd if=2019-09-26-raspbian-buster.img of=/dev/mmcblk0 bs=1M $ umount /dev/mmcblk0p1
-
RaspbianOSにssh設定ファイルを作成する
$ touch /media/{user_name}/boot/ssh
2. ssh接続設定
2.1 Raspberry Pi本体を起動
- 以下を本体に装着して、本体を起動する
- SDカード
- 電源ケーブル(micro USB)
- 有線LANケーブル to MacBook
2.2 有線LAN経由でssh接続
$ ssh pi@raspberrypi.local # piユーザーのパスワードはraspberry
2.3 無線LAN経由でssh接続
pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="--- wifiのssidを入力 ---"
psk="--- wifiのパスワードを入力 ---"
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
}
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D nl80211,wext
# 以下のようにssidが表示されたらOK
$ iwconfig
wlan0 IEEE 802.11 ESSID:"--- wifiのssid ---"
# IPアドレスを確認しておく
$ ifconfig wlan0
# ...略...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.11.11 netmask 255.255.255.0 broadcast 192.168.11.255
inet6 fe80::51ee:f783:fead:5f52 prefixlen 64 scopeid 0x20<link>
ether cc:e1:d5:15:e7:a3 txqueuelen 1000 (Ethernet)
RX packets 793 bytes 189077 (184.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 292 bytes 49392 (48.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
有線LANケーブルを抜く
-
ssh pi@192.168.11.11
でssh接続できることを確認 -
IPアドレスを
192.168.11.12
に固定する$ sudo vi /etc/dhcpcd.conf # 以下を追記 interface wlan0 static ip_address=192.168.11.12/24 static routers=192.168.11.1 static domain_name_servers=192.168.11.1 # 再起動 $ sudo reboot
3. python開発環境構築
3.1 vimをインストールし直す
$ dpkg -l | grep vi
$ sudo apt-get --purge remove vim-tiny vim-common
$ sudo apt-get install vim
3.2 TimezoneをUTCからAsia/Tokyoに変更する
# raspberry pi設定GUIを起動して、以下の通り選択する
# 4 Localisation Options
# I2 Change Timezone
# Asia
# Tokyo
# Finish
$ sudo raspi-config
3.3 python3をデフォルトにする
$ cd /usr/bin
$ sudo unlink /usr/bin/python
$ sudo ln -s python3 /usr/bin/python
3.4 NFSでMacbookとファイル同期する
# on raspberry pi
# ファイル同期させるディレクトリを作る
$ mkdir ~/Workspace
# NFSパッケージをインストールする
$ sudo apt-get install -y nfs-common nfs-kernel-server
# piユーザーのuser_idとgroup_idを確認
$ cat /etc/passwd | grep pi
pi:x:1000:1000:,,,:/home/pi:/bin/bash
# NFS設定ファイルに設定を追加
# 書式:公開ディレクトリ 公開先ネットワーク(オプション)
$ sudo vim /etc/exports
/home/pi/Workspace 192.168.11.0/24(rw,insecure,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check)
# NFSサーバを起動 & 正常に起動したことを確認
$ sudo /etc/init.d/nfs-kernel-server start
$ sudo /etc/init.d/nfs-kernel-server status
# on Macbook
# ホスト名をrpiとして登録する
$ vim /etc/hosts
192.168.11.12 rpi
# マウントポイントを作る
$ mkdir ~/workspace/pi
# マウントする
$ sudo mount -t nfs rpi:/home/pi/Workspace ~/workspace/pi