概要
Raspberry Pi 3, Raspberry Pi Zero W の初期設定 20180113 版. 後半はほぼ自分用メモ :)
- つなぐのは電源だけ(イーサケーブルやキーボード等はつながない)
- ssh と WiFi をあらかじめ有効にして初回起動
- 最低限のセキュリティ設定(パスワード変更と ssh 関連)
- Raspberry Pi 3 と Raspberry Pi Zero W でテスト済み
以下, セットアップ手順.
PC での作業
イメージをダウンロード
ブラウザで Download Raspbian for Raspberry Pi にアクセスして 2017-11-29-raspbian-stretch-lite.zip
をダウンロード.
microSD にイメージを書き込み
Etcher で 書き込み. 書き込み終了後 microSD を抜き差しして再度マウント.
以下, /Volumes/boot
は PC にマウントした microSD.
ssh を初回起動から有効にする
ssh という空のファイルがあると初回起動時から ssh が有効になる.
touch /Volumes/boot/ssh
WiFi を初回起動から有効にする
/Volumes/boot/wpa_supplicant.conf
というファイルを作って SSID
と PASSWORD
を書いておく
PASSWORD
については, 初回起動後に wpa_passphrase
で平文からハッシュ値に修正予定. 他のマシンで wpa_passphrase
してハッシュ値を書いておいても OK.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="SSID"
psk="PASSWORD"
}
microSD を PC からアンマウント.
最低限のセキュリティ設定
ここから Raspberry Pi での作業.
ssh で接続
microSD を Pi に挿して電源をつなぐ. 1 分くらい待って,
ssh pi@raspberrypi.local
デフォルトパスワードは raspberry
. つながらない場合は PC での作業を再度確認.
デフォルトパスワードの変更
passwd
~/.ssh を作る
ssh の公開鍵認証を有効にするため Pi 側に ~/.ssh フォルダを作っておく
ssh-keygen
PC にある公開鍵を Pi にコピー
PC のターミナルを開いて scp で PC の公開鍵 id_rsa.pub
を Pi の authorized_keys
にコピー.
scp ~/.ssh/id_rsa.pub pi@raspberrypi.local:~/.ssh/authorized_keys
念のため ~/.ssh/*
のパーミッションや所有者が適切かどうか確認しておく.
公開鍵認証でログインできるか確認
一旦 Pi からログアウトして
ssh pi@raspberrypi.local
でパスワード入力なしでログインできれば OK.
sshd の設定
sudo nano /etc/ssh/sshd_config
ポート変更とパスワード認証不可に設定. 該当する行のコメントアウトを外して修正.
Port 10022
PasswordAuthentication no
修正後 Pi を再起動
sudo reboot
Pi が起動するのを待って再度 PC からログイン. ただしポートは 10022
.
ssh -p 10022 pi@raspberrypi.local
無線 LAN ルータのパスワードが平文で書かれているのを修正
wpa_passphrase SSID
して psk=英数字列
の行をコピーしておく.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
して psk="平文パスワード"
の行を消して, 先程コピーしておいた psk=英数字列
に変更. Pi 再起動.
ひとまずアカウントとパスワード関連はここまで. 出来ればデフォルトユーザの pi
も変えたほうがよい.
raspi-config
の設定
sudo raspi-config
2 Network Options
- N1 Hostname
で pi3
や pizero
などに変更.
4 Localisation Options
- I1 Change Locale
で ja_JP.UTF-8
を選択. 次のページは C.UTF-8
を選択(ja_JP.UTF-8
でも OK).
4 Localisation Options
- I2 Change Timezone
で Asia
, Tokyo
を選択.
7 Advanced Options
- A1 Expand Filesystem
で microSD 全体を使えるようにする.
Pi 再起動.
df -h
で使える microSD の容量が増えていることを確認.
ホスト名を変更したので, 再起動以後は以下のように接続(pi3
の場合)
ssh -p 10022 pi@pi3.local
システムのアップデート
とりあえずやっておく.
sudo apt-get update
sudo apt-get upgrade
通常の設定
スワップを無効化
free
sudo swapoff --all
sudo apt-get remove dphys-swapfile
sudo reboot
再度ログインして free
でスワップが無効化されていることを確認.
/tmp を RAM ディスクにする
df -h
sudo nano /etc/fstab
/etc/fstab
の末尾に以下を追加. とりあえず 256 MB くらいにして様子見.
tmpfs /tmp tmpfs defaults,size=256m 0 0
Pi 再起動. 再度ログインして df -h
で /tmp
が tmpfs
になっていることを確認.
USB メモリを自動マウント (usbmount)
sudo apt-get install usbmount
sudo nano /etc/usbmount/usbmount.conf
FS_MOUNTOPTIONS
を以下のように指定すると日本語ファイル名が表示可能.
FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=pi,gid=pi,dmask=000,fmask=011"
systemd-udevd.service
を修正.
sudo nano /lib/systemd/system/systemd-udevd.service
このページによると, 以下のようにしないとマウントされないらしい.
MountFlags=shared
Pi 再起動. VFAT フォーマットの USB メモリを挿して /media/usb0
にマウントされることを確認. 日本語のファイル名も見えてるはず.
サーバ関連のインストール
Samba のインストール
sudo apt-get install samba
sudo nano /etc/samba/smb.conf
末尾に以下を追加.
[pi3usb0]
path = /media/usb0
read only = No
guest ok = Yes
force user = pi
Pi 再起動. PC からゲストで接続できれば OK.
apache2 のインストール
このページを参考に.
sudo apt-get install apache2
sudo cp -p /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default.conf
sudo nano /etc/apache2/sites-available/default.conf
以下を追加.
#DocumentRoot /var/www/html
DocumentRoot /media/usb0
<Directory /media/usb0/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
000-default
を無効にして default
を有効にする.
sudo a2dissite # 000-default を入力
sudo a2ensite # default を入力
/etc/apache2/sites-enabled
に default.conf
だけがあることを確認.
ls -l /etc/apache2/sites-enabled
total 0
lrwxrwxrwx 1 root root 31 Jan 13 21:13 default.conf -> ../sites-available/default.conf
Pi 再起動. ブラウザから http://pi3.local/ で確認.
クライアント関連のインストール
GNU Screen のインストール
sudo apt-get install screen
nano ~/.screenrc
以下の内容でファイル作成.
# Encoding
defencodig utf-8
# Prefix Key
escape ^Jj
# set scrollback
defscrollback 1000000
# Delete start up screen
startup_message off
# Enable Auto detach
autodetach on
# alternate screen
altscreen on
# Enable mouse scroll
termcapinfo xterm* ti@:te@
screen
を実行して Ctrl-j d
でデタッチして screen -r
でアタッチ出来ることを確認.
GNU Emacs のインストール
Yes, I’m old school.
sudo apt-get install emacs
emacs ~/.emacs.d/init.el
以下を書き込む.
(set-language-environment "Japanese")
(setq inhibit-startup-message t)
(setq initial-scratch-message "")
(menu-bar-mode -1)
(tool-bar-mode 0)
以上