初版:2020/8/15
更新:2024/11/10 (*pi5でpt3動作をしている方にリンク貼った程度です)
メンテ&トラブルシューティング
∟ 定時診断スクリプト
● 前編 now!
1.ラズパイとサーバーの概要
2.録画に必要なものを集める、購入する
3.OSのインストールとセットアップ
4.NASの構築
後編(docker-dvb版)
後編(docker-px4_drv版)
5.チューナードライバの導入
6.docker-mirakurun-epgstationの導入
後編(非docker版)
5.チューナーの導入、テスト録画
6.運用のためのツール、mirakurun、epgstation
運用実践編
7.録画管理方法
8.エンコードと再生
9.システムバックアップ
番外.まとめ版
番外.Mirakurunのチャンネル手動設定
番外.ラズパイ用ケース作成
同ジャンルの記事はQiita内外でいろんな方が書いてますが、できるだけ1からでもわかるように個人的にまとめました。(常識は人によって違うので、もちろん私が書いたのでも端折っている点がありうることはご了承ください。) 可能・必要なら適宜更新します。
・環境構築2回目以降などでおよそはわかってる→まとめ版推奨
・運用してるがトラブルに見舞われた方→メンテ&トラブルシューティング
・BS,CSが移動?して映らねえ→Mirakurunのチャンネル手動設定 ただし私も追い切れていない可能性が高いです。
・録画方針や運用例を何となく知りたい→運用実践編
録画サーバーではないラズパイの運用にも、利用できる場所はご利用ください。
0.TS抜き録画のメリット、デメリット
本題を始める前に、知らない方へ
HDDレコーダーはリモコン操作で、手軽に録画、操作できるのですが、録画した番組はDVDやBlurayなどへは9回しかコピーできません。故障した、買い替えたとかいうときはどうするのでしょうか?
TS抜きに対応しているチューナー(WindowsやLinux機)で録画すると、コピー制限無視で、自由に編集、エンコードできるので自由度が高い。録画した番組はファイルとしての扱い。
ただ、その性質上、
・実質的にパソコンが最低1台必須(環境構築やメンテに使用)になる。
・ややアングラ的な雰囲気があるのも事実で、環境を組むために必要なものを自分で集めて、ソフトウェアも自分で入れる必要がある。今でも、躓いても自己解決する精神が必要なのは否めないです。
・法律的には違法ではないといわれているが、脱法的な要素もあるので嫌う人は嫌う。
以上、注意です。
1.ラズパイとサーバーの概要
皆さんお知りではあるとは思いますが一応書いておきます。
RaspberryPi(ラズパイ)とは、シングルボードコンピュータ。超簡単に言えば省電力で小型のパソコン。パソコンとは言っても、CPUはARM系で通常のWindowsは動かない(ARM版Winは動かなくはないが非推奨)。
・ARM 省電力に強い。32/64bitあり。スマホタブレット等以外にもシングルボードコンピュータ(SBM)でも使われる。ARM用のLinux(Android含む)、M1以降のMacOS、WindowsのARM版が動作する。
・AMD64/x86 従来のWindowsPCやIntelMac、x86用Linux(Android含む)などが該当。主にWindowsを動かすものと考えましょう。サーバーでも使われる。x86が32bitアーキテクチャでAMD64はその64bit対応版、ざっくり言えばですが。
ラズパイで主に使われるのは、RaspberryPiOS(旧称Raspbian,ラズパイOSと略させてもらうぞ)というDebianベースのLinux。Linuxなのでディスプレイとキーボードマウス繋いでデスクトップとして活用も可能。ただ、低価格省電力がゆえに何もつながずサーバーとして使っている方の方が多いのでは...? また、GPIOという端子を使い、電子工作として使っている方も多いと思われる。詳しく知りたかったらググってくださいませ。
Arduinoとの違い よくラズパイと比較されるものに、Arduinoを始めとするマイコンがある。Arduinoはリアルタイム性の貢献を受けられるなどのメリットがあるがLinux等の汎用OSは動かない。ラズパイとは使用目的が異なるため、どちらがいいというよりは、使い分けまたは併用が正解である。
そもそもサーバーとは 説明の必要すらない基本だが一応する。サーバーとは特定の機能を提供するもの(人間がサービスを直接受け取る場合はサーバーと呼ぶかは知らない)。ホームページ、メール、SNSもネット上のサーバーがサービスを提供している。自宅や法人ではNAS(共有HDD)が身近だろうか。ほとんどの場合常時起動している端末で稼働している。
この記事では、4世代目となるラズパイ4を使って地上波録画サーバーを作る。チューナーはTS抜きと言われるコピーガードを無視して録画できるものを使う。一部法律的なことを気にする方もいらっしゃると思いますが、私は個人利用の範囲に収めることを厳守すれば問題ないと考えています。
ラズパイ録画サーバーの特徴
・省電力(HDDレコーダー≒?ラズパイ<普通のデスクトップ)
・チューナー数は構成次第だが、HDDレコーダーはモデルが限られるのに対しこちらはチューナーだけ変える、増やすでいいのはメリット。
★ 録画ファイルのコピーが自在(TS抜きチューナー。市販HDDレコーダーではダビング10=孫コピー不可)
∟ だからといって、録画した動画をネットにアップはダメ。
・Wifiなど経由でスマホ(機種制限なし)から再生等可能
・リアルタイム視聴も可能。もちろん市販HDDレコーダーでも可能だが、こちらは家の中どこでもスマホタブレットで見れる点は強い。
・視聴側の環境次第ではあるが、倍速再生は自在(TvTsestの場合0.2倍から8倍まで0.1倍刻みで可能)、CM飛ばしは条件付き(エンコしないとチャプター付加は無理だったはず。ただし10秒とか15秒とか2分とか自在にスキップボタンを作れる)。同様の機能について市販HDDレコーダーは、CM飛ばしは優秀だが、倍速は倍率が固定の場合が多い点がイマイチ。
・キーワード録画は強み。割といくらでもキーワードを設定できるので、過去に見たドラマ等を設定しておけば、拾って録画される可能性もある。HDDレコーダーは数の制限数が割ときついんじゃないかな..?
・サーバーなので、普段使っているパソコン等を稼働させておく必要はない。電気代の観点で〇。
・NASを兼ねられる(NAS機能だけなら市販NASの方が優秀では。ついで機能と考えよう)
★ ただし、作成は結構面倒
・原則、リモコン操作はできない。予約や再生はパソコン、スマホ等からのアクセスする。
∟ラズパイ自体をテレビ等につないで再生も可能だが、性能や発熱の都合上、再生は別端末からを強く推奨したい。
∟これ、意外と大きい欠点。というのは作った人以外が管理するのにいろいろ説明することがあるので、長期出張中や最悪入院、死亡等により残された家族等への引継ぎが難儀なこと。そして、順調な時はいいが、不測のトラブルが起こった時に回復するのが手間。そこをこれらの記事で軽減できたら何よりです。
・すでにチューナーやHDD/SSDがあり流用するなら低コスト。ただし新規作成でも3万ちょい程度だったかでそんなに高くはない。
録画サーバーを作る?HDDレコーダーやほかの方法で十分?
・録画した番組をファイルとして残したい、録画は省電力サーバーでやりたい
→ という人にはこの鯖は向いています。
・ファイルとして残したい番組は1年あたり1桁程度
→ TS抜き録画の必要が少ないなら、サーバーなぞ作らず普段のPCで録画した方がいいのでは。
・手軽に録画や視聴をしたいだけ
→ そういう方はおとなしくTVの録画機能(or市販のHDDレコーダー)を使う方が適してる。
・コピーフリーとかはどうでもいいので高機能な録画機が欲しい
→ 止めはしないが、作る手間がかかるのでやめておいた方がいいと思う。
・大量の録画キーワードを登録したい
→ レコーダーのキーワード数が少ないなら、これのために録画サーバーを構築するのもアリかもしれない。
・併用は?
→ HDDレコーダーはむしろ併用は推奨してもよいくらい。リモコン操作はしやすいだろうし、機種によっては全録もある。やりやすいように併用すればよいかと。
・DVDやBlu-rayは?
→ コピフリなので、必要なら他のパソコン上でセルフサービスでエンコして好きなだけ作成してください。リモコンでパパっとということにはならないので、手軽さ重視ならコピー制限を飲んでレコーダーを推奨か。
初期費用 | 消費電力 | 作成手間 | 性能 | CPU/OS | TS抜き | 特筆 | |
---|---|---|---|---|---|---|---|
ラズパイ(SBC) | △~〇 | ◎ | △ | △ | ARM/Linux | 〇 | Pi5ならPCIe可? |
市販レコ | △ | ◎ | 不要 | 〇 | 不明 | × | 全録モデルあり |
高機能NAS | × | 〇 | 〇 | 〇 | ARM/専用OS | 〇 | PT2,3等PCIe可 |
StickPC | △~〇 | ◎ | △ | △ | x86/Win,Linux | 〇 | |
一般PC鯖 | 不定 | 不定 | △ | 不定 | x86/Win,Linux | 〇 | PT2,3等PCIe可 |
現PCで録画 | ◎ | 随時 | 〇 | ◎ | x86/Win | 〇 | 録画中は電源切れないぞ |
操作性については、TSチューナーと市販レコーダーとで一長一短。TSチューナーはリモコンは困難だがスマホのブラウザ上で即座に操作できると思えば大体あってる。
Pi鯖の電力消費はいろんな人が検証しているので要ググる。もちろんラズパイの消費電力はかなり少ない。
ラズパイ以外の録画サーバー、あるいはサーバーを用意しない
なお、同等の録画サーバーものを作る方法は他にもある。
・NAS+PT3やPLEXチューナー QNAP等のNAS上で仮想マシンを立ち上げてそこで録画する(NASのOSには直にドライバやツールを入れられない?)。PCI-Eのチューナーも可能な点、コンパクトな点などが○。Piより消費電力は多少程度は大きい?、現時点では上位機種(仮想マシン機能必須)が必要なため少々高いのが×。PT3/2を使った高性能鯖が作りたい人に向いているかも。
・ラズパイ以外の他のSBC シングルボードコンピューターはラズパイだけではない。
・スティックPC+チューナー 考え方はラズパイと同じ。Windowsにこだわるならこちら(鯖OSをWinにするならもちろんソフトウェアやドライバの選択肢も変わってくる)。Piと同じく省電力なのは○。ただしただでさえeMMC容量が小さいのにシステムに容量食う欠点も忘れずに。
・省スペースPCや今は使っていないPC+チューナー 消費電力的にはPi等より多いかもしれないが既存のマシンの有効活用として。
・サーバーを用意せず普通のWindowsPCを使う 録画は普段はHDDレコーダーを使用し、TS抜きする頻度が極端に低い場合は、上でも書いたがサーバー用意せず普段のパソコンにチューナー付けて直接録画した方がいい(詳しくは要ググるだが、TvTestとbondriver等、カードリーダー or SoftCASを用意して、番組表から録画を選べばいいだけ)。
・理論上は可能に思えるが事例を見たことがない構成 FireTVstick等のデバイス、Android搭載スマホタブレット、玄箱やTeraStationやNASNEなどのQNAPとかではないNAS、で動作させている例は見たことがない。NASNEは可能と仮定してもメリットほぼないとしても、TeraStaionとかで動かす人がいない理由はすごく難しいorラズパイで動かせばいいと思って挑戦する価値がないと思われているのか...?
2.録画に必要なものを集める、購入する
・ラズパイ4(メモリは2GB以上推奨)
∟なおラズパイ3でも可能だが3~4番組同時録画するとドロップする報告があるので注意。5での動作例はまだ知らないが普通に考えて可能でしょう、消費電力には気を付ける。
・ケース:なくてももちろん動かせるが、極力用意しましょう。ただし私は使っておらず網に括り付けていますがw 専用ケースはPi2や3用とは微妙に異なることに注意。
・冷却ファン:もちろんなくても普通に稼働する。普通に操作や録画だけならCPUはそんなに食わず、4番組同時でも30%もいかず熱くはならない(それでも60前後)。しかしファンレスでCPU100%でぶん回すと確実に80℃行くのでそういう場合はファン必須か。Pi上で再生も意外と熱くなる。
・USB-TypeCケーブル&USB電源(3.0A以上推奨)
→ ラズパイ4にはCで給電。3.0Aなくても一応は動くが不安定と言われている。不安ならググって実績ある商品を探すといいと思われ。電圧は5.0Vより5.1Vの方がいいという声もある。TypeC電源(ダイソーにもあるぞ)からTypeC-TypeCケーブルにつないでもいいし、TypeA電源(2.4Aを超える製品は少ない)からTypeA-TypeCケーブルでもいいでしょう。個人的にはON/OFFスイッチ付きがお勧めだがスイッチにこだわらずON/OFFがやりやすいとOK。なお、Cの代わりにGPIOから給電する方法もあるが私が試してもうまくいかなかった...この場合はTypeCにもデバイスつなげる(USBポートが増える)というメリットがあるらしい。
・MicroSD(8GB~32GB)HDD/SSDブートなら通常はSDは不要だが、Pi3や初期のPi4では先にブートローダーを更新するためにMicroSDブートが必要。
MicroSDからブートする運用の場合。4GBに入るOSはほぼ無い。64GB以上のSDは使えなくはないがフォーマットが面倒。そしてdocker運用すると意外と容量食うことが判明したので、最低16GB可能なら32GBを。
・USBハブセルフパワー:USBの消費電力が大きすぎる(特にHDD)ときに検討の余地あり。また、チューナーの電力逆流を防ぐ選択肢(後述)にもなる。
・同軸ケーブル
∟ 分配器(ものによっては電源も必要)
∟ 分派器(地デジとBSCSを分離。BSCS受信する場合に欲しい)
∟ アッテネーター(信号を弱める)/ブースター(信号を強める):通常は不要だが、場合によっては信号が弱すぎや強すぎで録画がうまくいかない場合もあるとのことでその時は必要になる。
・B-CASカードリーダー
チューナーに内蔵のリーダーはLinuxでほぼ使えないらしいので別途リーダーつないだ方がいい。SoftCASで運用予定の場合も一応所持を推奨。というか環境によってはカード情報のアップデート時に必要かもだし。
・HDD/SSD(USB接続):最近はSDカードの容量も増えて録画に使えないこともないが、速度面も含めHDD/SSDもあった方がいいでしょう。個人的には1TBほしい、絶対推奨しないが一応128GBでも可能。USB2.0接続でも録画自体は可能(8番組同時も大丈夫)だが、sambaでのファイルコピー速度(1GbpsLANに対してボトルネック)や電力安定の観点を考えできれば3.0↑にしておきたい。なおラズパイ4はUSBのみでNVMeやsataはないことに注意。5はPCIeはあるが。
<< HDDとSSDどちらがいいか >>
1.HDD:容量や価格では有利(3.5インチが容量上はより有利だが補助電源必要なわずらわしさはある)。平均するとSSDより壊れやすいと言われれるが、故障の前に前兆があることが多い。速度面は悪くはない。
2.SSD:sambaでのファイルコピーが高速(録画性能は変わらない)なこと、省電力なのでバスパワーが容易、製品によっては省スペース(USBメモリ並みサイズもある)。どうせLANがボトルネックになるので遅い製品でOKです。HDDより平均して壊れにくいが、壊れるときは何の前触れもなく壊れるという欠点があるので運用では注意する。寿命については、例えば10時間/日くらい録画しても6Gx10*365で21.9T/年なので100TBWとしても5年かかる。容量単価は基本下がるので消耗品と割り切りましょう。
SSDブートは起動も速いが、データとシステムを同じSSDに入れるのはトラブル時の融通が利きにくい欠点もあるのでそこは注意で(後述)。
3.LAN上のNASに保存:別途NASを持っているならそちらに直接保存すればHDDいらないじゃんという案もあるかもしれません。が、これは絶対に勧めません。なぜなら、NASに障害が起こった時だけでなく、ルーターが一時的に不通になった場合もその部分の録画が撮れないからです。NASと別途直結LANケーブルをつければルーターのリスクは回避できますが、それはそれで面倒なのでおとなしくストレージを付けるのが無難でしょう。
・MicroHDMIケーブル&ディスプレイ(or TV):ディスプレイがなくてもネットワーク経由で他のマシンからSSH等で操作ので不要といえば不要だが、慣れるまではトラブル対策のためにディスプレイがあった方がいい。ラズパイ4側はMicroHDMI、ディスプレイ側はHDMI。HDMIケーブル+変換ケーブル(大きめのダイソーで売っている)でもよい。(一方、ラズパイゼロはMicroではなくmini。紛らわしい...)
・作業用のパソコン、閲覧用スマホタブレット、FireTVなどのプレイヤー:OSをSDに書き込んだりSSH等でこちらから操作したり。インストール済みのSDを買ってPiにマウスキーボード付けるっていうなら不要だが、パソコンないのにPi買う人はほぼいないのでは。OSはW/M/LどれでもOK。あと、閲覧するためのスマホタブレットかあるいはFireTV等のプレイヤーが全くない環境でも使えますが、メリットが薄くなりますね。
・LANケーブル:無線のみでつなぐなら不要だが、経験上LAN越し再生が止まることあり。配線上問題なければ個人的には有線推奨(速度もあるが主に通信が安定するという理由)。1Gbps対応していればOK。100MbpsでもLAN越し再生は可能だがファイルコピー遅すぎて非推奨。
TS抜きチューナー(USB接続:推奨)
現状、ラズパイの場合はUSB接続限定
PX-S1UD:地デジ1局録画。スティックタイプ。個人的には、録画が重なるケースを考え複数欲しいし、2~3くらいなら確かにS1UD複数の方が安いものの、配線が複雑になることなど考えるとQ1UDを使った方がいいのでは?と思う。
PX-M1UR/PX-S1UR:最近出た1局スティックタイプで、MiniBCasリーダー内蔵。ただその割に無駄に高いので現状ではメリットなさそうです。
PX-Q1UD:地デジ最大4局まで録画可能。スティックタイプ。外部電源もある(詳しくは後述)
∟ 地上波のみならお勧め。解説例として使用する
PX-W3U4:地デジ2+BSCS2可能。本体はやや大きい
PX-Q3U4:地デジ4+BSCS4可能。本体は同様大きい
TS抜きチューナー(内部的にはUSB:面倒だが可能)
PCIe接続に見えるが内部的にはUSB接続なもの。面倒だが可能
PX-MLT5PE:地BSCS合計5チャンネル。PCIe(ロープロ)用だが信号はUSBのため使おうと思えば可能。
∟ 比較的コンパクトで、夕方のニュースを同時録画とかBS/CSも行けるので便利、だが必要なハードを見極め、ケースも自作必須なのでそこは注意。
PX-MLT8PE:地BSCS合計8チャンネル。同様にPCIe(こちらはフルハイト)。内部USBが2つあるが占領するポートは1つで済む。8チャンネル同時録画は消費電力的にも意外とある(本来マザボからの給電を想定した作りですし)ので、MLT5で済むなら無理にこちらにしない方がいいかも。
DTV02A-4TS-P:PX-MLT5PEの4チューナー版。MLT5PEの下位互換だが安ければ選択肢になりうるか。
これらマルチチューナーは、地デジ複数局録画をしたい時間、BSCSで重なる時間がある場合など特に有効。USB接続版製品がないので、あえてこれらを採用したい方もまぁまぁいるかもしれません。
DTV02-5T-P:地デジx5
Q1UDがありゃいいんじゃないか?
PX-Q3PE4:地デジ4+BSCS4
PX-W3PE4:地デジ2+BSCS2
それぞれUSB接続版ともいえるPX-Q3U4、PX-W3U4があるので、ラズパイのために新規で買う必要性はほぼ皆無(可能な限りコンパクトにしたい場合はありか)。他からの流用なら意味はまぁあるかも。
TS抜きチューナー(PCIe接続:4までは不可能、5は動作事例一応あり)
PX-W3PE5:地デジ2+BSCS2
PX-Q3PE5:地デジ4+BSCS4
Pi4まではPCIe接続のチューナーは現状使えない(厳密には使う方法もあるが非実用的)。
PT1,2,3:いわずと知れた高品質ボード。究極の録画品質(ドロップを全く許さない)なら必須(生産終了で高騰)だが、実用レベルならPlexで十分(私が見る限りPlexは数分に1ドロップとかはあるが、見ても全く分からない)。1,2は旧PCI接続(PCIe変換可能)、3はPCIeでの接続。
Pi5については、PT3を動作させる検証をしている方がおられました↓
組立て方(USB配置例)
まぁご自由にではありますが、一例として。
・USBtypeCは給電。
・USB3.xの2つ(青):HDD/SSD用に一つ、もう一つは空でもなんでも
・USB2.0の2つ:チューナー、B-CASカードリーダー(softcas使用時は空き)
PX-Q1UDの場合
Pi直結補助電源なし(USB端子が2.0で最大電力は500mA)でも動作はするが、使用状況、同時録画数によっては電力不足を起こす(同じような録画でも起きる場合と起きない場合があり、Pi上の電力状況表示コマンドには反映されないので原因特定が困難だった。2番組だと大丈夫、3番組でも確か大丈夫だったはず。経験上4番組同時するとおかしくなるのでそこらへんが境界?)。そのため、本格的に実用する際は補助電源は基本つけた方がいいと思われる(おそらく複数番組録画/視聴時の問題なので、環境を作っている最中、録画を始める前は補助電源は不要)。
ただし、補助電源を付けると別の問題が起きる。補助電源からチューナーを通ってPi側に電力が侵入することがおそらく要因?で、補助電源を付けているとPiの電源が入らない現象が起こる。Piを起動してから補助電源を付けることは可能。そのことを踏まえて、
1.同時録画を極力しないようにして、補助電源無しでPi直結にする。
2.Pi直結にして、Piの起動/再起動時に補助電源を外して起動後につける。
3.PiとQ1UDの間に整流ダイオードをかまして、補助電源ありで使用する。
4.PiにセルフパワーUSBハブを付け、そこにチューナーと補助電源を付ける。ACアダプタだらけだな...
上記のどれかに。
試したことないし多分自作が必要だが、できる人なら3がお勧めか。
同時録画をほとんどしないなら1でもいいが、それならS1UDでいいのでは。
一般的には2がお勧めか。この場合再起動できない(止まってしまう)ので注意。
PX-MLT5PEなどの場合
データ転送については、内部用のUSB端子を普通のUSBとつなぐために、形状変換パーツを使えば大丈夫です。例えばこんな感じの構造のケーブルで大丈夫です。
問題は電源の確保で、通常はPCI-eのところを何とか別の手段で給電しなければならない。なお通常のPCIeは12vと3.3vで給電されるが、MLT5PEの場合12vをLNB、3.3vをチューナーの動作使われる。非公式ドライバを使うのが一般的でその場合LNBが使えないので、実質3.3のみ使うことになるでしょう。
考え方その1.
ライザーカードを使う。ライザーカードへの給電はsataやペリフェラルが主に用いられ、これらは12vと5vの線がある(古くは3.3vもあった?)。一見両方必要に見えるが、私が試した限り12vだけ出力Acアダプタで行けている。おそらくライザー内部で3.3vに変換している?
↑今見たら6000円近くとやたら高くなっているが、普通は2000もあれば余裕で買えた気がするが..?ライザーについているUSBの方はPCI-eとの通信に使うので、今回は全く不要。なお、sata電源についてだが3.5inchHDDは12v+5vが必要で、2.5inchは5vだけでいいとのこと。
あとは、ライザーに電源を供給するのにどうするかだ。100v電源からペリフェラルに直に変換してくれるコンパクトなものが理想だが、在庫等によってはIDEに変換してそれをペリフェラルに変換するのも手。
考え方その2.
理論上は何らかの方法で3.3vの給電を用意してPCIeに供給すればいい、ただし私は実際に試したことがないので注意、いうまでもなく自己責任ですよ。
↑こんな感じに、変換せず伸ばしているタイプを使い半田等で直に接続すれば行けそうな気もするが?少なくともMLT5の場合は3.3vだけ用意すればよいはず。もし行いたいチャレンジャーがいたら、PCIeの仕様を見ながら正しい位置することです。
必要電力については、5ちゃんねるで報告が上がっている。
----------------------------
357名無しさん@編集中 (ワッチョイ 0f10-ZO17)2021/10/16(土) 15:39:50.10ID:EhwHLsi40>>359>>362>>596
MLT8PEの3.3Vラインの消費電流の計測が完了しました
アイドル 0.073
1 0.374
2 0.626
3 0.886
4 1.265
5 1.557
6 1.824
7 2.130
8 2.420
消費電力が多すぎ・・・どうやって電源確保するか悩んでいます
次は12Vラインの消費電流と電圧を落として動作するのか確認します
----------------------------
MLT5PEだと最大1.6Aなので、2Aあれば何とかなるのだろうか?
Q1UDで発生の逆流で起動できない現象は、MLT5では発生しない。
HDMIポートを使う場合
HDMIは2ポートあるが、1つだけ使うなら左のポートを使うように。
設置方法をどうするか?
台などに置けば間違いはないですが...人によってはこだわりポイント。
また、ケースも作るのか、またはまな板で運用するのか。既製品ケースか自作ケースか。
ネット上も探せばいろんな例はありますが、どれも平たく展開して微妙に場所を取るものばかりなのが個人的には不満です。そこで私なりの案をいくつか考えてみた。
・vesa等を用いて張り付けるテレビの裏に設置
・HDDレコーダーの上かテレビの下の隙間に平たく置く
・HDDレコーダーの横にある程度の高さ(積み上げ)で置く
・突っ張り棒につるす(工夫次第。SSD限定になりそう)
SSDは発熱が少ないので、Piやチューナー等置いてもおそらく大丈夫。
・テレビの横の壁に金網を画鋲で張り付け、そこに括り付ける。
・同軸ケーブルとチューナーを直結して、ラズパイとはUSBで延長するという手もあるかも?しれない。
・ラズパイのLEDは見えた方が便利かもしれない。一方B-CASリーダーのランプは見えなくてもよい(ただし録画が始まっているかが一目で確認できるというメリットはある)。そこを考えて配置するといいかも。
ネットワークは無線?有線?
主な速度
(ストレージや通信[シーケンシャル]、私の環境)
USB3.0理論上 → 625MB/s
SSD(SATA) → 読/書 500MB/s以上
-------↑↓十分早すぎてこれ以上どうでもいいかも?の壁-------
LAN(ギガ)理論上 → 128MB/s
HDD(USB) → 読78MB/s、書61MB/s
USB2.0理論上 → 60MB/s
-------↑↓我慢の限界?の壁-------
LAN(100Mbps) → 11MB/s
ラズパイ4無線 → 10MB/sくらい?それ以前に速度安定せず
3.OSのインストールとセットアップ
ラズパイのOSは別のマシンで調達してMicroSDカードに書き込む必要がある。もちろんWinでもMacでもLinuxでも可能。公式のディストリビューションであるRaspberry Pi OS(旧称Raspbian)は、
パッケージの種類では3種:Lite(CUI専用)、desktopまたは記載なし(GUI搭載)、desktop and recommended softwareまたはFull(いろいろ入ってるが選ぶ必要無し)がある。
bit数では2種:32bit(全ラズパイ対応),64bit(Pi3以降)がある。
そして、ラズパイOS自体のバージョンもあり、大体2年間隔で2~8月に新たなバージョンが出る(最近では12が2023年6月で次は2025年?)。ベースとなるdebianと完全に対応。
何を使えばいいかわからない時どうするかですが、64bitのdesktopの、最新よりひとつ前のバージョンが最も無難かなと思います(すでに世の中は64bit前提が多く、また最新のOSだとパッケージ変更に対応する情報がまだ少ないことが多いというのが理由)。なおラズパイ3だとスペック上は64bitは不要ですが各種コマンド等対応を考えると64にした方がいい気がします。ヘッドレスで運用する場合でもVNCで接続してGUI操作を考えると私はdesktop派です。以後、64bitのdesktop前提で説明します。
その他のOSもあるが、情報が多いのはラズパイOS(debianのマイナーチェンジ)でしょう。なお、録画鯖目的ならLibreELECも有力かもしれない。kodi特化OSで、コマンドでの細かな拡張は向かないが、独自の拡張やdocker対応、samba標準搭載など選択肢になりうる。
これらの入手は、現在は公式ツール「Raspberry Pi Imager」使用がメインだと思います。ヘッドレスブート(ディスプレイなしでセットアップ、運用)する場合も事前に設定ができます。(もちろんイメージファイルを入手しRufusなどで書き込むのも可です)
Raspberry Pi Imagerを使用する場合
特に説明することはないです。無線LANの事前設定などもできますね。
他のツールを使って書き込む場合
OSのデータをツールで書き込んだら、次にSSHを有効にするために"SSH"という名前のフォルダもしくはファイル(中身は空でOK)をbootパーティーション(FAT32(vfat)フォーマットのやつ)に置きます。あとは詳しくはいまだによくわからないが、config.txtを編集することで設定をいじれます。
# 以下をいろいろ編集する。
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# hotplug を1にする(すでに1ならそのまま)。ディスプレイ不接続だとGUIが有効にならない。
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=85
# とすると解像度は1280x720になるはず。もしくはhdmi_group=1とhdmi_mode=5かも?ここでは編集せずraspi-configの方で詳しく設定の方法がどちらかといえば推奨。
ラズパイのLANが無線ならその設定も必要になる。
wpa_supplicant.confというファイルを作成し、bootパーティーションに置く
注意:保存時のコードは"UFN8+LF"。BOMが入らないように。ファイルを別名保存して中身を空で上書きしても3バイト残る場合はBOMが入っているので保存しなおす必要がある(私はそれではまった)。間違ってBOMが入ってると無線LAN設定そのものができなくなる。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="rs500m-dba5dc-3" # ssidがrs500m-dba5dc-3の場合
psk="0123abc456" # キー(パスワード)が0123abc456の場合
}
OSの起動は、電源につなげば自動的に電源ONとなり起動します。
なお理由は不明ですが起動後SSHを受け付けない動作不明状態になることがありますが、強制的に再起動(一度電源自体を外す)すると普通に動くことがあります。
パーティションサイズを制限する
ラズパイOSは最初に起動する際にディスクいっぱいまでパーティションサイズを拡張する仕様になっています。これ、ただ単に動けばいいだけならどうでもいいのですが、トラブル発生した時のバックアップからの復帰を考えるとなかなか邪魔な仕様と私は思っています。なぜならパーティションサイズが大きいとバックアップに時間がかかり、イメージサイズも無駄に大きくなるから。というわけで、パーティションを自動拡張させない方法です。
・OSをSD等に書き込んだら、SDの残りの空白領域全域にパーティションを作る。フォーマットはしない、ドライブレターも不要なので解除する。
・この状態で起動してすると自動拡張されない。ただし残り容量が無茶少ないので、できるだけ早くgpartedなどをインストールして空のパーティションを削除しシステムのパーティションを10GB程度まで拡張する(→やっぱり10GBじゃ足りないっぽいです、16GB?)、残りの容量にデータ用パーティションを作る(ただし確実にリカバリできるように2つの間に50MBくらい?隙間を作るといいかもしれない。)
一通り設定が終わったら、電源を入れる。
Linux系OSの操作方法について
(知っている方はどうぞ飛ばしてください:まぁこれ読んでいる8割はそうでしょうけど)
Linux系のOSは、ソフトのインストールのみならず各種操作の多くをコマンドで実行する。一見難しく見えて難しいが、コピペだけなら何とかなるのでは。コマンドを実行するには、ターミナル(黒いウインドウのアレ)を開いて打つ(orペースト)する必要がある。さらに、システムに関連する命令は管理者権限が必要なので、コマンドの頭に"sudo "を加えて一時的に権限アップする必要がある。
GUI(ウインドウ操作)とCUI(コマンドのみ)。操作によっては(簡単なファイルコピー等)GUIの方がいいかもだが、自動化が必要とかパッケージのインストールなどはCUIの方が効率が良い。。なお、Linuxにおいては設定ファイルを書き換える必要が出てくる。そんな時は、コマンドを使ってテキストエディタ(何種類かある)をsudo付きで起動する必要がある。ここでは、テキストエディタはnanoを使う。もちろんviがいいとかemacsでないとという方はnanoの部分について適宜読み替えを。
他のマシンからのアクセス
ヘッドレスの時は特にだが、他のパソコンから操作するにはどうしたら?→まずはSSHで接続しましょう。VNCも有効だがraspi-configで有効化するまでの初回起動にSSHが必要になりますし。操作側のマシンにはクライアントが必要で、コマンドベースの接続:Win10なら標準でコマンドプロンプトやPowershell(スタートメニューにあるぞ)からという方法と、teratermなどのツールを使う方法があります。私は後者派。
ラズパイのIPアドレスが192.168.1.11の場合
ssh pi@192.168.1.11
またはホスト名を使いssh pi@raspberrypi.localなど
パスワードのデフォはraspberry
なお、キーが受け付けないときは
ラズパイのIPアドレスが192.168.1.11の場合
ssh-keygen -R 192.168.1.11
参考:「SSHホスト鍵が変わってるよ!」と怒られたときの対処
https://qiita.com/hnw/items/0eeee62ce403b8d6a23c
ラズパイのIPアドレスが192.168.1.11の場合
pi@192.168.1.11
またはホスト名を使いssh pi@raspberrypi.localなど
同様にパスワードのデフォはraspberry
最初に一つ戸惑うのは、ラズパイのIPアドレスに何が振られているか。
・ルーターにアクセスして調べる
・192.168.1.2、192.168.1.3などと順に試してみる
・IPアドレスをスキャンするソフトを使う(WindowsならAdvanced IP Scannerなど)
・ホスト名を使い、ssh pi@raspberrypi.localなど
また、Bonjour Service(iTunes含む)が有効状態でLANケーブル直結で行う方法もあるとのこと。
ログイン後の設定
sudo raspi-config
もしSSHが無効になっていて有効にしたいならここでONにできる。必要ならVNCを有効にする。Interface Optionsから。他には解像度や無線LANも設定できる(OSのバージョンによって多少異なるみたい)
IPアドレスの固定方法
デフォだとDHCPで勝手に振られてしまい使い勝手がよくないので固定したい。ヘッドレスブートで事前設定するにはExt4パーティーション内の書き換えが必要なので作業用マシンがLinuxの時のみ可能。Win/Macの場合はなんとかして最初に一度ログインしてから設定して固定した方がいい。
GUIで設定をする
タスクトレイのネットワークを右クリック、Wireless & Wired Network Settingsから設定する。有線はth0、無線はwlan0。ipv4address,router,dns
なおimagerで無線設定をしたまま有線でつなぐと2重にネットワークにつながってしまう。不具合等は無いのだが、無駄行為でもあるので無線を使わないなら無線を解除した方がいいかも。
CUIで設定をする(推奨)
慣れれば、意外とCUIの方が楽だし早い。固定IPアドレスを設定するためのファイルを編集。なおこの方法はdhcpcdの機能によるものなので、最新版bookwormではdhcpcdがない(代わりにNetworkManger?)っぽいのでこの方法は使えないかもしれない。その場合はsudo nmtui から編集ができる。
エディタにnanoを使う場合
sudo nano /etc/dhcpcd.conf
ファイルの中身がない場合はこの方法ではできないということ
nanoはCtrl+Oで上書き保存、Ctrl+xで閉じる。エディタ一番下のショートカットキー一覧も参照。
ファイルを開いたら、一番下までスクロールし、下記の項目を追加。
無線の場合
interface wlan0
有線はeth0にする。両方繋ぐ必要は通常はない
interface eth0
ラズパイのIPを192.168.1.11にする場合
static ip_address=192.168.1.11/24
ルーターのIPが192.168.1.1の場合
static routers=192.168.1.1
ルーターのIPが192.168.1.1の場合
static domain_name_servers=192.168.1.1
"static ip_address"は固定IPアドレス。"/24"はサブネットマスク長。
"static routers"はデフォルトゲートウェイのIPアドレス。通常はルーターのIP。
"static domain_name_servers"はDNSサーバーのIPアドレス。通常はルーターのIP。
チューンアップ
より快適な動作、無駄の削減を行う。
swap無効化
sudo swapoff --all
swapパッケージ削除.
sudo apt remove -y dphys-swapfile
swapファイルの削除.
sudo rm /var/swap
一行なら
sudo swapoff --all;sudo apt remove -y dphys-swapfile;sudo rm /var/swap
わざわざやらなくていいとは思うが、設定の最適化のためのツールchkconfigをインストールする選択肢もあり。
インストール
sudo apt-get install chkconfig
swap機能を無効化するには
sudo chkconfig dphys-swapfile off
きちんと削除されているかを確認するには
sudo chkconfig dphys-swapfile -list
通常はわざわざすることはないですが、wifiを無効化する方法(要再起動?)
無効化
sudo iwconfig wlan0 txpower off
有効化
sudo iwconfig wlan0 txpower auto
究極の省電力をしたい方くらいか?HDMI出力をOffにする
Offにする
/opt/vc/bin/tvservice --off
Onに戻す
/opt/vc/bin/tvservice -p
こちらは逐次実行が必要なので、常にOffにするには起動するたびにコマンドを打つか、cronに登録する必要がある(cronについては後編で書く予定)。
パーティションサイズ制限をする場合はここで再起動
上述のSD等でパーティション拡張を制限している場合、アップデートとかする前にパーティションサイズを再構成する必要がある。sudo reboot等で再起動してVNCでGUIを出す(IPアドレスが固定されているはずです)、でgpartedでパーティションサイズの編集をしておきましょう。
アップデート等
Raspberry Pi OSをアップデート。
これしておかないと入らないツールもあるので面倒でも必須。apt-getでもいいが、最近はaptを推奨?
sudo apt update
sudo apt upgrade -y
一行なら
sudo apt update;sudo apt upgrade -y
ディストリビューションを最新にする(非推奨:どちらかといえば人柱向けなため)
sudo rpi-update
ファームウェアのアップデート
コマンドが未インストールだった時
sudo apt install rpi-eeprom-update
アップデートが可能かを確認
sudo rpi-eeprom-update
sudo apt full-upgrade
再起動
sudo reboot
ログの最少限化。必要最少限のログ(auth , syslogとmessages)のみを記録。
sudo nano /etc/rsyslog.conf
あと、ここでは説明しないがtmpフォルダ の RAMディスク化というのもある。
SSD/HDDからの起動
実際やってみるとわかるが、システムをSSDに置いてしまうと、SDカードからの起動よりも動作が早くなり、LANを通じたMirakurunやEPGStationの反応も良くなる(ただし非力なスマホタブレットからだとあまり変わらないかも?)。
PiのSSDブートは大まかに2種類あり、一つは純粋にSSDのみブート(SDカードなし)でこちらが普通。もう一つの方法はブートとカーネルのみSDカードでシステムはSSDに置くものだがまず使わない?。
方法は、私も説明できるほどはわからないが、最近のラズパイは標準でブート対応しているはず。できない場合は各自ググってくださいw<ラズパイ HDDブート など>。ディスク構成を↓に簡単に論じてみます。
■ そもそも、ディスク構成は?
パターン1.システム専用USB-SSDを用意
SDカードの代わりにUSB_SSDを使う。融通は効くがシステムのためだけにSSDを使うのはちょいもったいない?。
パターン2.システムとデータ保存用を同ディスク異パーティション
ラズパイはOSインストールが原則ディスク丸ごとだが、上述の通りディスク拡張を阻止してシステムパーティションとデータパーティションを分けてしまう方法もある。イメージバックアップからの復元なら録画データ退避が不要、そのイメージファイルもデータパーティションに置いておけばよいなどバックアップ体制の点で優位性がある。欠点はインストール時に準備が少しだけ必要になる点が面倒なこと。
パターン3.システムパーティションに録画データも入れる
SDカードに録画するのと同じようなもんで考え方は楽で、マウント作業は一切不要。構築自体は一番楽かも。注意点は、ディスクのサイズが大きく、システムに問題が起こって修復困難な際に、データ退避→再インストールと大事になってしまう点だろうか。
パターン0.MicroSDにシステム、HDD/SSDに録画データ
おそらくもっとも一般的な構成?普通にSDからシステム起動し、録画データはマウントしたHDD/SSDに保存し、sambaのターゲットフォルダもHDD/SSDに。
SSD起動への移行は、なんだかんだ言ってラズパイ標準搭載のSDcard copierを使うのが楽。丸ごとコピーした後に、必要ならばGPartedなどを使いパーティションを編集を行いましょう。
SSDに直接インストールしてももちろん良い(今までのデータどうするかの処理を忘れずに)。インストール自体はSDカードにするのとは比較にならないほど速い。なお、rufusなどでインストールする際にはデフォだと対象が表示されないのでHDDも参照するようにしましょう。(なお該当者は少ないでしょうがrufusはParagon ExtFS for Windowsが入っているとディスクを開放してくれずインストールできないので注意)
診断について。
・SDのチェック→linux上でチェックディスクをかける
・HDD/SSDのチェック→チェックディスクとcrazydiskinfo?
・SSDのデフラグ(最適化)?
このあたりは正直私はまだわからないので、調べつつということで...
サーバー管理方法
PC上からならSSH接続やVNCからでもなんとかなると思うが、スマホからだと、やるとわかるが実際いろいろ面倒。なのでブラウザ上から管理できるツールの導入を考えてみる。
・有名なのはWebminで、割となんでもできる。サーバーのCPU、ディスク使用率の表示はもちろんのこと、よく使うコマンドを設定してワンクリックで実行も可能。
・最低限の機能?なcockpitもある。こちらも、コマンドを打って実実行する機能はある。
・cronの設定は、crontab-uiというのがある。
・インストール方法は..とりあえず今はググってw
・行いたいこと:余計なプロセスがないかをチェック(無駄に熱くなるの防止)。チューナー診断コマンド。温度表示コマンド。hdmiの有効無効コマンドが候補か?
日本語入力のセットアップ
サーバー用途の場合はPi上で日本語入力は使う必要性は低いと思います。VNCで操作中にコピペで張り付ければいいし。ただしcronを設定する時とかあると便利に思うことは個人的にはたまにありますね。
sudo apt install ibus-anthy
IME ON/OFF 切り替えは Ctrl+j なぜか半角全角キー動かず
日本語フォントはある前提です。もしなかったら↓
sudo apt install fonts-vlgothic
4.NASの構築
テレビを録画したデータはラズパイのSDカードにも書き込めるが、容量や書込み回数的に厳しく、稼働テストは可能でも現状実用にならない(2023現在2TBのSDもあり、書き込みテストしている方のブログ見る限り、速度的に少なくとも4番組までなら同時録画できそう)。そこで使いたいのが外付けHDDやSSD。上の方で書いた通り、使いたい容量や消費電力、物理的なスペースでどれを使うかは各自判断を。
録画そのものはこれで可能だが、そのままだとパソコンやスマホから見るのが超面倒(いちいちPi上でメディア外してパソコンやスマホとUSB接続、なんてやってられるかー)、なのでNAS機能は事実上必須。他端末から読むのには一般的にはSambaサーバー(SMBプロトコル、Windows標準のプロトコル)を使う。(なおLinux標準はNFS。ただ、SMBで特に問題はない)sambaも実はdocker上で動かせるが、dockerのsambaは個人的にはあまりメリットを感じない。
HDD/SSDを接続しHome以下にマウント
基本、接続しただけで外部ディスクとして認識されるが、sambaサーバーなどとして外部からもアクセスがあるなら自動的にマウントされるようにしないとだ。(HDD/SSDブートしてシステムパーティーションにそのまま録画する場合はこのマウント過程は不要。異パーティションの場合はおそらく必要) なお、フォーマット形式はExt4を推奨する。
○ Linuxネイティブファイルシステムなので親和性がよい
× 理由あってWindowsにHDDを直接つなげた際に、読み込みソフトが必要
まずは、SSDのUUIDを調べる。
デバイスの番号(?)なのでOS入れなおしても変わらない。
コマンド
ディスク情報を表示
blkid
HDD等のデバイス認識がsd1の場合
blkid /dev/sda1
UUIDが出てくる。そのUUIDをfstabに書き込む
sudo nano /etc/fstab
以下を追加
# 末尾に以下を追記する。末尾でなくてもいいが、末尾がわかりやすいため
# UUIDが8300c58c-0a67-4dd2-a34b-347c2ead8e58、
マウント先パス(中身空にすること)が/home/pi/docker-mirakurun-epgstation/recorded(dockerで入れている時のデフォルト)、
フォーマットがext4の場合
UUID=8300c58c-0a67-4dd2-a34b-347c2ead8e58 /home/pi/docker-mirakurun-epgstation/recorded defaults,nofail 0 0
このようにすると、/home/pi/docker-mirakurun-epgstation/recordedを開くと再起動後HDD/SSDのルートにアクセスする仕組みとなる。
このままだとアクセス権限によりWindowsなどから書込みができないと思われる。LAN内から無制限でアクセスできるようにするなら権限をフルにする(フルアクセス:777)。ただしセキュリティ的には甘くなる(勝手に書き換えしやすくなる)のでそこは注意。まぁ録画データしか入れないなら問題も起こりにくそうですが。
アクセス権についてはファイルシステムに記録されるものなので、OSを入れなおした場合には再度設定する必要はないはず。なお、下のコマンドはパスを通した後でないと通じない(まぁ当たり前だ)ので、必然的に再起動後になる。
chmod 777 /home/pi/docker-mirakurun-epgstation/recorded
マウント先パスが/home/pi/docker-mirakurun-epgstation/recordedの場合。却下される場合はsudoをつけてみる。
Sambaサーバーをインストール
他のマシンから録画ファイルを読めるように、sambaを導入。なお、OS自体のアップデート(上の方であった、sudo apt update;sudo apt upgrade)をかけないとエラーが出ることも。
sudo apt install samba samba-common-bin
sudo nano /etc/samba/smb.conf
ここらへんでなんか聞かれた気がするが、既定通りnoでよかったはず。
設定を行う。
share→windows等から見えるフォルダ名。とりあえずshareにしておくと無難か
path→マウント先ディレクトリ。事前にmkdirやGUIで作成しておく。
force user→常にpiユーザーとしてログインする
---例1、docker構成の標準録画先---------------
[share_rec]
comment = TV_recorded
path = /home/pi/docker-mirakurun-epgstation/recorded
public = yes
guest ok = yes
read only = no
force user = pi
----------------------------------------------
---例2、NASとして文書、写真、動画等の保存場所-----
[share_mydata]
comment = MyData
path = /home/pi/MyData
public = yes
guest ok = yes
read only = no
force user = pi
----------------------------------------------
---homeフォルダ自体をsamba上から編集。セキュリティ注意。
[share_homedir]
comment = ShareHomeDir
path = /home/pi
public = yes
guest ok = yes
read only = no
force user = pi
----------------------------------------------
疑問:どのフォルダを共有するべきか?
→軽く調べてみても一般的な解は不明。今のところの私の案は、
1. docker-mirakurun-epgstationのデフォルト録画フォルダ /home/pi/docker-mirakurun-epgstation/recordedを登録する。FireTVなど再生専用端末からは基本ここを見ればよいだろうか
2. NASとしてのファイル置き場。場所の決まりはないと思うが、個人的には、piフォルダの下にMyDataという感じでフォルダを作ればいいかなと。ほかにDocumentsフォルダを使うのもありか。さらにそこに1のrecordedフォルダをシンボリックリンクすればさらに使い勝手がよさそう。
3. home/piフォルダそのものを共有するのも一つの手ではあるが、セキュリティ的にどうなんだろうか?
余談だが、最近のWin10以上ではデフォではSMB1が無効化される。SMB1使用の市販の古めのNASの場合Win10のSMB1機能を有効にする必要がある。Sambaがver3.6以上(ファームウェアのバージョンではない)でSMB2対応。
-----------------------------
メモ・引用
https://pandaignis.com/wp/33879.html
覚書】sambaのの設定変更を再起動なしに反映させる【Linux】
2018.06.08
sambaの各デーモンの設定ファイル読込みコマンド
sudo smbcontrol smbd reload-config
sudo smbcontrol nmbd reload-config
sudo smbcontrol winbindd reload-config
で、サービスを停止することなしにsmb.confの読み込み処理を実行させられる。
-----------------------------
Sambaクライアントをインストール
Piを含むLinuxからSambaサーバーにアクセスするときはSambaクライアントのインストールが必要だが、sambaインストール時にクライアント機能も入ったはず。
NAS等sambaサーバーへのアクセス
sambaサーバーへのアクセスは、Windowsならipアドレスを指定してフォルダを開く。ほとんどの方ご存知でしょうがエクスプローラーなどでパスに
\\192.168.1.11\
などと入力(*エクスプローラー上では円マークで表示されるはず。Qiitaではなぜかバックスラッシュになる...)。ショートカットに登録しておくといいでしょう。Androidならネットワーク対応のファイラーを入れておきたい。Android以外のLinuxからの場合、smbプロトコル smb://192.168.1.11/ でアクセスできたはず。
この後は後編、チューナー操作は状況によりやり方が複数
S1UDやQ1UD等dvb系デバイスを使っている方は基本こちらか
後編(docker-dvb版)
それ以外の多くのUSB接続、似非PCIe接続はこちら
後編(docker-px4_drv版)
ちょい古い?方法の、dockerを使わない方法。
後編(非docker版)