Raspberry Pi 3の初期設定

Raspberry Pi 3にOSを導入。

OSはDebianベースの RASPBIAN JESSIE LITE。GUI無しのLITE版。

手順
①SDカードを準備してRaspbery Piを起動
②初期設定
③SDカードの寿命を延ばす設定
④WiFiの設定

SDカードを準備してRaspbery Pi 3を起動

SDカードの準備

最新版のRaspbianをダウンロード。
https://downloads.raspberrypi.org/raspbian_lite_latest

作業時のイメージは2017-01-11版。

ダウンロードした圧縮ファイルを解凍。

$ cd Downloads
$ unzip 2017-01-11-raspbian-jessie-lite.zip

 

SDカードに解凍したイメージをを複写。

MacにSDカードを挿す前にディスクの情報を確認。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS iMac                    199.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS DATA                    1.8 TB     disk0s4

disk0が内蔵ディスクとして認識されてる。

続いてSDカードを挿して再度ディスクの情報を確認。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS iMac                    199.5 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS DATA                    1.8 TB     disk0s4

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *32.2 GB    disk1
   1:             Windows_FAT_32 boot                    64.0 MB    disk1s1
   2:                      Linux                         2.2 GB     disk1s2
   3:                      Linux                         29.9 GB    disk1s3

SDカードがdisk1として認識される。

SDカードがMacにマウントされている場合はアンマウント。

$ diskutil umount /dev/disk1s1

 

SDカードにimgファイルを複写。

$ sudo dd bs=64m if=2017-01-11-raspbian-jessie-lite.img of=/dev/rdisk1
Password:
20+1 records in
20+1 records out
1390411776 bytes transferred in 118.431105 secs (11740258 bytes/sec)

bsはブロックサイズ、ifは入力ファイル、ofは出力ファイル。
of=でSDカードを指定する際、disk1の頭にrを付けてrdisk1にしておく。

SDカードへの複写が済むと、Macにbootパーティションが自動でマウントされる。
最近のRaspbian、デフォルトでsshが有効になっていないらしいので、SDカードを母艦から外す前にbootパーティション内にsshというファイルを作っておく。参考

$ touch /Volumes/boot/ssh

 

Raspberry Pi 3の起動

SDカードを母艦から(安全に)取り出す。
Raspberry Pi 3にSDカードと、LANケーブルを挿す。
電源供給用USBケーブルを接続して電源投入。

Raspberry Pi 3のIPアドレスを調べる。
MacならLanScan(無料)、iPhoneならFing(無料)とかで同じLAN上の端末のIPアドレス、MACコード等を表示できる。

母艦からRaspberry Pi 3にssh接続。

$ ssh pi@10.0.0.31
The authenticity of host '10.0.0.31 (10.0.0.31)' can't be established.
ECDSA key fingerprint is SHA256:sXl........
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.31' (ECDSA) to the list of known hosts.
pi@10.0.0.31's password:

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.

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:~ $

ユーザ名:pi
パスワード:raspberry

Raspberry Piのプロンプトが表示されればOK。
pi@raspberrypi:~ $

初期設定

初回接続ってことで、初期設定。

システムのアップデート

$ sudo apt-get update
$ sudo apt-get upgrade

 

各種設定(raspi-config)

$ sudo raspi-config


1 Expand Filesystem
SDカードの容量を最大に使う。

2 Change User Password
パスワードの変更。新しいパスワードを2回入力。

4 Localisation Options
  I1 Change Locale
    [ ] en_GB.UTF-8 UTF-8 ←解除
    [*] en_US.UTF-8 UTF-8 ←選択
    [*] ja_JP.UTF-8 UTF-8 ←選択
  Configuring locales
    ja_JP.UTF-8 ←選択

  I2 Change Timezone
    Asia→Tokyo

  I4 Change Wi-fi Country
    JP Japan

7 Advanced Options
  A3 Memory Split
    16

<Finish>

Would you like to reboot now?
<Yes>

リブートするので、再接続。新しいパスワードでね。

システムの標準エディタを変更

