Vol.760_special 28.Dec.2018


年末なので、ここで今まで行ってきたラズパイの設定をまとめておく。文字コードUTF-8のテキストファイル(raspiset.txt)。

※ ラズベリーパイ設定手順のまとめ

1.準備するもの ・・・以下の環境で動作確認済み
@ RaspberryPi 3B または RaspberryPi-ZERO(+LANアダプタ)
A マイクロSDカード(〜32Gb)、USB電源(5V、2.5A以上)
B HDMIモニタ、USBキーボード、USBマウス(SSH、VNC使用時には無くても良い)
C LAN環境、LANケーブル(無線接続時は不要だが有線接続も確保した方が良い)
D ホストなるパソコン、SDカードに書き込み可能なライター

2.ホストとなるパソコンに以下をダウンロードし、SDに書き込む(abc729参照)
@ SDフォーマッタ(SDFormatter)、できればSDカードは初期化した方が良い
A ラズベリアン (raspberrypi.org)、NOOBSまたはRASPBIAN(イメージファイル)
B SDライター (win32Dikimager) 、RASPBBIANイメージファイル書込時に必要
※書込終了後、空(0バイト)の”SSH"という名前のファイルをSDに作成する。

3.出来上がったSDをRaspberryPiに差し込み電源をONにする(abc740参照)
 OSのインストールが始まり、ネットから必要なファイルを入手し、起動画面が表示される。
@ ラズパイ設定 「Localisation」を以下に設定
Set Locate Language: ja(japanese)
Counry: JP(Japan)
Character set:UTF-8
Set Timezone Area: Asia
Location: Tokyo
Set Keyboard Country: Japan
Variant: Japanese
Set WiFi Country Contry: Japan

 ※以後、設定を有効にするためなど、必要に応じて再起動を−>
      $ sudo reboot
A システムを最新の状態に −>
      $ sudo apt-get update
  ・ラズパイの環境設定/インターフェース: 「SSH」、「VNC」を「有効」にする。
  ・ネットワーク状態を確認 −>
      $ ifconfig
B パソコンにTeraTermをインストールし、SSHでアクセス。
C パソコンにRealVNCをインストール。
D 日本語化     −>
      $ sudo apt-get install fonts-takao
E 日本語入力環境 −>
      $ sudo apt-get install ibus-mozc
F HDMI解像度の設定 −>
      $ sudo leafpad /boot/config.txt  ・・・1280x800にする場合
   24 # uncomment if hdmi display is not detected and composite is being output
   25 hdmi_force_hotplug=1   # hdmi非接続対応
   26
   27 # uncomment to force a specific HDMI mode (this will force VGA)
   28 hdmi_group=2
   29 hdmi_mode=28   # 1280 x 800, 60Hz
   (画面設定はVNC画面にも反映。leafpadはGUIで利用可、CUI画面はnano利用)
G 特権ユーザで操作を行いたい場合、rootのパスワードを設定しておくと良い。
  rootパスワード設定 −>
      $ sudo passwd root

4.アプリケーションのインストールabc741参照)
@ Webサーバーのインストール −>
      $ sudo apt-get install nginx
  nginxを起動 −>
      $ sudo /etc/init.d/nginx start
A PHPのインストール −>
      $ sudo apt-get install php5-fpm
  defaultを修正−>
      $ sudo leafpad /etc/nginx/sites-available/default
   33 index ・・・ index.php  # index.phpを追加
       ・・・
   45 location - \.php$ {}
   46 include snipperts/fastcgi-php.conf;
   47
   48 # with php5-cg1 alone;
   49 # fastcgi_pass
   50 # with php5fpm;
   51 fastcgi_pass unix:/var/run/php5-fpm.sock;
   52 }

  php.iniを修正 −>
      $ sudo leafpad /etc/php5/fpm/php.ini
   771 cgi.fix_pathinfo = 0   # 行頭の;も取る

  restartで再起動 −>
      $ sudo /etc/init.d/php5-fpm restart
      $ sudo /etc/init.d/nginx restart
B MySQL −>
      $ sudo apt-get install mysql-server php5-mysql
      (管理者用パスワードが必要)
  動作の確認 −>
      $ mysq -u root -p
C Samba (共有サーバ)−>
      $ sudo apt-get install samba samba-common-bin
  共有フォルダ作成−>
      $ sudo mkdir /var/samba
  共有ユーザの変更−>
      $ sudo chown pi:pi /var/samba
  ユーザの設定 −>
      $ sudo pdbedit -a pi
  公開の設定 −>
      $ sudo leafpad /etc/samba/smb.conf ・・[Share]を追加
  [Share]
  comment = Share Folder
  browseable = yes
  path = /var/samba
  writeable = yes
  valid users = pi
  force user = pi

  sambaの再起動 −>
      $ sudo /etc/init.d/samba restart
  windowsパソコンで動作の確認 −> ネットワーク/raspberrypiでアクセス
D NTFS-usbHDD接続 −>
      $ sudo apt-get install ntfs-3g
  フォルダの作成 −>
      $ sudo mkdir /mnt/usbhdd
  mtgs-3gマウント −>
      $ sudo mount -t ntfs-3g /dev/sda1 /mnt/usbhdd

