LoginSignup
46
44

More than 5 years have passed since last update.

Raspbian Stretch Lite on Raspberry Pi 3 初期設定メモ

Last updated at Posted at 2018-01-02

概要

Raspberry Pi 3をヘッドレスで運用する際の設定メモ.

準備

OSイメージのダウンロード

Raspbianの公式ページから最新バージョンのRaspbian Liteのイメージをダウンロード・展開する.
(2018/01/02時点の最新バージョンは2017/11/29リリースのもの)

OSイメージの書き込み

Windows環境ではDD for Windowsを用いるのがよさそう.

  1. SDカードをPCに接続し,ドライブレターを確認しておく(間違いがないように).
  2. DD for Windowsをダウンロード・展開し,DDWin.exe管理者権限で実行する.
  3. ディスク選択から,接続したSDカードのドライブレターを選択する.
  4. ファイル選択から,ダウンロードしたOSイメージ(今回は2017-11-29-raspbian-stretch-lite.img)を選択する.
  5. 書込をクリックし,OSイメージが書き込まれるまで待つ.
  6. 書き込み処理が終わったら,sshを有効化するためにSDカードのルートディレクトリにsshという名前で空のファイルを作成する. boot.png
  7. SDカードを取り出す.

初期設定

起動

  1. Raspberry Pi 3にSDカードを挿入し,LANケーブルを接続した状態で電源を接続する.
  2. DHCPでIPアドレスが割り振られるはずなので,ルータのログ等を確認してRaspberry PiのIPアドレスを確認する. log.png
  3. 適当なSSHクライアントでRaspberry Piに接続する.(ID:pi,パスワード: raspberry)
$ ssh pi@192.168.0.14
pi@192.168.0.14's password:
Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

pi@raspberrypi:~ $

アカウント関連の設定

  • rootのユーザを設定する
pi@raspberrypi:~ $ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
pi@raspberrypi:~ $
  • 新しいユーザ username を追加する.
pi@raspberrypi:~ $ sudo adduser username
Adding user `username' ...
Adding new group `username' (1001) ...
Adding new user `username' (1001) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for username
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
pi@raspberrypi:~ $
  • username をグループに追加する.
# piの所属するグループを確認する
pi@raspberrypi:~ $ id pi
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(input),108(netdev),999(spi),998(i2c),997(gpio)
# usernameを同じグループに追加する
pi@raspberrypi:~ $ sudo usermod -aG adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio username
# 確認
pi@raspberrypi:~ $ id username
uid=1001(username) gid=1001(username) groups=1001(username),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(input),108(netdev),999(spi),998(i2c),997(gpio)
pi@raspberrypi:~ $
  • 一度ログアウトする.
pi@raspberrypi:~ $ exit
  • 新しく作成したユーザでログインする.
$ ssh username@192.168.0.14
username@192.168.0.14's password:
Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

username@raspberrypi:~ $
  • ユーザ pi を削除する
username@raspberrypi:~ $ sudo userdel -r pi

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for username:
userdel: pi mail spool (/var/mail/pi) not found
username@raspberrypi:~ $
  • ログアウトする.
username@raspberrypi:~ $ exit

Raspberry Pi 固有の初期設定

raspi-config

username@raspberrypi:~ $ raspi-config
  • 2 Network Options の設定
    • N1 Hostname でホスト名を設定 (username-pi)
  • 3 Boot Options の設定
    • B1 Desktop / CLIB1 Console を選択
  • 4 Localisation Options の設定
    • I1 Change Locale の設定
      • en_GB.UTF-8 UTF-8のチェックを外し(Spaceキー),ja_JP.EUC-JP EUC-JPja_JP.UTF-8 UTF-8 にチェック
      • Default localeをja_JP.UTF-8に設定
    • I2 Change TimezoneAsia/Tokyo に設定
    • I4 Change Wi-fi CountryJP に設定
  • 7 Advanced Options の設定
    • A1 Expand Filesystem を実行して,SDカードの全容量を使用できるように設定
    • A3 Memory Split で,GPUに割り当てるメモリを最小の16MBに設定
  • 8 Update で,raspi-config を更新

  • 再起動する.

username@raspberrypi:~ $ sudo reboot
  • 新しいホスト名でSSHログインできることを確認する.
$ ssh username@username-pi.local
username@username-pi.local's password:
Linux username-pi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

username@username-pi:~ $
  • SDカードの全容量が認識されていることを確認する.
username@username-pi:~ $ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G 1023M   14G    8% /
devtmpfs         484M     0  484M    0% /dev
tmpfs            489M     0  489M    0% /dev/shm
tmpfs            489M   13M  476M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            489M     0  489M    0% /sys/fs/cgroup
/dev/mmcblk0p1    41M   21M   21M   51% /boot
tmpfs             98M     0   98M    0% /run/user/1001
  • 表示言語を英語にしたい場合は,~/.bashrcLANG="en_US.UTF-8" と記述する.

SDカードの延命対策

参考: https://azriton.github.io/2017/03/16/Raspbian-Jessie-Lite%E3%81%AESD%E3%82%AB%E3%83%BC%E3%83%89%E5%BB%B6%E5%91%BD%E5%8C%96/

  • SDカードでSwapを用いると寿命が短くなるので,Swap領域を0にする.
username@username-pi:~ $ sudo swapoff --all
username@username-pi:~ $ sudo apt-get purge -y --auto-remove dphys-swapfile
username@username-pi:~ $ sudo rm -rf /var/swap
username@username-pi:~ $ free -mh
              total        used        free      shared  buff/cache   available
Mem:           976M         29M        779M         12M        167M        884M
Swap:            0B          0B          0B
  • ログ出力を抑制する.
    • /etc/rsyslog.conf#### RULES #### 以下で,必要のないものをコメントアウトする.
    • (cron 以外は抑制するようにしている.)

パッケージの削除

  • 必要ないパッケージを削除する.
    • 以下のスクリプトを実行する.
create_minumum_raspbian.sh
#! /bin/bash

# Update repos
sudo apt update

# Packages to remove
DOCS="man manpages libraspberrypi-doc debian-reference-en debian-reference-common"
GCC="gcc-4.5-base:armhf gcc-4.6-base:armhf gcc-4.7-base:armhf"
DEV=`sudo dpkg --get-selections | grep "\-dev" | grep -v "deinstall" | sed s/install//`
SOUND="omxplayer "`sudo dpkg --get-selections | grep -v "deinstall" | grep sound | sed s/install//`
PYTHON=`sudo dpkg --get-selections | grep -v "deinstall" | grep python | sed s/install//`
JAVA="java-common oracle-java7-jdk oracle-java8-jdk"
LEARNING="scratch squeak-vm squeak-plugins-scratch supercollider sonic-pi wolfram-engine"

