Raspberry Pi 3 Model B セットアップ
Raspberry Pi 3 を買って、セットアップするまでのメモです。やったことは以下です。
デバイスは Raspberry Pi 3 Model B - Raspberry Pi です。
セットアップは自宅のiMac で行いました。
OS イメージのダウンロード
GUI は特に不要なのでLITE を入れます。バージョンはSTRECHでした。
SDカードにOS をインストール 〜 SSHログインまで
こちらのドキュメントに従っていきます。 www.raspberrypi.org
SDカードをMac に差したら、どこに認識されたか確認し、アンマウントする(この場合はdisk2 でUntitled という名前でマウント)
% diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 499.2 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *2.0 TB disk1 1: EFI EFI 209.7 MB disk1s1 2: Apple_HFS BACKUP 2.0 TB disk1s2 /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *16.1 GB disk2 1: Windows_FAT_32 16.1 GB disk2s1 % df Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk0s2 975093952 491880216 482701736 51% 2834820 4292132459 0% / devfs 373 373 0 100% 646 0 100% /dev map -hosts 0 0 0 100% 0 0 100% /net map auto_home 0 0 0 100% 0 0 100% /home /dev/disk1s2 3906357344 1461789224 2444568120 38% 17511180 4277456099 0% /Volumes/BACKUP /dev/disk2s1 31440896 5760 31435136 1% 0 0 100% /Volumes/Untitled % sudo diskutil unmount "/Volumes/Untitled/"
先程、ダウンロードしたRaspbian のイメージをSDカードにコピーします。
% sudo dd bs=1m if=`pwd`/2017-09-07-raspbian-stretch-lite.img of=/dev/disk2 conv=sync
最初からSSH でログインしたかったので、ルートディレクトリにsshファイルを作成します。
% touch /Volumes/boot/ssh
SDカードをiMac から取り出します。
% sudo diskutil unmount "/Volumes/boot/" % diskutil eject /dev/disk2
Raspberry Pi にLANケーブルを差し込み、電源をプラグを指して起動し、arp -a とかで追加されたIPアドレスを見つけます。
IPアドレスが分かったら、SSH でログインします。pi ユーザーの初期パスワードはraspberry です。後で適宜変えておきましょう。また、piユーザーは色々な権限と紐付いているので、別のユーザーを作ってもよいでしょう。
% ssh pi@<IPアドレス>
後で鍵認証でSSHログインできるようにしたいので、Raspbian 側のホームディレクトリに.ssh ディレクトリを作成します。
$ mkdir ~/.ssh
鍵認証でSSH できるようにする
Mac側での作業
Mac 側で鍵を作成します。鍵名やパスフレーズは適宜設定してください。秘密鍵と公開鍵が出力されます。 ここでは、id_rsa_pi とします。
% cd ~/.ssh % ssh-keygen -t rsa -b 4096
~/.ssh/config にエイリアスを記述します。ユーザーは、ここでは便宜上pi ユーザーとします。
Host pi HostName <ラズパイのIPアドレス> User pi IdentityFile ~/.ssh/id_rsa_pi
公開鍵をRaspbian 側にコピー
% scp id_rsa_pi.pub pi@<IPアドレス>:~/.ssh/authorized_keys
Raspbian 側での作業
各種権限を変更しておきます。
$ sudo chmod 700 .ssh $ sudo chmod 600 authorized_keys
これで、鍵認証でSSHログインできるようになるはずです。
% ssh pi
OS の設定色々
raspi-config でOS の設定
sudo raspi-config
で、諸々の設定ができます。自分が設定したのは次のあたり
項目 | 設定内容 |
---|---|
Change User Password Change Password for the current user | pi ユーザーのパスワード |
Localisation Options | |
Change Locale | ja.UTF-8.UTF-8 追加 |
Change Timezone | Tokyo |
Change Wi-fi Country | Japan |
Advanced Options | |
Expand Filesystem Ensures that all of the SD card storage is available to the OS | ディスク領域拡大 |
設定後はリブートが必要です。
apt のリポジトリサーバー変更
$ sudoedit /etc/apt/sources.list
http://ftp.jaist.ac.jp/raspbian に変更
NTPD 設定
Raspbian STRECH の途中からNTPD がなくなってるので設定します。 参照:NTPD missing on latest Raspian? - Raspberry Pi Forums
$ sudo apt-get -y install ntp $ sudo systemctl enable ntp $ sudoedit /etc/ntp.conf デフォルトのpool 指定をコメントアウトし、 #pool 0.debian.pool.ntp.org iburst #pool 1.debian.pool.ntp.org iburst #pool 2.debian.pool.ntp.org iburst #pool 3.debian.pool.ntp.org iburst これを追加 pool ntp.jst.mfeed.ad.jp iburst restrict 192.168.0.0 mask 255.255.255.0 noquery nomodify nopeer notrust notrap $ sudo systemctl restart ntp $ sudo ntpd -p
有線LANと無線LAN のIPアドレス固定化
$ sudoedit /etc/dhcpcd.conf 以下の行を追記 ※DNS の8.8.8.8 はお好みで # 有線LAN interface eth0 static ip_address=<任意のIPアドレス>/24 static routers=<ルーターのIPアドレス> static domain_name_servers=<ルーターのIPアドレス> 8.8.8.8 # 無線LAN interface wlan0 static ip_address=<任意のIPアドレス>/24 static routers=<ルーターのIPアドレス> static domain_name_servers=<ルーターのIPアドレス> 8.8.8.8
無線LAN 設定
こちらに書いてあることをそのままやりました。 www.raspberrypi.org
$ wpa_passphrase <SSID> <Passphrase>
の出力結果を /etc/wpa_supplicant/wpa_supplicant.conf に反映します。 802.11a は非対応です。また、ステルスモードのSSID にはscan_ssid=1 を追記します。 生のパスフレーズがコメントされているので消しておきます。
network={ scan_ssid=1 ssid="hoge" # psk="生のパスフレーズ" … これは消す psk=<暗号化されたパスフレーズ> }
設定後に
wpa_cli -i wlan0 reconfigure
の結果にOK が返れば成功です。
ip addr
でIPアドレスを確認しておきましょう。