ミラーレス一眼カメラを 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 が使えるのではないか、と期待してテストはしてみたのですが、そ

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

実は、このブログの中では、以前に書いた「Raspberry Pi をハードディスクから起動してみた - 安直な発想で(笑)」という記事を見てくださっている方が多いようなのです。潜在的に、やってみたいと思っている方が多いのだと、実感するところなのですが、実は、つい先日、コピペミスで、肝心な所に間違いがあるのを見つけたり、元々が結果の紹介で、手順の詳細が書かれていなかったりで、いつか改めて、手順の詳細をまとめようと思っていたのでした。
さて、今回、本家 Debian に先駆けて Raspbian Buster が出たとのことで、いい機会なので、改めてインストール・設定しつつ、スクリーンショットとか撮ったりして、新たな記事にしよう … と思っていたのですが、結論から言えば、とりあえず Stretch に戻しました。これは、おそらく、現時点の Buster 用のリポジトリの問題だと思われるのですが、日本語変換機能がインストールされなかったり、一部のアプリケーションソフトのインストールができなかったりという問題が出たからです。おそらく、パッケージ自体の問題ではなさそうなので、しばらくすると直る可能性もあると思うのですが、一時的とはいえ端末が使えなくなってしまうのも困るので、とりあえず、Stretch を入れ直したわけです。ただ、改めて両方やってみて、手順的にはほぼ同一だということも判明し、現時点で記事にしても、将来に渡って資料として有用だろうと判断しました。

さて、今回の対象は、こちらのマシンです。


これ、2 年ほど前に DIY したものなのですが、自立型コンピュータです。脚付きっていうのは、私の場合、生活スタイルに溶け込んでくれていまして、キッチンなどで、大活躍しています。作った当初は、Raspberry Pi 3B、先日 3B+ に換装しました。で、作った当初から、たまたま別の所で使っていた後、取り外されて余っていた 3.5inch 3TB の HDD があったので、それを搭載していたのですが、今頃になって、この 3TB をちょっと別の用途で使いたくなり、2.5inch 1TB のものに取り替えた上で、micro SD カードからではなく、直接 HDD から起動するように変更し、合わせて OS も Raspbian Buster にしようというのが、当初の計画です。先のように、結局、Raspbian Stretch を入れ直したわけですが、HDD の換装と、micro SD を使わない直接 HDD からの起動には、予定通り変更しています。
なお、今回の作業は、全て、Raspberry Pi 上で行いましたが、ダウンロードするファイルが 2GB 程、圧縮を展開したファイルが 5GB 近くありましたので、作業スペースは必要です。容量の小さな micro SD カードしか使っていないような場合、USB メモリ等を使って、作業スペースを確保する必要があるかと思います。


まずは現状のまま下準備


Raspberry Pi 3B+ 以降、基本的に、USB デバイスからの起動は、デフォルトの状態で可能なのですが、HDD から起動させようとした場合、起動デバイス検索時のタイムアウトの関係で、起動できないことがあることが判明しており、このタイムアウトを伸ばす設定をしておくことにします。デフォルトの状態が 2 秒、設定すると 5 秒になるということです。これ、CPU の OTP(One Time Programing)での設定になるので、一度設定してしまうと戻せないのですが、起動デバイスとして SD カードを使った場合は関係ないですし、USB デバイスから起動する場合でも、デバイスを優先順位の高いポートにセットすることで、無用な待ち時間は回避できそうなので、大きな問題はないと思われます。

現状の確認方法です。まずは、ターミナルウィンドウの起動。


ここをクリックします。コマンドラインプロンプトとか、苦手な方も多いと思いますし、私としても、今風にやるなら GUI だという認識を持っているのですが、ここしばらくはお許しを。
ウィンドウが表示されたら、下記のように入力して、リターンを押します。


これ、実際には 2 つのコマンドを、パイプ「|」でつなげたものなのですが、このあたりの話は、とりあえずおいておいて、実行すると、次のような表示が出るかと思います。