# Purge packages
sudo apt purge -y $DOCS $GCC $DEV $SOUND $PYTHON $JAVA $LEARNING
sudo rm -rf /usr/local/games/
sudo rm -rf /usr/games/

# Autoremove
sudo apt autoremove -y
# Upgrade packages and distribution
sudo apt upgrade -y
sudo apt dist-upgrade -y
# Clean archive files
sudo apt clean -y

# Update firmwares
sudo apt install -y rpi-update
sudo rpi-update

# Clear logs
cd /var/log/
sudo rm `find . -type f`
history -c

# Reboot
sudo reboot
  • 再起動されるので,しばらくしてからSSHで再ログインする.

不要デーモンの無効化

  • chkconfig をインストールする.
username@username-pi:~ $ sudo apt install -y chkconfig
  • triggerhappyalsa-utilsplymouth を停止する.
username@username-pi:~ $ sudo chkconfig triggerhappy off
username@username-pi:~ $ sudo chkconfig alsa-utils off
username@username-pi:~ $ sudo chkconfig plymouth off

NTPによる時刻設定

  • ntpをインストールする.
username@username-pi:~ $ sudo apt install ntp
  • /etc/ntp.confpool ***.debian.*** iburst をコメントアウトし,NICT等のNTPサーバを追加する.
username@username-pi:~ $ sudo vim /etc/ntp.conf

# 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
pool ntp.nict.jp iburst

username@username-pi:~ $ sudo service ntp restart
  • 動作確認する.
username@username-pi:~ $ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp.jst.mfeed.a .POOL.          16 p    -   64    0    0.000    0.000   0.001
 ntp.nict.jp     .POOL.          16 p    -   64    0    0.000    0.000   0.001
 ntp3.jst.mfeed. 133.243.236.17   2 u    4   64    3    8.211    0.739   1.132
 ntp1.jst.mfeed. 133.243.236.17   2 u    1   64    3    7.267   -0.481   0.898
+ntp-a3.nict.go. .NICT.           1 u   55   64    1    7.969   -0.003   0.985
 ntp2.jst.mfeed. 133.243.236.17   2 u   64   64    1    8.284    0.083   0.001
+ntp-a2.nict.go. .NICT.           1 u   55   64    1    8.065   -0.056   1.122
+ntp-a3.nict.go. .NICT.           1 u   54   64    1    8.453    0.132   1.156
+ntp-b2.nict.go. .NICT.           1 u   56   64    1    8.597   -0.114   1.278
+ntp-b3.nict.go. .NICT.           1 u   52   64    1    9.856    0.801   1.665
*ntp-a2.nict.go. .NICT.           1 u   50   64    1    8.144    0.127   0.910

定期再起動の設定

  • rootに移行する.
username@username-pi:~ $ sudo -s
root@username-pi:/home/username#
  • crontabを設定する.(コマンド crontab -e を間違えないように注意)
# エディタが起動するので,設定を記入する
# 2日おき,AM4:00に再起動を行う場合
root@username-pi:/home/username# crontab -e
# Reboot
0 4 */2 * * /sbin/shutdown -r now

# 設定を確認する
root@username-pi:/home/username# crontab -l
# Reboot
0 4 */2 * * /sbin/shutdown -r now
46
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
44