ミラーレス一眼カメラを LAN に接続 ~ Raspberry Pi で作った NAPT ルーター経由

イメージ
先日購入したミラーレス一眼カメラである OLYMPUS OM-D E-M10 III の Wi-Fi 機能を使って、Raspberry Pi 3B+ で作った NAPT ルーター経由で LAN に接続したよ、って話です。思い付きでやってみた感じで、設定も比較的単純な内容なのですが、他に記事になっているようなものを見かけなかったことと、やってみて、思ったように出来たこと、出来なかったことがありますので、まとめてみたいと思います。 プロジェクトの概要 ミラーレス一眼カメラでも、最近の上位機種は、LAN ポートを持っていたりして、直接ネットワークに接続できるものもあるようです。ですが、私の持っているものも含めて、現状の多くのカメラの場合、Wi-Fi 機能があると言っても、大抵は次のような使い方を想定したものであるようです。 カメラ側が Wi-Fi アクセスポイントとして機能するため、そこに接続するスマートフォンなどは、既存のインターネットなどの接続を切断した上で、新たに接続し直す必要があります。カメラがネットワークに組み込まれるわけではなく、Wi-Fi という形を取りながらも、ピア・トゥ・ピアでの接続となります。 屋外で使う前提でいくとこの形がいいのはわからなくもないのですが、既に LAN が導入され、Wi-Fi が飛び交っているような屋内で使おうとすると、手間ばかりかかります。他の PC などでも使おうとした場合、それぞれに接続し直さなきゃいけないし、デスクトップ PC などの場合は、そもそも Wi-Fi インタフェースを持っていない場合も多いし。ノート PC などで、Wi-Fi を使っていたとしても、既存の LAN やインターネットの接続を切ってつなぎ直さなきゃなきゃならないというのは、NAS などへのアクセスもできなくなることを意味するので、たとえば、カメラから取り込んだデータを NAS に保存したい場合などだと、作業に制限が出てしまいます。 というわけで、次の図みたいにできたら、便利なんじゃないかなー、という思い付きです。調査してみたところ、カメラとスマートフォンの間の通信プロトコルは、HTTP だということも判明したので、もしかしたら WebDAV が使えるのではないか、と期待してテストはしてみたのですが、そ

2 台目の XCY X33J1900 を入手 … ハードウェアの準備と Debian Buster のインストール・シリアルコンソールの設定

既にブロードバンドルーター兼ファイアウォールみたいな感じで使っている XCY 製のベアボーン PC、X33J1900 なんですが、ほぼ同じ仕様のものを追加で購入しました。このマシン自体については、過去の記事がありますので、ご参照いただければと思います。


前の物は Amazon で購入したのですが、今回は Amazon での直販が無くなってしまった(マーケットプレイスにはあるようですが …)こともあり、中国 AliExpress で注文してみました。正直、1 ヵ月くらいかかるのは覚悟していたのですが、実際には 1 週間もかからず届き、価格もずっと安くなりました。

追加で購入した理由なんですが、
  • 我が家の通信の要なので、万が一に備え、予備機が欲しい。
  • OS のバージョンアップや設定の変更を、事前にテストする環境が欲しい。
といったところです。さしあたって、Debian が Buster にバージョンアップされたのに対応したかったのですが、予備機が無い状態だと、作業中は通常の通信が途絶えるわけで、ネットでの調べものができなくなる上に、ネットインストール用に仮の通信環境を構築しなきゃならないとか、なかなか面倒くさいことになります。しかも、万が一、トラブったりした時に、確実に元に戻せる準備も必要になります。さらに、今後、iptables から nftables への移行なんかも控えていたり、IPoE と PPPoE の比較検証なんかもやりたいとか、その度に同じような苦労するより、もう 1 台用意しちゃった方が確実だっていう感じですね。
マシンの仕様的には、一応、いろいろ検討したのですが、とりあえず、4 ポート以上のギガビット LAN とシリアルポートを備えたもので、他に適当なものが見つからなかったので、再び同じ物にした感じです。CPU(SoC)の J1900 や、4GB のメモリーも、とりあえず、1 台目で不足を感じなかったので、同じにしてしまいました。mSATA の SSD は元々使うつもりがないので、何でも良かった感じ。本当は、2.5inch HDD を内臓できるものが良かったと言えば良かったのですが、適当なものが見つからないです。他に、中のボードだけで購入できるショップもあったのですが、電源やメモリーを別途購入すると、結局、組付け済みのセットで買った方が安かったという感じです。


内容物は Amazon で買った物とほとんど同じだったのですが、AC アダプターの外見は違う物になっていました。電気的な仕様は同一で、少し、小さくなっている他、FCC の認証マークが付いていました。


ハードウェアの準備


というわけで、既に一度やっているハードなんで、同様に準備していきました。


本体、裏側にあるネジ 2 本を緩めれば、フタは簡単に開く構造なのですが、片側のネジの上に、封印シールがありました。開けなきゃどうにもならないので、気にせず、開けます。


内部。固定されている部品は、ぱっと見、1 台目とほとんど同じかと思われるのですが、オプションで選べるメモリーや SSD は、全く別のメーカーの物になってました。ちなみに、メモリーは SAMSUNG 製。SSD はとりあえず使わないので、外しました。


代わりに使う 2.5inch HDD。1TB のもので、買ってからいろいろ使い回しています。4000 円位だったと思います。


SATA のケーブル。あり合わせ。


SATA 電源のコネクター付きケーブル。これは、1 台目に使った時、二股ケーブルをちょん切って使ったので、余った片割れです。


