SUZZ Blog

主にアーケード、レトロゲームに関するブログ

夏休みの自由研究は PT2 と Linux で地デジ録画サーバー

2011年08月07日 20時04分42秒 | PC

DSC_0284

俗に言う「鼻毛鯖」・・・今回は「髭剃鯖」だったのですが・・・と PT2 で地デジ録画サーバを作ってみました。

構成は、Express5800/S70 タイプPJ + Ubuntu 10.04 Desktop + キャラクターデバイス版PT1ドライバ + epgrec。以下のページにインストール用のスクリプトがそろっていたので、簡単に導入できてしまいました。

http://zeonic.ath.cx/pt2/index.html

 

試しに BS と地デジ2番組同時録画しながら、録画中の ts ファイルを VLC で再生してみたところ、CPU負荷は2コアとも40~50%前後だったので、全然大丈夫ですね。・・・こんなに安いのにCore i ベースのCPUでマルチコア、メモリも1GB搭載ですから、普通に使う分には十分ですね。

ただ、サーバーとして使用する前提の人が多いからか、「電源入れっぱなし」で運用する例が多いようです。私の場合は、ほぼ、録画専用マシンなので、録画時にレジュームして、録画が終わったらサスペンドする動作が理想です。

試しに Ubuntu のメニューからサスペンドさせて見ると、うまくサスペンドできずにログイン画面に戻ってしまいました。

どうやら、pt1_drv がサスペンド移行を邪魔しているようでしたので、http://kimamahitori.blog.shinobi.jp/Entry/232/ この辺を参考に /etc/pm/config.d/00sleep_module に pt1_drv を指定したところ、サスペンド・レジュームできるようになりました。

おそらく、パワーマネジメントにきちんと対応できていない PT1 ドライバのモジュールを、サスペンド・レジュームのタイミングで自動的にアンロード&ロードしてくれるのでしょう。

 

Express5800-S70:~$ cat /etc/pm/config.d/00sleep_module
SUSPEND_MODULES="pt1_drv"

 

また、2ch の「【視聴・録画】Linuxでテレビ総合5【デジタル/アナログ】」にて、


153 :login:Penguin:2011/07/25(月) 07:36:20.98 ID:Ev0FdHMH
ようやく地デジ化したので参戦。よろしく
>>61 で出てる rmmod で oops 吐く問題は、pt1_pci_cleanup の中の
class_destroy と pci_unregister_driver の順番が逆なせいじゃないかな。
unregister が先だよね?

 

162 :login:Penguin:2011/07/26(火) 09:25:59.79 ID:VDsn8s4Y
>>153
BINGO!!
順番入れ替えたらrmmodしてもoops吐かなくなった
サスペンドの時に悪さするから困ってたんだけど、これで一歩前進しそう
chardev版なんだかんだで生き延びそうだな

という話があったので、以下の変更を加えてドライバをビルド。

 

Express5800-S70:~/pt1/LATEST$ hg diff
diff -r 7662d0ecd74b driver/pt1_pci.c
--- a/driver/pt1_pci.c    Fri Nov 19 11:19:25 2010 +0900
+++ b/driver/pt1_pci.c    Sat Aug 06 03:32:46 2011 +0900
@@ -1004,8 +1004,8 @@
 
static void __exit pt1_pci_cleanup(void)
{
+    pci_unregister_driver(&pt1_driver);
     class_destroy(pt1video_class);
-    pci_unregister_driver(&pt1_driver);
}
 
module_init(pt1_pci_init);

 

最新情報が2chで拾えるあたりが、いかにもアングラっぽい感じですが・・・

あとは、自動起動と自動終了をなんとかしないといけないですね。方針としては「atq で時刻指定ジョブを参照して判断」、もしくは、「epgrecの録画予約データベースを参照して判断」でしょうかね。