アメグラ2号のブログ

1980年代後半の古き良きビデオゲームのほか、オッサンの個人的備忘録

ラズパイゼロをいじってみた


====================================
ラズパイゼロをいじってみよう
====================================

f:id:game-allergy:20210316183033j:image
ラズパイゼロの部品を揃えて接続しようと思ったら、
あ、なんだよminiHDMIケーブルかよ!
ラズパイ4の時に購入した[microHDMI--HDMI]が使えないとは…。

仕方ないので、ディスプレイなし、ついでにLANなし、で初期設定に臨むことにした。


====================================
動作環境
====================================
Wi-Fi環境

・ラズパイZero W
電源ケーブル
・SDカード

・ノートPC


ラズパイZero Wは、
・ディスプレイ接続なし
・初回の有線LAN接続なし

そのため、ノートPCからラズパイへSSH接続してラズパイの各種設定を行う。


====================================
ラズパイはSDカードで動く
====================================
ラズパイはSDカードを読み込んで動作する。
そのため、初回は最低限必要なモノを入れる作業が必要。

以下が必要なモノ
1.OSイメージ
2.SSHファイル
3.Wi-Fi設定ファイル

本来は1だけで起動でき、起動後に設定をしていけばいいんだけど、今回はディスプレイ、LANが無いので。

(LAN付きのUSBハブをラズパイにぷっさして有線LANと接続してもいいんだけど、せっかくの機会なのでいろいろやってみようってこと)


◆OSをダウンロード
2021-01-11-raspios-buster-armhf-lite.zip…500Mくらい。
↑1番軽いOSを選択。フルサイズのものだと2GB…ゼロにはつらい。

◆SDカードをFT32でフォーマット
ラズベリーパイイメージャーでOSをSDカードへ書き込む

 

備考

以前みんな使っていたetcher?というのでも良いんだけど。やってることは同じかと。

 

WindowsでSDカードを読み込み
◆SDカードに追記
OSを入れたSDカードに、SSH接続許可、Wi-Fi設定を追加。
下記2つを、SDカードファイルの直下に置くこと

1.ssh
2.wpa_supplicant.conf


------------------------------------------------
1の作成方法
ssh.txt」というテキストファイルを新規作成し、その後に「.txt」を消す

 

備考

これだけでいいなんて、なんか不思議。


2の作成方法
適当なテキストファイルを新規作成し、下記を書き込む

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
ssid="xxxxxxxxxxxxxx"
psk="xxxxxxxxxxxxxxx"
key_mgmt=WPA-PSK
}

作成後に「wpa_supplicant.conf」とリネーム
------------------------------------------------

 

備考;

ssid="xxxxxxxxxxxxxx"は、自宅で使用しているWi-Fiの名称
psk="xxxxxxxxxxxxxxx"は、そのWi-Fiのパスワード

このファイルにWi-Fi情報を書いておけばラズパイはWi-Fiを拾ってインターネット接続をしてくれるってこと。素晴らしいね~。


====================================
ラズパイ起動
====================================
◆ラズパイ
→SDカードセット
電源ケーブルセット

◆ラズパイ電源ON

Windows cmd起動
SSH接続をする

>ssh pi@raspberrypi.local

※初期ログインパスワードは、「raspberry」

※怒られて接続できないとき
WindowsSSH設定が古い情報とかぶってる…とか。なので、怒られたパス配下の情報を削除する。
具体的には、
C:\Users\xxxx\.ssh\known_hosts
上記ファイルの内容を見てみると、、、
以前にアクセスした情報が残っており、新たに接続するにあたってフィンガープリントが違うよ~って怒られてる。
pi@raspberrypi.localの情報を削除して、
再度sshアクセスをすれば、そこでフィンガープリントを作成して、入れるようになる。


◆ラズパイ初期設定
$ sudo raspi-config

>>localization:
この辺はやっておこう

>>camera:enable
意外と忘れる。後になって「カメラが繋がらない」とかなる。


====================================
ラズパイ内のアップデート
====================================

◆アップデート
$ sudo apt update

◆アップグレード
$ sudo apt full-upgrade