nanoには不慣れなので、標準エディタを別なものに変更。

$ sudo update-alternatives --config editor
[sudo] password for pi: 
alternative editor (/usr/bin/editor を提供) には 3 個の選択肢があります。

  選択肢    パス             優先度  状態
------------------------------------------------------------
* 0            /bin/nano           40        自動モード
  1            /bin/ed            -100       手動モード
  2            /bin/nano           40        手動モード
  3            /usr/bin/vim.tiny   10        手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 3
update-alternatives: /usr/bin/editor (editor) を提供するためにマニュアルモードで /usr/bin/vim.tiny を使います

 

rootのパスワードを設定

$ sudo passwd root
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

 

piユーザの名前を変える

参考

仮のユーザ(tmp)を作成。

$ sudo useradd -M tmp
$ sudo gpasswd -a tmp sudo
$ sudo passwd tmp
$ exit

仮のユーザ(tmp)でログインし直してpiのユーザ名を新しい名前(NEW_NAME)に変更。

$ sudo usermod -l NEW_NAME pi
$ sudo usermod -d /home/NEW_NAME -m NEW_NAME
$ sudo groupmod -n admin pi
$ exit

新しい名前でログインし直して仮のユーザ(tmp)を削除。

$ sudo userdel tmp

 

SDカードの寿命を伸ばすための設定

Swapの無効化

現在のSwap容量を確認。

$ free
             total       used       free     shared    buffers     cached
Mem:        996452      84580     911872       6624       8484      42996
-/+ buffers/cache:      33100     963352
Swap:       102396          0     102396

100MBくらい使ってる。

スワップをオフる。

$ sudo swapoff --all

再起動で再度スワップが作られるのを停止。

$ sudo apt-get remove dphys-swapfile
$ sudo apt-get autoremove

再起動

$ sudo reboot

Swapが作成されていないことを確認。

$ free
             total       used       free     shared    buffers     cached
Mem:        980212      89404     890808       6536       6756      45280
-/+ buffers/cache:      37368     942844
Swap:            0          0          0

 

tmpとlogをRAMディスクに移動

$ sudo vi /etc/fstab
proc            /proc proc  defaults         0  0
/dev/mmcblk0p1  /boot vfat  defaults         0  2
/dev/mmcblk0p2  /     ext4  defaults,noatime 0  1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
tmpfs  /tmp      tmpfs  defaults,size=32m,noatime,mode=1777  0  0  # 行追加
tmpfs  /var/tmp  tmpfs  defaults,size=16m,noatime,mode=1777  0  0  # 行追加
tmpfs  /var/log  tmpfs  defaults,size=32m,noatime,mode=0755  0  0  # 行追加

rc.localを編集して、ログファイルのディレクトリ等を自動で作らせる。

$ sudo vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

mkdir -p /var/log/ConsoleKit      # 行追加
mkdir -p /var/log/samba           # 行追加
mkdir -p /var/log/fsck            # 行追加
mkdir -p /var/log/apt             # 行追加
mkdir -p /var/log/ntpstats        # 行追加
chown root.ntp /var/log/ntpstats  # 行追加
chown root.adm /var/log/samba     # 行追加
 
touch /var/log/lastlog            # 行追加
touch /var/log/wtmp               # 行追加
touch /var/log/btmp               # 行追加
chown root.utmp /var/log/lastlog  # 行追加
chown root.utmp /var/log/wtmp     # 行追加
chown root.utmp /var/log/btmp     # 行追加

exit 0

ログの出力を少なくする。

$ sudo vi /etc/rsyslog.conf
# /etc/rsyslog.conf Configuration file for rsyslog.
#
$ sudo vi /etc/rsyslog.conf 
#  /etc/rsyslog.conf	Configuration file for rsyslog.
#
#			For more information see
#			/usr/share/doc/rsyslog-doc/html/rsyslog_conf.html


#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support
#$ModLoad immark  # provides --MARK-- message capability

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf


###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*			/var/log/auth.log
*.*;auth,authpriv.none		-/var/log/syslog
#cron.*				/var/log/cron.log
#daemon.*			-/var/log/daemon.log            #コメントアウト
#kern.*				-/var/log/kern.log              #コメントアウト
#lpr.*				-/var/log/lpr.log               #コメントアウト
#mail.*				-/var/log/mail.log              #コメントアウト
#user.*				-/var/log/user.log              #コメントアウト

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info			-/var/log/mail.info             #コメントアウト
#mail.warn			-/var/log/mail.warn             #コメントアウト
#mail.err			/var/log/mail.err               #コメントアウト

#
# Logging for INN news system.
#
#news.crit			/var/log/news/news.crit         #コメントアウト
#news.err			/var/log/news/news.err          #コメントアウト
#news.notice			-/var/log/news/news.notice  #コメントアウト

#
# Some "catch-all" log files.
#
#*.=debug;\                                              #コメントアウト
#	auth,authpriv.none;\                               #コメントアウト
#	news.none;mail.none	-/var/log/debug             #コメントアウト
*.=info;*.=notice;*.=warn;\
	auth,authpriv.none;\
	cron,daemon.none;\
	mail,news.none		-/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg				:omusrmsg:*

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#	news.=crit;news.=err;news.=notice;\
#	*.=debug;*.=info;\
#	*.=notice;*.=warn	/dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
# 
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
daemon.*;mail.*;\
	news.err;\
	*.=debug;*.=info;\
	*.=notice;*.=warn	|/dev/xconsole

再起動

$ sudo reboot

再起動後、マウント状況を確認。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         30G  987M   28G    4% /
devtmpfs         483M     0  483M    0% /dev
tmpfs            487M     0  487M    0% /dev/shm
tmpfs            487M  6.5M  481M    2% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            487M     0  487M    0% /sys/fs/cgroup
tmpfs             32M   96K   32M    1% /var/log
tmpfs             16M     0   16M    0% /var/tmp
tmpfs             32M     0   32M    0% /tmp
/dev/mmcblk0p1    63M   21M   42M   33% /boot

あと、/var/log以下にフォルダが作られていればOK。

$ ls /var/log

 

WiFiの設定

WiFiを有効にするために、WiFiのSSID、パスワードを書き込む。

$ sudo wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf

SSIDはWiFiのアクセスポイント名
PASSWORDはアクセスポイントのパスワード

パスワードが平文(コメント行)で保存されているので、一応その行を削除。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
	ssid="SSID"
	#psk="PASSWORD"      ←平文なので行を削除
	psk=0000...
}

IPアドレスの取得方法をDHCPにする。また、省エネのためWiFiのパワーが自動でオフになる場合があるようで、WiFi経由でssh接続してるときに反応が鈍くなったり、接続が切れたりする場合があったので、省エネ設定をオフにする。
参考

$ sudo vi /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

#allow-hotplug wlan0			# allow-hotplugをautoに変更
auto wlan0
#iface wlan0 inet manual		# manualをdhcpに変更
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    wireless-power off			# 行追加:パワーマネジメントoff

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

電源を落とす。

$ sudo poweroff

Raspberry Pi 3からLANケーブルを抜いて再度電源投入。

上記LanScanFingなどで再びIPアドレスをスキャンして、Raspberry Pi 3が表示されれば成功。

母艦からssh接続できればOK。

一応、LANの状態を表示。

$ iwconfig
wlan0     IEEE 802.11bgn  ESSID:"hoge"  
          Mode:Managed  Frequency:2.432 GHz  Access Point: 01:23:45:67:89:AB   
          Bit Rate=72.2 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=42/70  Signal level=-68 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

真ん中あたり、Power Management:offになってる。よかよか。

あと、再起動のたびにIPアドレスが変わるのが面倒なので、DHCPサーバ側でRaspberry Pi 3のWifiのMACコードを登録してIPアドレスの固定化をしてます。
 

<<もくじ  NASを自動マウント>>

広告
タグ: , , , ,
カテゴリー: RaspberryPi, Raspbian

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。