5.有用アプリのインストール(abc743参照)
LibreOfficeは標準でインストール済み。さらに必要であれば以下をインストール。
 @ PDFビュアー −>
      $ sudo apt-get install evince
 A ペイントレタッチ −>
      $ sudo apt-get install gimp
 B メディアプレーヤ −>
      $ sudo apt-get install mplayer
 C ミュージックプレーヤ −>
      $ sudo apt-get install rhythmbox
 D メーラー −>
      $ sudo apt-get install thunderbird
 E エディッタ −>
      $ sudo apt-get install gedit

6,WiFiサーバーabc744参照)
@hostapt −>
      $ sudo apt-get install hostapd
  IPアドレス固定 −>
      $ sudo leafpad /etc/network/interfaces   ・・アドレス設定
    ・・・
  allo-hotplug wlan0
  #iface wlan0 inet manual
  # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  iface wlano inet static
  address 192.168.123.1
  netmask 255.255.255.0
  network 192.168.123.0
  broadcast 192.168.123.255
    ・・・

  hostapdの編集−>
      $ cd /etc/hostpad/
      $ sudo cp /usr/share/doc/hostapd/examples/hostapd.conf.gz ./
      $ sudo gzip -d hostapd.conf.gz
      $ sudo leafpad hostapd.conf   ・・以下を修正
    ・・・
   6 interface = wlan0 ・・・
    ・・・
   25 driver = nl80211
    ・・・
   83 ssid = rspi3-ap
    ・・・
   129 hw_mode = g
    ・・・
   139 channel = 6
    ・・・
   228 macadder_ac1 = 0
    ・・・
   242 auth_algs = 1
    ・・・
   252 ignore_broadcast_ssid = 0
    ・・・
  1018 wpa = 2
    ・・・
  1027 wpa_passphrase = raspberry
    ・・・

  バージョンアップ−>
      $ wget https://w1.fi/releases/hostapd-2.6.tar.gz
      $ tar zxvf hostapd-2.6.tar.gz
      $ sudo apt-get install libnl-genl-3-dev libssl-dev
      $ cd hostapd-2.6/hostapd
      $ cp defconfig .config
      $ echo CONFIG_LIBNL32=y >> .config  ・・optionを追加
      $ make     ・・hostapdを作成
      $ sudo mv /usr/sbin/hostapd /usr/sbin/hostapd_v2.3
      $ sudo cp hostapd /usr/sbin/
  hostapdを起動−>
      $ sudo ifdown wlan0   ・・一度ネットをoff
      $ sudo ifup wlan0   ・・再びネットをOn
      $ sudo hostapd /etc/hostapd/hostapd.conf &
      $ sudo service hostapd status ・・動作を確認
   
ADHCPサーバー−>
      $ sudo apt-get install dnsmasq
  confファイル変更−>
      $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.org.conf
      $ sudo leafpad /etc/dnsmasq.conf  ・・新規に作成
    interface = wlan0
    listen-address 192.168.123.1
    bind-interfaces
    server = 8.8.8.8   # googleを指定
    domain-needed
    bogus-priv
    dhcp-range = 192.168.123.50, 192.168.123.99, 12h

  自動起動の設定 −> sudo leafpad /etc/default/hostapd ・・confファイル指定
   10 DAEMON_CONF = "/etc/hostapd/hostapd.conf"

  サービスの開始 −>
      $ sudo service hostapd start
      $ sudo service dnsmasq start
      $ sudo reboot
  動作の確認−>
      $ service hostapd status   ・・activ(runnig)があるか?
      $ service dnsmasq status   ・・activ(runnig)があるか?
   
Bルーター設定 (abc746参照))
  IPフォワード有効−>
      $ sudo leafpad /etc/sysctl.conf
   28 net.ipv4.ip_forward=1   # 行頭の;を取る

  アクチベート−>
      $ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
  テーブル編集−>
      $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      $ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
      $ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
  テーブル保存−>
      $ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
  起動設定−>
      $ sudo leafpad /etc/network/if-pre-up.d/iptables   ・・新規作成
    #! /bin/sh
     pre-up iptables-restore < /etc/iptables.ipv4.nat
     exit 0

  実行権付加−>
      $ sudo chmod 755 /etc/network/if-pre-up.d/iptabls
  再起動−>
      $ sudo reboot
  動作確認−>
      $ sudo iptables -L
  (確認2)−>
      $ cat /etc/iptables.ipv4.nat

7.pythonツール
@bottle−>(abc747参照)
      $ sudo apt-get install python-bottle
Atkinter−>(abc748参照)
      $ sudo apt-get install python3-tk
Bsmbus(I2C)−>(abc749参照)
      $ sudo apt-get install python-smbus  ・・・ラズパイ設定で「I2C」を「有効」
Ccamera−>(abc750参照)
      $ sudo apt-get install python-picamera  ・・・ラズパイ設定で「カメラ」を「有効」