====================================
motioneye関連のインストール
====================================
◆Install ffmpeg and other motion dependencies:
$ sudo apt-get install ffmpeg libmariadb3 libpq5 libmicrohttpd12

◆Install motion:
$ sudo wget https://github.com/Motion-Project/motion/releases/download/release-4.2.2/pi_buster_motion_4.2.2-1_armhf.deb
$ sudo dpkg -i pi_buster_motion_4.2.2-1_armhf.deb

◆Install the dependencies from the repositories:
$ sudo apt-get install python-pip python-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libz-dev

◆Install motioneye, which will automatically pull Python dependencies (tornado, jinja2, pillow and pycurl):
$ sudo pip install motioneye

note: If pillow installation fails, you can try installing it from official repos using
apt-get install python-pillow.

※ラズパイゼロの時はなんでか分からないけど、pillowのインストールでつまずく。
そのため、上記の通りに
$ sudo apt-get install python-pillowでやれば解決できる。

◆Prepare the configuration directory:
$ sudo mkdir -p /etc/motioneye
$ sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
$ sudo mkdir -p /var/lib/motioneye

◆Add an init script, configure it to run at startup and start the motionEye server:
$ sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable motioneye
$ sudo systemctl start motioneye

◆To upgrade to the newest version of motionEye, just issue:
$ sudo pip install motioneye --upgrade
$ sudo systemctl restart motioneye

 

====================================
感想
====================================
いろいろやってみたけど、結局はラズパイ用のモニターは無くてもなんとかなるのね。
とはいえ、ラズパイ起動の様子を一度ディスプレイで見たことがあるからこそ、ディスプレイが無くても「あ~いまこんなbootしてるかな」とか想像できるんだろうけど。一番最初はディスプレイあり、LAN接続ありでやったほうがいいよね。(そりゃそうだ)

 

以下はやってみたこと。


【ラズパイ4】
ラズベリーパイイメージャーで、motioneyeosを書き込んで、
→ラズパイにSDカードを入れて
→ラズパイに有線LANをルーターに接続して
→ラズパイにディスプレイを接続して
→起動

 

【ラズパイ4】
ラズベリーパイイメージャーで、ラズパイosを書き込んで、
→ラズパイにSDカードを入れて
→ラズパイに有線LANをルーターに接続して
→ラズパイにディスプレイを接続して
→起動
→初期設定
Wi-Fi設定
→motioneye関連のインストール


【ラズパイ4】【ラズパイゼロ】
ラズベリーパイイメージャーで、ラズパイosを書き込んで、
→SDカードにSSHファイルを追加
→SDカードにWi-Fi設定ファイルを追加
→ラズパイにSDカードを入れて
→起動

Windows cmdからSSH接続
→初期設定
→motioneye関連のインストール

 

 

さすがに慣れてきたか。

 

====================================
windows cmdで助かるコマンド
====================================
arp -a で、なんとなく情報を取得
自分のネットワーク内で接続している機器のIPアドレス、MACアドレスの情報を取得できる。

pingを片っ端から打って、arpテーブルへ情報を取得し、arp -aで最新情報を取得する。
for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.0.%i

/l…ループするよ
%i…変数
in (0,1,255)…変数が0から開始され、1ずつ進んで255まで
-w 1…待機時間1ms
-n 1…回数=1
192.168.0.%i…192.168.0.0~192.168.0.255まで、順番に1回につき1ms待機するpingをするよ~ってこと。

pingを打っても返してくれいない機器が結構ある。
そのため、pingでネットワーク内の全ての機器情報を取得できない場合がある。

それに代わりarpはその心配はほとんどない。
機器が動く前にarpでMACアドレスを確認しているので。
arpに無ければその機器は動いていない)

ただ、arpテーブルは10分くらいで削除されてしまうっぽい。
そのため、arp -a とするより、ping打ちまくってarpテーブルを作成してからarp -aで確認した方が確実に最新の情報を取得できる。

◆ipconfig /all
ここでデフフォルトゲートウェイ、DNSサーバのIPアドレスを確認するのに使う。
ラズパイのIPアドレスを固定したい場合に。

 ◆ping www.google.com

ネットにつながってっか?を確認するのに使ってる。Windows cmdでも、ラズパイLxでも同様にいける。