3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NASNEを自作してみた

Last updated at Posted at 2022-08-28

はじめに

録画したテレビ番組をスマホから見れたら便利だと思いますか?
私の妻はそう思うようで「NASNEが欲しい」と言われました。(私はそもそもあまりテレビを見ないのです。。)
NASNE とは?と思い調べてみると 「BUFFALOの製品で、テレビを録画できるNAS」 らしい。
※NAS|Network Attached Storage → ネットワーク(インターネット)経由で使えるストレージ

便利かもしれないけど、ストレージ容量2TBのモデルだと3万円くらいする。最近のHDDは2TBで1万円もしないのを考えると「自作してもいいのでは?」という考えに至りました。

やったこと

NASNE的なものを自作した。
↓(一般的な用語で言い換えると)
テレビを録画できるサーバー(= 録画サーバー)を立てた。

  • 録画サーバーでできること
    • スマホから番組表の確認、録画予約などができる
    • 録画した動画がスマホで見れる(在宅時・外出時どちらでも)
    • 4番組まで同時に録画できる!
    • 録画容量は10TB

ここで注目したいのは4番組同時録画容量10TBという点です。
ネットで調べてみると、テレビレコーダーは同時録画 2-3番組、容量 2TB程度のものが多いようです。超ハイスペックだと10TB / 8番組というものもありますが、コスパで考えると今回の自作NASNEはかなり良さそうです。

用意したもの

家にあったもの 用途 備考
USBメモリ インストールメディア 2GB
USBハブ USBハブ 4分岐
BCASカード 地デジ信号の受信 これがないとTVが見れないようになっている。(詳細はこちらをどうぞ)
買ったもの 値段 用途 備考
ノートPC 4,180 サーバー本体 ハードオフで買ったジャンク品を修理したため格安で入手できた
カードリーダー 2,098 BCASカードの読み取り
TVチューナー 12,500 地デジ信号の受信 4ch同時視聴可能
HDD (10TB) 18,736 録画データの保存 Western Digitalというメーカー

作業概要

※ 本記事は概略に絞って読みものとし、詳細手順は別記事にしたいと思います。(記事末尾参照)

Arch Linuxの導入

「サーバーといえばLinux!」という先入観と、Windowsはごちゃごちゃしてて使いづらいという印象によって、今回はOSとしてLinuxを選びました。またPCをサーバーとして使用するため、できるだけ軽量に動作するLinuxがいいなと思い探したところ、Arch Linuxというものにたどり着きました。
Arch Linuxは導入がやや難しいとのことでしたが、普段仕事でLinuxに触っていることもあり、Tryしてみました。
なんとか導入→運用できましたが、導入作業は思いの他大変でした。(おかげでLinuxへの理解は深まりました。)

HDDのセットアップ

今回は10TBの外付けHDDに録画データを保存したいので、OS導入後 HDDを接続する作業を行いました。
知っている人からすればなんてことない、「パーティションを切って → マウントして → fstabに設定して」という流れです。

sambaの導入

NASNEは録画機能だけでなくNASとしての機能も持っているため、自作NASNEを謳う以上NASの機能実装が必要です。
今回はsambaというWindowsとの互換性を持ったファイル共有システムを使いました。sambaを入れることで、WindowsPCからはもちろん スマホからもアプリを使って共有ファイルにアクセスできます。
NAS(= Network Attached Storage) なので 家の外からインターネット経由でも使えるため、さしずめ自宅クラウドストレージといったところでしょうか。(※家の外から接続するには別途Wifiルーターの設定が必要です。セキュリティの話があるのでちゃんと調べて考えるか、覚悟して使いましょう。)

録画サーバー構築

ここが本丸です。作業概要は以下の通りです。ここまで終わると自宅内ではNASNEが使える状態になります。

  1. BCASカードという地デジを見るのに必要なカードのセットアップ、動作確認をします。(ここでカードリーダーを使います。)
  2. mirakurun(テレビ信号を処理するチューナー機能のソフトウェア)を導入します。今回は奮発して4番組同時視聴できるチューナー(物理)を買ったのでmirakurunで4番組を同時に処理できます。
  3. 諸々必要なパッケージの導入をします。nodejs、mysqlその他諸々です。
  4. EPGStationが使うデータベースの作成とユーザー設定を行います。どうやら番組情報や録画予約の情報などがこのDBに記録される様です。録画したデータは普通のファイルで保管されてました。
  5. EPGStation(録画管理用のソフトウェア)を導入します。導入が完了するとWebブラウザ経由でテレビを見たり、録画、録画の視聴ができる様になります。録画する際の画質は設定ファイルを編集することで調整できます。

ファイアーウォールの設定(iptables)

セキュリティ的に不要なOSのポートは閉じておくことが望ましいので、その設定をします。
今回導入したarchlinuxではデフォルト状態では全開なので、後段のインターネット経由で接続できる様にする前に使わないポートは閉じておきます。

インターネット経由での接続設定

外出中も自作NASNEに接続したい場合の設定です(家の中で使えれば十分ということであれば不要です)。やることは大きく2つあります。

  • ルーターの設定
    これは家の外からインターネット経由で自宅内の録画サーバーに接続するための道を整備する様な作業です。設定によっては誰でも接続可能な状態になってしまうので自己責任で行いましょう。

  • DDNSの設定
    これはDynamic Domain Name System のことで、今回はフリーで使えるno-ipというものを使いました。これを使うとインターネット経由で自宅ルーターに接続する際にIPアドレスを直に指定する必要がなく、http://mynasne.comみたいにドメイン名で接続できる様になります。プロバイダーに依るかとも思いますが、家庭用ルーターに割り当てられているグローバルIPアドレスは定期的に変わる様です。そのためDDNSを設定しておくことでグローバルIPの変更にシームレスに対応できる算段です。

余談

 実はこの自作NASNEですが、元々はラズパイで構築しようと思っていました。(ググるとやってみた記事が結構あります。)しかし、私が持っていたのがraspberry pi zero wh(メモリ512MB)というもので、スペック不足で諸々のモジュールのインストールができずに断念しました。。

 仕方がないので、自宅にあったWindowsノートPCをサーバー代わりに使うことを考えました。ただPCのデータは消したくないので、USBメモリにOSを導入するという手段を取りました。一旦はうまく動いていたのですが、運用開始2週間程度でサーバーダウン!原因を探るとUSBメモリが使えなくなっていました。。(USBメモリには読み書き回数的な寿命があり、年季の入ったUSBを使っていたため、すぐに寿命が来たのかも知れません。稼働中OSが頻繁に読み書きしたんでしょう。。)

 ということで復旧作業!といっても再度USBメモリに入れるのは違うなと思い、中古PCを安く用意して導入し直しました。(今回はPC内蔵のHDDに導入しました。安いのでSSDではなくHDDなんです。。)今のところ動いていますが、スペック不足なのか同時に複数番組を再生するとちょっとカクつく様な。。CPUは初めに使っていたPCの方が断然いいので、結局USB接続のSSDなり寿命の長いストレージにOSを導入して、最初の構成に逆戻りかな。。とか考えているところです。

おわりに

我が家では「録画機能」がメインで使われていますが、「録画サーバーを作ってみたい!」方はもちろん、「自宅クラウド的なストレージシステムが欲しい!」という方のご参考になれば幸いです。

ここまで読んでくださり ありがとうございました。

関連記事

3
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?