表示される値は違うかもしれませんが、この例だと、右から 7 桁目が「2」になっています。ここが偶数の場合は、まだ、タイムアウトの設定がなされていない状態です。ただ、偶数といっても 16 進数での偶数なので「0・2・4・6・8・a・c・e」のいずれかの場合になります。それ以外は、奇数となります。
では、タイムアウトを延長する設定をしてみます。

ターミナルウィンドウより、続けて


のように入力すると、


こんな感じのエディターの画面が開きますから、

program_usb_boot_timeout=1

の一行を書き加えます。通常は、どこに加えても同じで、一番最後にでも書き加えれば大丈夫なんですが、実は、このファイル、条件によっては実行されない行をつくることもできます。実行されない場所に書き加えても意味がないので、正確にやろうとすると、現状のファイルの解析が必要なのですが、少なくとも、Raspbian Stretch のデフォルトの設定では、条件付けは使っていないみたいなので、最後にでも書き加えれば大丈夫です。
書き加えたら、「ファイル」メニューより「保存」をしておきます。

ここで、1 度、Raspberry Pi を再起動してみます。
そして、先ほどと同じコマンドを実行します。


右から 7 桁目、先程は「2」だった場所が「3」に変わりました(1 増えるのが仕様)。これで、タイムアウトが延長されています。

インストールイメージのダウンロード


公式のダウンロードページはこちらなのですが、現時点では、Raspbian Buster になっています。Buster をインストールする場合はこちらからすればいいわけですが、Stretch をインストールしたい場合は、別の場所を探さなければなりません。今回使うのは、「with desktop and recommended software」のパッケージです。私自身は、以前にダウンロードしたファイルを保存してあったのでそれを使いましたが、無い場合は、検索等で探すことになります。ちなみに、Stretch の最終パッケージバージョンは「2019-04-08-raspbian-stretch-full.zip」というファイル名の物かと思われます。
あと、Torrent か ZIP かですが、Torrent が使える・使ってもいいよ、って方は、Torrent でもいいかと思うのですが、私の現状の環境では、そもそも Torrent が使えないので、ZIP の一択でした。この話がよくわからないという方は、ZIP を選んでおけば問題はないのですが、ただ、時間はかかります。


ダウンロードが終わったら、フォルダを開き、右クリックして「指定先にファイルを展開」を選択します。好みのフォルダに展開します。


ちなみに、画面が乱れているのは、ウィンドウサイズが小さいからですので、縁をマウスでドラッグして、拡大してあげましょう。


起動ドライブの準備


新たに起動ドライブとして使う HDD です。


TOSHIBA の厚さが厚さが 9.5mm のモデルです。実は、同じ 1TB で、わずかながらこれより安く売られており、厚さが 7mm のモデルもあるのですが、実際に、どっちがいいのか、って話は、比べていないので、よくわからないです。簡易包装で売られていたバルク品で、たしか、4000 円ちょっとくらいだったと思います。ちょっとした作業などに使いまわして、ここに来てしまいました(笑)。ここで固定的に使ってしまうことになるので、また、仕入れてこようかとは思っています。

インタフェースケーブルです。



俗に「Y ケーブル」と言われているやつで、例にもれず、電源が逆流します。以前は、1 つ買って逆流することに気づき、そのまま使わずに置いてあったのですが、あえてこれを選んで、追加で買ってしまいました。というのも、電源の逆流というのは、電気的に考えると、通常ならどう考えても問題あるとは思うのですが、特定の電源と Raspberry Pi の組み合わせにおいては、特に問題が起きていないという実績。かつ、PC などではバス電源で使うこともできて、その際に相性などの問題が発生せず、性能も出ているという、これも実績。さらに調べてみると、私が持っているものも含めて、USB ハブなんかも電源が逆流するものが多いし、さらには、ちょっとしたことで使っていた HDMI の切替器なんかからも電源の逆流が発生している模様。あまりこだわり過ぎても意味がない、って感じの悟りです(笑)。ただ、この手のもの、一般的にはダメとするのが正論で、どんな組み合わせでも使えるとは限らない上に、機器破損の可能性もあるということは、頭に入れておいた方がいいのは確かです。でも、今回は、これを使うことにします(笑)。


