Raspberry Pi 2で遊ぶ:カメラサーバ用に作り直し

この記事は「Raspberry Pi記事まとめ」に集約しています。

【2016/02/08】Raspbian Jessie liteとして全面書き直し

現在諸々して遊んでいたRaspberry Pi 2を方針転換して、現在カメラサーバとして使用している初代Raspberry Piからリプレースすることにしました。
今まで実験してきたことをベースにサーバ専用の設定で再構築します。

構築時に使用したもの

RPi2を安定して使用するには2.4A以上のUSB ACアダプタが必須です。PCのUSBポートや汎用の1.8A ACアダプタでも動かすことはできますが、RPi2にUSB機器をつなげたとたん電圧不足に陥ります(赤ランプが消えたり、LCD右上に虹色ボックスが表示される)。

接続物

  • [本体]Raspberry Pi 2 Model B
  • [ケース]Raspberry Pi B+/2 B用ケース
  • [無線]Planex GW-USNano → 構築後Buffalo WLI-UC-GNHPに変更
  • [マウス]Logicool M187 → 構築後外す
  • [キーボード]Buffalo BSKBW10BK → 構築後外す
  • [microSD]TDK T-MCSDHC8GB10UV(R30/W10)
  • [カメラ]Logicool C270 → 構築後Logicool Qcam Orbit AFに変更
  • [USB-ACアダプタ]IMPRiNC IACU2-SP31W

以降はぶしつけな作業記録です。

OSの書き込み

GUIがあってもしょうがないので、OSはRaspbian Jessie liteを使います。

  • あらかじめSDカードフォーマッター、RPi-sd card builder、Raspbian Jessie liteをダウンロード
  • MacからSDフォーマッターでSDカードをフォーマット
  • RPi-sd card builderでRaspbian Jessie lite書き込み
  • Coteditorで「/boot/config.txt」を開き、「lcd_rotate=2」追加
  • raspi-configで一通り設定(localeはja-jp.utf-8にしない)
    • $ sudo raspi-config
      • 2 Change User Password
      • 5 Internationalisation Options
        • I1 Change Locale ※別にさわらなくてもいい
          • ja_JP.UTF–8 UTF–8
          • デフォルトロケールは「en_GB.UTF-8 UTF-8」のまま
      • 5 Internationalisation Options
        • I2 Change Timezone
          • Asia
          • Tokyo
      • 5 Internationalisation Options
        • I3 Change Keyboard Layout
          • Generic 105-key (Intl) PC
          • Japanese – Japanese (OADG 109A)
          • The default for the keyboard layout
          • No compose key
      • 9 Advanced Options
        • A2 Hostname
          • balam
  • $ sudo shutdown -r now

ネットワークの設定

  • $ sudo wpa_passphrase ESSID パスフレーズ | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
    • wpa_supplicant.confの生パスフレーズ部分を削除
  • $ sudo nano /etc/dhcpcd.conf
    • interface wlan0
    • inform 192.168.24.202
    • static routers=192.168.24.1
    • static domain_name_servers=192.168.24.1
  • $ sudo shutdown -r now

アップデート

TDKのSDカードはrpi-updateが成功する

  • $ sudo apt-get update
  • $ sudo apt-get upgrade
  • $ sudo apt-get clean
    • autocleanは使ってないパッケージのキャッシュ削除なのでcleanのほうが効果が高い
  • $ sudo apt-get autoremove
    • autoremoveは使っていない依存パッケージの削除
  • $ sudo apt-get install rpi-update
    • Jessie liteはrpi-updateが入っていない
  • $ sudo rpi-update
  • $ sudo shutdown -r now

日本語化

無理に設定する必要はありません。ロケールを日本語にしたときの豆腐化を防ぐ程度のものです。

  • $ sudo apt-get install ttf-kochi-gothic ttf-kochi-mincho fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
  • $ sudo apt-get install jfbterm

rootパスワード変更

  • $ sudo passwd root

NTP

  • $ sudo nano /etc/ntp.conf
    • Server1〜3をコメントアウト
    • pool ntp.jst.mfeed.ad.jp iburst
  • $ sudo /etc/init.d/ntp restart