SATA 電源の本体側ですが、5V の場合、JST(日本圧着端子)製の PH というシリーズのものです。PH にもいろいろな端子数のものがありますが、2 端子のものが使われています。定番のものなので、端子を扱っているパーツ屋さんい行けば簡単に手に入ります。通常、ハウジングと呼ばれるプラスチックでできた部分と、コンタクトと呼ばれる金属でできた接点の部分を、別に購入します。上の写真は、ハウジングで、使うのは 1 つのみです。手持ちがあったので、それを使用します。


コンタクトの方も、通常はバラの部品として売られています。ただ、この PH タイプのコンタクト、やたらに小さく、購入時に手持ちの圧着ペンチが対応しているか悩んでいたところ、リード線圧着済みの既製品が売られていたので、こちらを購入した記憶があります。こちらも手持ちがあったので、それを使用。


こんな感じで、先ほどのドライブ側のコネクターが付いたケーブルにハンダ付けして使うことにします。


あとは、コンタクトの部分を、向きを確認した上でハウジングに差し込めば OK です。


ちなみに、SATA の電源コネクターには、12V 用の線も出ていて、2.5inch の場合は使わないので、外すなり、短く切るなり、してしまってもいいわけですが、将来的に 3.5inch の HDD とかを使いたくなる場面が無いとも限らないので、とりあえず、切らずに、先端に熱収縮チューブを被せて、絶縁しておきました。


本体に挿したところ。


SATA ケーブルもつなぎます。


続いてコンソールケーブル。写真のものは、1 台目と同じもので、Amazon で購入した Cisco 互換のもの。1 台目をセットアップしたときに、Cisco 製品とは互換性がないことが判明してはいたのですが、USB 側のチップの Windows への対応実績などから、あえて同じものを用意して、1 台目と同じ対処方法で乗り切ることにしました。


使うケーブルは、コネクターに合うものなら何でもいいと思うのですが、これは、単心の KQE 線だったかな(よく使っているんですが、かなり前に買った物で、ラベルも印字も無いので、定かでないです)。


結線は、以前の記事の方に書いたのですが、二股になっている部分が 2 箇所あるので、こんな感じでハンダ付けしました。


2 本完成。


熱収縮チューブを被せておきます。


RJ45(8P8C)オスコネクター。Ethernet LAN で使われているものと同じものです。本来ですと、片側をメスにしたいところなんですが、メスコネクターとかを単品で買ったりすると高い物になるので、手持ちのオスを両側に付けることにします。


ちなみに、使う工具は、写真のようなもの。買ったのがかなり昔なので、正確な値段は忘れたのですが、プロ仕様の工具がかなりのお値段がする中、探せば安いものもあった、って感じです。これだけで、4P から 10P まで対応できるので、1 つあると、結構便利です。


両側にオスを付けたのですが、方向が紛らわしので、X33J1900 の側になる部分に、赤くて太い熱収縮チューブを通しておいて、目印にしておきました。メス - メスの延長用のコネクターは、Ethenet LAN 用の物で、ダイソーで 108 円で買った物を使います。


Debian Buster のインストール … 苦労する(笑)


ここまで準備したら、一度、旧バージョンの Stretch でもやったこと、スムーズにことは進むと思っていたのですが … Buster のインストーラーが途中で止まって、うまくいかなかったです。


現象的には、インストーラーが discover というユーティリティを起動した後に進まなくなっていたのですが、いろいろごちゃごちゃしていたところ、結局、UEFI BIOS の設定項目で、「Advanced - Miscellaneous Configuration - OS Selection」って所を「Android」に切り替えたところ、問題なくインストールできました。もともとこのオプション、1 台目の時から気にはなっていたのですが、とりあえず、デフォルトの「Windows 7」のままでも特に問題が起こらなかったため、触らないでおいたのですが、ここを切り替えないと「discover」が正常に動作しなくなったみたいです。ただ、この項目が何を意味するのかは、未だにナゾだったりします。


正常にインストールが進むようになると、上のような画面が出ました。やはり、「discover」の処理が変わったのが原因のようです。


シリアルコンソールの設定


Debian のインストールですが、最初からシリアルコンソールでのインストールが可能なのかどうかとか、よくわからないのですが、このマシンの場合、いずれにしても UEFI BIOS の設定時には、物理ディスプレーとキーボードの接続が必要なので、素直にそのままの状態でインストールしてしまった後に、シリアルコンソールに切り替えています。
手順としては、「/etc/default/grub」を編集した上で、「update-grub」コマンドを実行することになります。

/etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=console=ttyS1,115200n8

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start

#GRUB_INIT_TUNE="480 440 1"

赤字の部分が、変更部分です。最初の「GRUB_CMDLINE_LINUX」にあるのが、Linux のコンソールをシリアルデバイスである ttyS1 に切り替える記述になります。後の「GRUB_TERMINAL」が、ローダーである GRUB2 の表示をシリアルポートに切り替える記述です。この GRUB2 の serial の指定を有効にするには、UEFI BIOS でシリアルポートの IRQ や IO ポートを、AT 互換機としてのデフォルトに合わせておくことが必要になります。こちらも、詳しくは以前の記事の方をご覧ください。
「GRUB_SERIAL_COMMAND」については、シリアルポートの初期化コマンドです。


Debian Buster 準備完了


ということで、OS のインストールまではできました。とりあえず、「Debian Buster」自体が初めてなので、「Stretch」との相違点を確認した上で、ブロードバンドルーター、ファイアウォールとしての設定をしていきたいと思います。
… その前に、Ethernet ケーブル、あと 3 本かぁ、あったっけかな(笑)?

コメント

このブログの人気の投稿

ハードディスクから Raspbian Buster を起動の予定が … Raspbian Stretch を入れ直す・詳細手順の紹介

XCY X33J1900 というベアボーン PC … ルーターとして使用中