Edited at

Raspberry Piを入手したらやること

More than 3 years have passed since last update.

Model B+を複数セットアップしていて手順が安定してきた。

RPi2やIntel Edisonなどで陳腐化しつつある気がするが書いておく。


必要なもの

以下はRPiを設置する台数分だけ必要。


  • Raspberry Pi Model B+

  • microSDカード

  • USB Wi-fiアダプタ

  • USB microB電源アダプタ

以下はセットアップ時のみ必要。


  • microSDカードリーダー


  • HDMIケーブル


  • モニタ


  • USBキーボード



OSイメージ作成

参考:Qiita - Raspberry Pi に入門してみた。

Mac OS XでRaspbianのディスクを作成する場合。

Mac BookにmicroSDカードを挿入してRaspbianなどとrenameしておく。

スクリーンショット 2015-03-05 15.20.15.png

SDカードがどこにマウントされているか確認する。


Mac

$ df | grep Raspbian


ここでは/dev/disk3s1であるとしておく。以下でマウントを解除する。


Mac

$ sudo diskutil unmount /Volumes/Raspbian


Raspbianのイメージをダウンロードしておく。

ddコマンドでディスク作成する。引数は先ほど調べた値に対して/dev/rdisk3となることに注意。


Mac

$ cd /path/to/raspbian_img

$ ls
$ sudo dd bs=1m if="./2015-01-31-raspbian.img" of="/dev/rdisk3"

10分ほど待ち、書き込み終了したら


Mac

$ sudo diskutil unmount /dev/disk3s1


でマウント解除してMacBookから外す。


OSインストール

書き込んだmicroSD、HDMIケーブル(+モニタ)とWiFiアダプタをRPiに挿入した後、電源アダプタを接続すると青いセットアップ画面がモニタに現れる。

設定を適宜変更する。


  • 1 expand file system

  • 4 internationalization > I3 keyboard > 104 > Other > English(US) > English(US)。そのあとはデフォルト。※gbになってしまった場合はこちらのようにして直す 

  • 8 advanced options > A4 SSH > Enable

終わったらfinishしてreboot。


WiFi設定

モニタとキーボードを接続した状態でpiユーザーでログインする。PWはraspberryとなっているが後で変える。

SSIDとWiFi PWをwpa_passphraseコマンドに渡して設定ファイルを作り、WiFi設定に合わせてファイルを編集して読み込む。


RPi

$ sudo su -


# cd /etc/wpa_supplicant
# cp -p wpa_supplicant.conf wpa_supplicant.conf.bak
# wpa_passphrase $SSID $PASS >> wpa_supplicant.conf

# vi wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
#update_config=1
network={
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
scan_ssid=1

ssid="<SSID>"
#psk="<PASS>"
psk=<CIPHERED_PASS>
}

# vi /etc/network/interfaces
auto lo
iface lo inet loopback

iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

# ifdown wlan0
# ifup wlan0


IPアドレスがとれた(bound to ...)ことを確認する。ここからはSSH接続してリモートで設定する。(そのうちChef化したい)


ログイン設定

Wi-Fi上の端末(ここではMacBookを使っている)でSSH設定してログイン、PWを変更する。


Mac

$ vi ~/.ssh/config
Host pi1
HostName XXX.XX.X.XXX
User pi
Host pi2
HostName XXX.XX.X.XXX
User pi

$ ssh pi1



RPi

$ passwd


公開鍵などは適宜設定する。


ホスト名変更

デフォルトでホスト名が軒並みraspberrypiでオペミスしそうなので、適宜変更する。


RPi

$ sudo su -


# HOST=pi1
# echo $HOST > /etc/hostname
# /etc/init.d/hostname.sh
# sed -i /etc/hosts -e s/raspberrypi/$HOST/g

再度ログインするとホスト名が変わる


ディスク書き込みを減らす

廉価なmicroSDカードを使ったせいか壊れたことがあったので、

ややトリッキーだが大量の書き込みを行うときはメモリで書き込みを行うようにする。

参考:Broken Corrupted Raspberry Pi SD Card



  • fsck: mountのたび=再起動のたびに行う


RPi

$ sudo tune2fs -c 1 /dev/mmcblk0p2



  • 書き込みが多いディレクトリをtmpfsにする


RPi

$ mount -l

$ sudo vi /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

none /var/run tmpfs size=1M,noatime 00
none /var/log tmpfs size=1500M,noatime 00
none /var/tmp tmpfs size=1M,noatime 00
none /tmp tmpfs size=10M,noatime 00

$ sudo mount -a
$ mount -l



  • スワップを減らす


RPi

$ sudo dphys-swapfile swapoff

$ sudo dphys-swapfile uninstall
$ sudo update-rc.d dphys-swapfile remove


  • X11を削除する


RPi



$ sudo apt-get purge --auto-remove 'libx11-.*'

2,3分待ってDo you want to continue [Y/n]?と聞かれるので、Yと答えて15-30分程度待つ。


  • 再起動


RPi

$ sudo reboot


書き込み回数は以下で確認できるようだ。


RPi

$ sudo tune2fs -l /dev/mmcblk0p2 |grep Lifetime

Lifetime writes: 4841 MB


モジュール

ここからはアプリケーション依存の設定なので必要に応じて。


pythonを使う場合


RPi



$ sudo apt-get update
$ sudo apt-get install python-pip
$ sudo apt-get install python-dev
$ sudo pip install netifaces


GPIO(デジタル入出力)を使う場合


RPi

$ cd

$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.38.tar.gz
$ tar zxvf bcm2835-1.38.tar.gz
$ cd bcm2835-1.38/
$ ./configure
$ make
$ sudo make check
$ sudo make install


  • wiringPi


RPi

$ cd

$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi/
$ ./build


fluentdやAWSを使う場合


RPi

$ sudo aptitude install ruby-dev

$ cd
$ vi .gemrc
gem: --no-ri --no-rdoc --user-install

$ gem install rake
$ gem install bundler
$ gem install fluentd # 8+ minutes
$ gem install aws-sdk --version 1.55.0


25分ほど待つ


RPi

$ cd 

$ echo 'export PATH=$HOME/.gem/ruby/1.9.1/bin:$PATH' >> .bashrc
$ exec $SHELL



RPi

$ cd

$ git clone https://github.com/imaifactory/fluent-plugin-kinesis.git
$ cd fluent-plugin-kinesis
$ rake build
fluent-plugin-kinesis 0.0.1 built to pkg/fluent-plugin-kinesis-0.0.1.gem.
$ gem install pkg/fluent-plugin-kinesis-0.0.1.gem


DHTのライブラリを使う場合

参考:Raspberry PiからAmazon Kinesisへデータを上げる


RPi

$ cd 

$ git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
$ cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver_Python
$ sudo python setup.py install


おまけ

秋月のCdS(光センサ)をADコンバータ経由で接続したところ。

IMG_8469.JPG

IMG_8470.JPG

IMG_8422.JPG