今回は、電源も変更します。今までの 3.5inch HDD は 12V を必要としていたので、専用の AC アダプターが付いていたわけですが、2.5inch にしたおかげで、5V に 統一されました。で、この USB 電源アダプターから、全てまかなおうという計画です。ただ、これ、計 4.8A と書いてありますが、1 ポートあたりの最大は 2.4A です。Raspberry Pi 3B+ の場合、推奨が 2.5A なので、僅かに足りないと言えば足りないのですが、まぁ、様子見ですね。後々、問題が出るようだったら、変更しようかとは思うのですが、先の Y ケーブルとの相性の問題があるので、実績のあるものを使った形です。

で、これらをつなげるわけですが、Raspberry Pi 本体につなぐ USB ケーブルは、ホットプラグ、つまり、電源を入れて、OS が立ち上がった状態で、差し込んだ方がいいかと思います。つないでから電源を入れて立ち上げる方法だと、元の設定方法によっては、立ち上がらなかったり、立ち上がったとしてもデバイス名が変わってしまったりと、作業中の混乱につながるからです。

つなげた時に、何も起こらないこともありますが、場合によっては、


みたいな表示が出るかと思います。これが出る場合、HDD に既にファイルシステムが構築されていて、自動的にマウントされた状態です。ディスクイメージの書き込みの場合は、マウントされていてはダメなので、ここでは「キャンセル」を選択し、


右上の取り出しアイコンを使って、アンマウントしておきます。
システムに接続されているブロックデバイス(HDD など)を表示する方法は、以下のとおり。


デバイスにある既存のファイルシステムを消去する方法は、以下のとおりです。例では、/dev/sdb を消去しています。通常、やらなくても大丈夫なはずですが、念の為、やるのはアリだと思います。その際は、くれぐれも、自身の環境での対象を調べ、指定を間違えないように。


インストールイメージを、HDD へ書き込みます。


of= に宛先のデバイス、if= にダンロードファイルを展開して作ったインストールイメージファイルを指定します。宛先は無条件に書き換えられてしまうので、こちらも、くれぐれも間違いのないようにご注意ください。このスクリーンショットでは、インストールイメージとして Raspbian Buster を選んでいます。この if= の指定ですが、ファイルマネージャーから、右クリックで、


ってやると、パスをコピーできますから、


まで入力して、あとは、コピーしたものを貼り付ける方法が簡単です。


書き込みが完了すると、上のような表示が出ます。
ここまでできたら、一度、シャットダウンし、電源を止めた上で、実際に HDD から起動して設定を行うための接続に変更します。micro SD カードも抜いておきます
なお、起動ドライブをどの USB ポートにつなげばよいか、という点についてです。優先順位の高いポートにつないだ方が良いわけですが、以前の調査だと、向かって右下のポートが一番、優先されるという結果になっています。ただ、これについて、本体に個体差があるのかどうかという点については、まだ、調べられていないです。一応、新たな Raspberry Pi 3B+ も購入してあるので、機会ができたら、また調べたいとは思うのですが、USB メモリや、それをつなぐケーブルを 4 組用意したり、Bluetooth の設定をしたりと、意外と準備が大変なので、ついつい、後回しになってしまってます。ま、つないであるブロックデバイスが 1 つだけであれば、どこにつないでも、そこが /dev/sda になりますし、デバイス名が何になろうとも関係なくそこから起動しますから、とりあえずは、どこでも大丈夫なはずです。
HDD 以外の接続としては、キーボード、マウスが必要です。有線 LAN を使う方は、LAN ケーブルも接続しておきます。私は、WiFi を使うことにします。キーボード、マウスについては、USB ポートに接続するタイプでしたら、有線でも無線でも大丈夫だと思うのですが、とりあえず、セットアップ時は、Bluetooth 接続のものは、避けたほうがいいみたいです。

