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

  • 39
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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