Rasberry Pi 親切な導入編 : CUI版
Table of Contents
コンセプト
GUI(HDMIに接続したモニタでX windowでGUI表示、操作)を使わないものとします。
設定や操作はネットワーク経由のSSHか、HDMI接続モニタではCUIでの操作とします。
メモリ消費、SDカード容量が小さくて済み、IoT等の制御、情報収集装置に向く構成です。
- OSはRaspbian(debian)をインストールする。Noobsは使用しない。
- 書込が激しいディレクトリはRAM上に構成する。
- Wi-Fiを利用する。
- USBカメラまたは内蔵カメラ、センサ類を接続する。
準備するもの
Raspberry Pi 本体(Pi1から3、ZEROなんでも。またModelはどれでもOK)
Raspberry Piケースはお好みで。ヒートシンクはあった方が良いと思います。
電源:2.5A程度供給できるものが望ましいです。端子はmicroUSB B type
SDカード 4GB以上(Pi2以降はMicro SD。class10以上が望ましい)
USBカメラ または 内蔵カメラ。混在、複数台接続も可能
Wi-Fi USBドングル(Pi3はWi-Fi内蔵のため不要。Wi-Fi使用しなければ不要)
WINDOWS、Linux、MacのいずれかのPC
有線LANがつながる環境とDHCPサーバ。または下記LCDとキーボード
HDMI入力があるLCDとケーブル (なくても大丈夫です)
USBキーボード (なくても大丈夫です)
Raspbianをダウンロードしてくる
NOOBSからインストールすると2GBほどインストーラに取られてしまい、インストール後もパーティションが分かれてしまうので、Raspbianを直接SDカードにインストールした方が良いです。
Raspbian Liteをダウンロードします。
## 今回はGUIを使用しない(CUI版/SSH)ので、Raspbian Liteを使用します。
公式サイトはこちら。(https://www.raspberrypi.org/downloads/raspbian/)
重いので日本のミラーサイトを利用しましょう。
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/
最新版をダウンロードします。
例 : 2017-04-10-raspbian-jessie.zip
このzipファイルを解凍すると、.imgファイルができます。
SDカードに書き込む
SDカードは念のため事前にフォーマットしておきましょう。
WINDOWSの場合、SD AssociationのSDフォーマッタが確実です。
https://www.sdcard.org/jp/downloads/formatter_4/
SDカードのフォーマットは、FAT32にしてください。64GB以上で標準のexFATではRaspberry Piでは認識しません。フォーマットツール等で必ずFAT32でフォーマットしてから使用してください。
RaspbianのSDカードへの書き込みは、Linux環境をお持ちならddコマンドでSDカードに書き込みます。
dd if=ダウンロードしたファイルを解凍した.img of=/dev/sdx(SDカード)
WINODWSの方は、DD for WINDOWSを使用すると良いでしょう。
DD for WINDOWSの起動は、管理者で実行するようにしてください。
(管理者で実行しないと、SDカードを認識しません)
sshが使用できるようにする
作成したSDカードをPCに接続します。
以下のディレクトリにsshという名前の空のファイルを作成しておけば、SSHでの接続が可能です。
/boot 以下に sshという空のファイルを作成する。(WINDOWSでは新規ファイルの作成、Linuxであれば #touch ssh)
/boot/ssh
Raspberry Piに入れて起動する
SDカードを挿入し起動します。
有線LAN環境がある場合はケーブルを接続します。
有線LANにはDHCPサーバで割り当てられたIPアドレスで接続されます。
有線LANがない場合は、設定のためにUSBキーボードとHDMIモニタを接続します。
1分程で起動します。
sshでログインする
Linuxからはsshコマンドで。WINDOWSの場合はTeraTerm等でログインします。
DHCPで割り当てられたIPアドレスに接続します。
ログインは初期では下記です。
ログイン : pi パスワード : raspberry
スーパーユーザになるには、上記piでログイン後下記コマンドを実行します。
rootでログインすることはできません。
% sudo su -
一般ユーザを作成し、sudoできるユーザとして登録しておくと便利です。
# adduser ユーザ名 # passwd ユーザ名 # gpasswd -a ユーザ名 sudo
OSのアップデートをします。
# apt-get update # apt-get upgrade # rpi-update
vim(vi)エディタも入れておきましょう。
# apt-get install vim
再起動します。
# reboot
ネットワークの設定
/etc/dhcpcd.conf を編集します。
#有線LANのIPアドレスを固定する # Example static IP configuration: interface eth0 static ip_address=IPv4アドレス/24 #static ip6_address=fd51:xxxxx:xxxx:xxxx::xx/64 #IPv6を使う場合 static routers=ゲートウェイアドレス static domain_name_servers=DNSのIPv4アドレス1 IPv4アドレス2 IPv6アドレス #Wi-Fi接続のIPアドレスを固定する interface wlan0 static ip_address=IPv4アドレス/24 static routers=ゲートウェイアドレス static domain_name_servers=DNSのIPv4アドレス
Wi-Fi接続の設定を行う
以下のコマンドでSSIDとパスワードを設定します。
#sudo sh -c "wpa_passphrase [SSID] [パスワード] >> /etc/wpa_supplicant/wpa_supplicant.conf"
/etc/wpa_supplicant/wpa_supplicant.conf
に下記追記されます。
アクセスポイントがステルスモードで動作している場合は、エディタで末尾の
scan_ssid=1
を追記してください。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="S S I D" proto=WPA2 key_mgmt=WPA-PSK pairwise=TKIP CCMP group=TKIP CCMP #psk="パスワード" psk=暗号化されたパスワード scan_ssid=1 }
ホスト名の設定
/etc/hostnameの設定
# vim /etc/hostname
ホスト名
/etc/hostsの設定
# vim /etc/hosts
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 ホスト名
再起動します。
# reboot
RAM diskの設定
Raspberry PiのストレージはSDカード(またはマイクロSD)なのですが、頻繁な書き換えがあると、あっという間に壊れます。これ、結構ショックです…..
書き換えが頻繁なファイルで再起動時には消えてもよいものは、RAMをストレージに置くようにします。(RAMに置くためSDカードに書かれない。再起動すると消去されます)
また、swapもSDカードにダメージを与えるので消去してしまいます。
例によってターミナルから操作します。
ターミナルを起動し、スーパーユーザーになります。
% sudo su –
(1)swap領域の消去
swapを無効にします。
# swapoff –-all
freeコマンドで見ると、swapが0になっているはずです。
# free total used free shared buffers cached Mem: xxxx xxxx xxxx xxxx xxxx xxxxx Swap: 0 0 0
再起動してもswapが生成されないよう、swap関連のアプリケーションを削除します。
# apt-get remove dphys-swapfile
(2)書き換え頻繁なファイルのRAMストレージへの移動
/etc/fstabに、RAMディスクを生成するよう追記します。
# vim /etc/fstab
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 tmpfs /var/image tmpfs defaults,size=32m,noatime,mode=1777 0 0
/etc/rc.localに、起動時に必要なファイルやディレクトリを生成するよう追記します。
(今後、サービスやアプリケーションを追加する毎に、RAMディスクで運用するログやデータのディレクトリを追記していきます。)
“exit 0″の前に追記します。
# vim /etc/rc.local
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 mkdir -p /var/log/apache2 chgrp adm /var/log/apache2 chown root.ntp /var/log/ntpstats chown root.adm /var/log/samba touch /var/log/lastlog touch /var/log/wtmp touch /var/log/btmp touch /var/log/motion chown root.utmp /var/log/lastlog chown root.utmp /var/log/wtmp chown root.utmp /var/log/btmp chown motion:motion /var/log/motion
/var/image は、motionで写真を保存する際に使用します。
リブートし有効にします。
# reboot
日本時間に設定
# sudo timedatectl set-timezone Asia/Tokyo
再起動
# reboot