私の場合は、固定してあった古い方の 3.5inch HDD を外したついでに、Raspberry Pi 本体の配置も変更するなど、ちょっと工作が入ってます。


本体や HDD が固定してあった MDF 板ですが、作ったときに有り合わせの物を使っていて、大きさが足りなかったから、裏で継ぎ接ぎしていたことを思い出しました(笑)。


ゴムワッシャーは、元の 3.5inch HDD を固定する時に使っていたものを、そのまま流用します。2.5inch の方は、ネジの規格が M3 なので、家にあったプラ製のスペーサーを噛ませることにします。ネジ部分がちょっと長いので、ナット(これもプラ製)を入れて、調整します。3.5inch の方は、インチネジなため、日本国内だと ISO ネジに比べて、部品の入手性が悪いのですが、その点、2.5inch は、選択肢が広くて、工作しやすいですね。





まだ、ちゃんと固定していないですが、大体の位置決め。USB 電源アダプターとテーブルタップの間には、節電タップを噛ませて、スイッチの代わりにしています。左側の直接テーブルタップに刺さっているプラグは、ディスプレーモニターの電源です。
以前より、HDD が小さくなった上に、12V が不要になったので、だいぶすっきりしました。

Raspbian の初期設定


この部分は、HDD から起動する場合でも、micro SD から起動する場合と変わりないのですが、表示が英語だということもあるので、写真を載せて説明します。ただ、セットアップ前なので、まだ、スクリーンショットツールがインストールできていません。カメラで撮影したものですので、見づらいのはご了承願います。


「Next」をクリックして、セットアップを進めていきます。


国・言語・タイムゾーンの設定です。その下の「Use English language」というのは、Raspbian Buster になって追加された項目のようです。今回は、チェックせずに進めます。キーボードが US 配列の場合は、その右のチェック「Use US keyboard」のチェックが必要かと思います。



デフォルトのユーザーである「pi」のパスワードです。ちなみに、キーボードの設定がちゃんとなされていない状態でここを入力してしまうとハマることがあるので、一度、「Hide characters」のチェックを外して、内容を確認しておいた方が無難です。


この設定、以前は、セットアップが完了してから、手動で「/boot/config.txt」を編集して設定しなければならなかったように思うのですが、いつからか、初期設定中に設定できるようになりました。
デフォルトの状態(チェックされていない状態)だと、画面の上下左右、四方に、黒く無表示の領域が設けられます。これは、CRT を使ったテレビなど、指定の画面サイズ全体が表示できないデバイスに対応するためだと思われますが、HDMI 接続の液晶や OLED のディスプレーの場合は、その部分が残ってしまいますので、ここをチェックして、画面全体に表示されるように設定します。



WiFi の設定です。有線 LAN のみ使う場合は「Skip」を選択しますが、インターネットに接続されていない状態だと、セットアップが完了しないので、何らかの方法で、接続できるようにしておきます。


WiFi のパスワードです。


オペレーティングシステムのアップデートということなのですが、日本語入力環境等は、ここでセットアップされるようなので、スキップせずに、必ず「Next」で進める必要があります。


ということで、「Next」で進めたのですが、Raspbian Buster で 2019/07/03 時点だと、上記のような表示が出てしまいました。一度は手動でリポジトリのアップデートとか試みたのですが、冒頭に書いたように、あきらめて、とりあえず、Raspbian Stretch に戻して入れ直すことにしました。ごちゃごちゃするより、待てば直ることのように思いますから。

というわけで、HDD へのインストールイメージの書き込みから Raspbian Storetch にしてやり直したわけですが、手順は、ほとんど同じです。