DMatplotlib−>(abc751参照)
      $ sudo apt-get install python-matplotlib
Ewiringpi2−>(abc754参照)
  (事前に)−>
      $ sudo apt-get install python-dev python-pip
  インストール−>
      $ sudo pip install wiringpi2 ・・wiringpiも同時インストール
F gpiozero −> デフォルトでインストール済み(abc755参照)
GWebIOpi−>(abc757参照)
  インストール−>
      $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
  ファイルを解凍−>
      $ tar xvzf WebIOPi-0.7.1.tar.gz
  ディレクトリへ−>
      $ cd WebIOPi-0.7.1
  修正−>
      $ wget https://raw.githubusercontent.com/doublebind/raspi/master/ webiopi-pi2bplus.patch
  パッチ実行−>
      $ patch -p1 -i webiopi-pi2bplus.patch
  セットアップ−>
      $ sudo ./setup.sh
  ホーム作成−>
      $ mkdir webiopi
  ファイルのコピー−>
      $ cp -r /usr/share/webiopi/htdocs/* webiopi/
  connfig修正−>
      $ sudo leafpad /etc/webiopi/config
   doc-root = /home/pi/webiop を追加

  webiopiの起動−>
      $ sudo systemctl start webiopi (rebootで再起動後)
      http://<ラズパイのIPアドレス>:8000
      ユーザー名:webiopi
      パスワード:raspberry
  動作の停止−>
      $ sudo systemctl stop webiopi
  
  ※インストール済みモジュールの確認には −>
      $ pip list
  
8.リアルタイムで映像配信(mjpg-streamer)(abc759参照)
【Subversionを利用】(USBカメラ)
@ インストール(Subversionによって行う)
      $ cd ~     # /home/pi/ に移動しインストール作業を行う
      $ mkdir mjpg-streamer
      $ cd mjpg-streamer
      $ sudo apt-get update
      $ sudo apt-get install subversion libjpeg-dev imagemagick
      $ svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
      $ cd mjpg-streamer/mjpg-streamer
      $ make         # MJPEG-streamerをビルド
      $ sudo make install   # 関係ファイルを /usr/local/lib/ 以下にコピー
A 起動コマンドが長いので起動用シェルスクリプト<start_stream.sh>を作成しておく
   #!/bin/sh
   PORT="8010"     #ポート番号
   ID="pi"        #IDは任意の文字
   PW="pistream"   #パスワードは任意の文字
   SIZE="640x480"   #画面サイズ
   FRAMERATE="20"   #フレームレート
   export LD_LIBRARY_PATH=/usr/local/lib
   ./mjpg_streamer \
      -i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" \
      -o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW"
      ↑赤字部は改行せずに1行で入力すること (エスケープが効かない?)
B MJPEG-streameの起動
      $ sudo sh start_stream.sh   ・・・スクリプトを実行
C ブラウザからmjpg-streamerへアクセス後、ID("pi")とパスワード("pistream")を入力
       http://192.168.123.1:8010    ・・アドレスが192.168.123.1の場合

【gitを利用】
@ インストール(libjpeg9はjpegイメージを読み書きするアプリ。githubユーザ登録が必要)
      $ sudo apt-get install libjpeg9-dev cmake
      $ sudo git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
      $ cd mjpg-streamer/mjpg-streamer-experimental
      $ sudo make
   このままではディレクトリー名が長いので/optディレクトリーにコピーする。
      $ cd
      $ sudo mv mjpg-streamer/mjpg-streamer-exprimental /opt/mjpg-streamer

   ※GitHubの利用にはアカウントが必要なのでここで無料のFreeプランで事前に登録しておくこと。
   ・gitの確認は、−>
      $ sudo git --version
   ・gitのインストールは−>
      $ sudo apt-get install git
A mjpg-streamerの起動(以下のコマンドを1行として入力)

      $ sudo LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/streamer/ mjpg-streamer
      -i "input_raspicam.so -fps 20 -q 50 -x 640 -y 480"
      -o "output_http.so -p 8010 -w /opt/mjpg-streamer/www"
B 起動コマンドが長いので起動用シェルスクリプト(start_stream.sh)を作成(赤字部は1行で記述
   #!/bin/bash
   
   if pgrep mjpg_streamer > /dev/null
   then
     echo "mjpg_streamer already runnning"
   else
     LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer
       -i "input_raspicam.so -fps 20 q 50 -x 640 -y 480"
       -o "output_http.so -p 8010 -w /opt/mjpg-streamer/www" > /dev/null 2>&1&

     echo "mjpg_streamer started"
   fi

      $ sudo sh start_stream.sh ・・で起動できる(実行権を付与しておく
C 自動で起動させるために、起動ファイル(rc.local)に追記する
   sudo leafpad /etc/rc.local
    ・・・
   sh /home/pi/WebCam/start_stream.sh
   exit 0

このファイル(raspiset.txt)の使い方(文字コードはUTF-8)
  @ ラズベリーパイの/home/pi/にコピー
  A leafpadなどのテキストエディッタで開く
  B 使いたいコマンドをコピーする
  C コマンドラインにペーストし実行する