sshd_config

  • $ sudo /etc/ssh/sshd_conf
    • 28行目あたり変更、rootログインの禁止
      • PermitRootLogin no
    • 最下行追記、タイムアウト時間の延長
      • ClientAliveInterval 60
  • $ sudo /etc/init.d/ssh restart

vim

  • $ sudo apt-get install vim
  • $ vi .vimrc
    • set nocompatible
    • set number
    • set nobackup
    • set backspace=indent,eol,start
    • set smartindent
    • set showmatch
    • set cursorline
    • set title
    • set tabstop=4
    • set shiftwidth=4
  • $ su –
    • # ln -s /home/pi/.vimrc .vimrc
  • $ sudo update-alternatives –set editor /usr/bin/vim.tiny

ipv6の無効

いろいろ悪さしそうなipv6を切ります。

  • $ sudo vi /etc/modprobe.d/ipv6.conf
    • 【2行目コメントアウト】#alias net-pf-10 off
    • 【最下行に追記】install ipv6 /sbin/modprobe -n -i ipv6

mjpg-streamer(パンチルト対応)

mjpg-streamer-experimental

  • $ sudo apt-get install git subversion cmake imagemagick libjpeg62-turbo-dev
  • $ git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
  • $ cd mjpg-streamer/mjpg-streamer-experimental/
  • $ vi Makefile
    • 【49行目あたりコメントアウト】
    • RPi公式カメラをつないでないせいかinput_raspicam.soのビルドに失敗するため。使わないからコメントアウトで。
  • $ make clean all
  • $ sudo make install
  • $ mjpg_streamer -i “/usr/local/lib/input_uvc.so -d /dev/video0 -r XGA -f 30” -o “/usr/local/lib/output_http.so -w /usr/local/www -c ユーザ名:パスワード”
    • 動作確認用、パンチルト系のエラーが出るが動作する

パンチルト対応(libwebcam)

動作確認

Qcam Orbit AFに換えてから

  • $ mjpg_streamer -i “/usr/local/lib/input_uvc.so -d /dev/video0 -r XGA -f 30” -o “/usr/local/lib/output_http.so -w /usr/local/www
    • 他PCから「http://balam.local:8080」でアクセス、動作確認。パンチルトできるか確認する。
  • ctrl+cで停止

起動スクリプト

パスが長たらしいので移動してから

  • $ vi mjpg-streamer.sh
    • #!/bin/sh
      mjpg_streamer -b \
      -i “/usr/local/lib/input_uvc.so -d /dev/video0 -r XGA -f 30” \
      -o “/usr/local/lib/output_http.so -w /usr/local/www -c ユーザ名:パスワード”
  • $ chmod 755 mjpg-streamer.sh
  • $ sudo vi /etc/rc.local【20行目あたり追記】sh /home/pi/mjpg-streamer.sh

chkconfig

なんとなく。

  • $ sudo apt-get install chkconfig

ufw

準備ができたら一旦無効にしておきます。

  • $ sudo apt-get install ufw
  • $ sudo vi /etc/default/ufw
    【7行目あたり変更】IPV6=no
  • $ sudo ufw default deny
    • デフォルトは拒否
  • $ sudo ufw allow from 192.168.24.0/24 to any port 22 proto tcp
    • ローカル内でのSSHを許可
  • $ sudo ufw allow 8080/tcp
    • MJPG-Streamer用にアクセスを許可
  • $ sudo ufw enable
  • ケータイでhttp://グローバルIP:8080にアクセスし、mjpg-streamerが見えるか確認
  • cman等で22ポートが弾かれるか確認
  • $ sudo ufw disable

miniupnpc

  • $ sudo apt-get install miniupnpc
  • $ sudo upnpc -a 192.168.24.202 8080 8080 tcp
  • $ sudo upnpc -l
    • TCP 8080->192.168.24.202:8080 ‘libminiupnpc’ ’’ 0があること

ddns-update

ieserver.netのDDNS更新スクリプト。

仕上げ

  • $ sudo ufw enable
  • cmanで外部アクセスをチェック

これで起動時にmjpg-streamerが立ち上がり、UFWが有効になってUPnPでポートを開けるので、ケータイなど外部端末からアクセスすればカメラサーバとして使うことができます。
ieserver.netのDDNS更新は、たまに異様なほど遅いときがありますが、気長に待つしかないです。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中