もう一度、micro SD カードと、元の 3.5inch HDD をつなぎ直して、起動し、やり直している図(笑)。
以下は Raspbian Storetch でやり直した時のものになります。


今度は、ちゃんと進行しました。ここで、日本語入力環境がインストールされている模様。このアップデートの部分は、時期にもよるかと思いますが、結構な時間がかかります。
ちなみに、ちょっとしたテスト環境が欲しいときにこれだと時間ばかりかかりますので、私の場合、サンドボックス用の環境を作った上で、その HDD の内容を PC Linux の環境にバックアップしておき、必要なときにすぐさま HDD に戻して、テスト用の Raspberry Pi が起動できるようにしていました。ただ、それ用に使っていた 2.5inch HDD を今回、組み込んで使ってしまった(笑)ので、また、買ってこようかと思っています。変換ケーブルが USB 3.0 対応の物を使っているのも、PC Linux から高速に書き込めるからだったりします。この環境は、また、構築しようと思いますので、別の記事にでもできたらと思っています。


正常に完了すると、こんな表示になります。「Restart」をクリックして、再起動します。

その他の設定


以上で、普通にデスクトップ環境として Raspberry Pi が使えるはずですが、さらに快適に使うための設定を紹介して行きます。


まずは、メニューから設定アプリを起動します。


「システム」タブです。
まず、「ホスト名」ですが、デフォルトは「raspberrypi」です。セグメント内に Raspberry Pi が 1 台だけの場合は変更しなくても大丈夫ですが、複数ある場合、衝突すると、後々、困ることがあるので、変更しておきました。もちろん、規定に沿った文字列であれば、好みのもので大丈夫です。
「現在のユーザとしてログインする」というのは、いわゆる、オートログインです。セットアップ直後の状態だと、起動後に「pi」というユーザーで自動的にログインした状態になります。好みですが、私の場合、この端末では日常的に別のユーザーでログインして使っているので、ここのチェックを外しました。


「パフォーマンス」タブです。
搭載されたメモリーのうち、何 MB を GPU に割り当てるか、という設定です。最適値は、画面のサイズやハードウェアデコードを使うかどうかなどにより変わるかと思うのですが、私の場合は、256(MB)に設定しました。

設定後は、再起動する必要があります。


ログイン画面が表示されるようになりました。パスワードを入力して、ログインします。

続いて、「/boot/config.txt」に追加の設定をします。このファイルの開き方は、この記事の一番最初で行った方法と同じなので省略しますが、私は、以下の赤字の部分を設定しました。

        :
        :
Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
# ---- Use iqaudio-dacplus
#dtparam=audio=on
dtoverlay=iqaudio-dacplus

gpu_mem=256

# -------- Special Settings --------
hdmi_blanking=1
decode_MPG2=0x********
decode_WVC1=0x********

「# ---- Use iqaudio-dacplus」以下の 3 行は、デフォルトのオーディオを無効にして、オプションのサウンドカードを有効にする設定です。こちらは、サウンドカードごとに異なるので、使う場合には、それぞれの資料をご参照ください。デフォルトのオーディオを使う場合には、変更の必要がありません。

「hdmi_blanking=1」は、スリープ状態になった時に、HDMI を OFF にするための設定です。デフォルトの状態だと、スリープ状態になった時に、画面は黒くなりますが、HDMI 出力は有効のままなので、ディスプレーモニターが省電力モードに入れません。ディスプレー側の対応具合もあるかと思うのですが、私の使っている物は、この設定でうまく機能しています。なお、この件について、ネットで検索すると、古めの情報が数多くヒットするのですが、少なくとも、現行の Raspbian では、まず、ここを試してみることをおすすめします。

「decode_MPG2=0x********」と「decode_WVC1=0x********」(「*」の部分は伏せ字とさせていただきました)ですが、これは GPU のハードウェアアクセラレーションを使うための設定です。これを使うためには、デコーダーのライセンスを購入する必要があり、そのライセンスは SoC のシリアル番号ごとです。値段も高いものではなく、一度購入すれば、OS には依存なく使えます。
ただ、この購入ページは、現状、英語だけみたいなんで、敷居が高いという話も聞きます。なので、機会があれば、別に記事にしてみようかと思っています。実際のところ、家では数多い Raspberry Pi が稼働しているのですが、ほとんどがサーバーの設定なので、このライセンスを必要としていないんですよね。ワークステーションとして使っているのは、テスト用を除けば、1 台のみです。先に述べたように、1 度購入してしまえばハードウェアが変わらない限り使い続けられるので、次に購入するのは、Raspberyy Pi 4B を入手できたときかな、って思っています。そういう状態なので、個人的には、「有料 = 別途購入 = 製品価格には含まれていない」というのは、納得できる内容です。
ついでに説明しておくと、この「config.txt」自体、OS とは関係がないファイルです。ご存知のように、Raspbian は Linux ディストリビューションである Debian を元にしており、無料で使える OS ですが、config.txt はそこには含まれていません。GPU のデコーダーは、チップのメーカーさんなどが絡んでいるはずであり、有償で配布されているソフトウェアということになります。

次に、メモリーのスワップ領域の設定です。


そもそも、私が Raspberry Pi に HDD をつなぐと良いと思っている最大の理由がここです。特に、日本語変換を使っている時などは、設定によって、体感速度が大きく変わります。
上のようにして、設定ファイルを開きます。

# /etc/dphys-swapfile - user settings for dphys-swapfile package
# author Neil Franklin, last modification 2010.05.05
# copyright ETH Zuerich Physics Departement
#   use under either modified/non-advertising BSD or GPL license

# this file is sourced with . so full normal sh syntax applies

# the default settings are added as commented out CONF_*=* lines


# where we want the swapfile to be, this is the default
#CONF_SWAPFILE=/var/swap

# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
#CONF_SWAPSIZE=100
CONF_SWAPSIZE=8192

# set size to computed value, this times RAM size, dynamically adapts,
#   guarantees that there is enough swap without wasting disk space on excess
#CONF_SWAPFACTOR=2

# restrict size (computed and absolute!) to maximally this limit
#   can be set to empty for no limit, but beware of filled partitions!
#   this is/was a (outdated?) 32bit kernel limit (in MBytes), do not overrun it
#   but is also sensible on 64bit to prevent filling /var or even / partition
#CONF_MAXSWAP=2048
CONF_MAXSWAP=8192

サイズを 8GB に設定しています。実は、いくつまで使われるのか、検証できていません。ま、HDD の容量の方は余裕があるので、保険的意味合いを持って、大きく設定しています。
よく、「搭載メモリーの 2 倍」とかいうこともあるのですが、この内容は、「それより大きな領域が必要になるような運用は効率が悪い」という観点に立ったものであり、「どのくらいの領域が必要か」という観点に立ったものではありません。逆に言えば、「必要なスワップ領域の半分くらいは実メモリーを搭載した方が良い」という意味であり、メモリー不足で落ちてしまうような状況なら、速度は落ちるものの、とりあえず、スワップ領域を拡大することで、回避できるはずです。
あと、システムのバックアップを取るような場合、なにも対策をしないと、このスワップ領域のためのファイルも一緒にバックアップする状況になるため、バックアップメディアにも領域が必要になったり、時間もかかります。どのようなバックアップ方法を採用するかにもよりますが、覚えておいた方がいい点になります。


メモリーの使用状況を表示するには、上のようにします。既に、GPU に割り当てるメモリーを 256MB、スワップ領域を 8GB に設定した状態での表示になります。

ファイルシステムテーブルの設定です。ここは、必須という感じでもないのですが、ハードディスクからの起動と関連した話なので、興味あったら、考えてみてください。


上のようにして、設定ファイル「/etc/fstab」を開きます。
元の状態は、次のような感じです(一部、伏せ字)。

proc            /proc           proc    defaults          0       0
PARTUUID=********-01  /boot           vfat    defaults          0       2
PARTUUID=********-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

私は、次のように変更しています。

proc        /proc   proc    defaults    0   0
/dev/sda1   /boot   vfat    defaults    0   2
/dev/sda2   /       ext4    defaults    0   1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

まず、「PARTUUID」による指定を、あえて、古くからの標準であるデバイス名に変更してしまっているのですが、この件については、HDD だからという話ではなく、説明すると長くなるので、また、別途、書こうかと思います。一応、最近の傾向としては、UUID、PARTUUID、PARTLABEL といったものを使った指定をするようになってきていて、Raspbian もそれに沿っています。私自身は、家での運用スタイルに合わせて変更したということで、ご理解ください。
上記は置いておいて、ここで触れたいのは、第 4 フィールドです。標準の状態でルートパーティションに設定されている「noatime」です。最近の Linux で標準となっているファイルシステムである ext4 の場合、機能的に「ファイルにアクセスした時刻」を記録する仕組み(atime)があります。「アクセスした」というのは、書き込みや更新に限らず、読み込みも含まれます。つまり、ファイルを書き込んだり更新したりしなくても、読み込んだだけで、デバイスとしては、時刻の書き込みが発生します。これを off にするのが「noatime」の指定ということになります。HDD などの場合は、書き込みに対する耐性が高いので、atime の指定のままでも問題ないのですが、micro SD などでこれを使うと、デバイスとしての劣化が進みます。なので、Raspberry Pi の場合は、デフォルトだと、noatime が指定されている形になっているのかと思われます。その他に、atime を必要ないことと見なして、無駄を省くために HDD などで使う場合でも noatime を指定する向きもあるのですが、一応、ext4 ファイルシステムの場合は、これが記録されているのが標準の状態とされています。考え方次第ですが、私は、HDD に関しては noatime を外して(atime の方がデフォルト)使っています。なお、最近は atime にしてもパフォーマンスへの影響が少なくなる仕組みが実装されています。

仕上げ



テーブルタップや AC アダプターの固定には、これを使いました。地が白木にとのこ塗りなんで、ちょっと痕が残ることはあるのですが、他のテープ類とかよりはいいので、あまり気にしないことにします。


ついでに、同じくダイソーの 300 円スピーカーです。キッチンで常用する用ですね。サウンドカード自体はとても良い音がするので、ヘッドフォン利用にも耐えられます。こいつの電源も USB 5V です。同じく、耐震粘着マットで固定しています。


ワークステーションとしての Raspberry Pi の性能


今回のこのブログ記事、写真の編集も含めて、全て、変更後の Raspberry Pi 3B+ で書きました。Blogger のオンラインエディターを使っています。画面サイズはフル HD です。なんだかんだ言っても、3B + ともなると、一昔前のン十万円から百万円を超えるような UNIX ワークステーションより、どこを取っても性能では上回っています。インタフェース速度に関しても、普及していた一般の SCSI-2 よりは USB 2.0 の方が早いわけだし(Wide SCSI には負けてる)。そう考えると、多くの事務作業などは、Raspberry Pi 3B+ 程度のマシンでも、十分にこと足りるんじゃないかと思う部分があります。
そんな、メモリー資源とかが高額だった頃に考え出され、今でも広く使われてるのが HDD へのスワップ(仮想メモリー)だし、逆に、HDD を前提として atime 機能を備えた ext4 ファイルシステムとかが作成されてきたわけだし。昔を思い出して設定してみたら、「Raspberry Pi って結構使える」って印象だし、「Raspberry Pi と HDD って、相性いいんじゃない?」って印象すら持ったわけです。
ぜひ、お試しあれ。

コメント

このブログの人気の投稿

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

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