MythTVのインストールと設定2
使用頻度がそれほど高くなく、オンデマンド起動で運用するための設定
常時起動する場合は不要
自動起動(ACPI Wakeup)及び、自動シャットダウンの抑制設定等
使用形態を考え、以下を実現する設定を施すことにした
- 録画予約によるPCの起動と自動停止
- メインテナンスやmythweb使用時の、mythbackendによる自動停止の抑制
- メインテナンス他、作業終了後の手動による停止
- クライアントPCでのMythTV BOXのリモート起動
「録画予約によるPCの起動と自動停止」
手順は
. ・BIOS設定
. ・(Linuxシステムによる)ハードウェア・クロック(RTC)アップデートの無効化
. ・mythTVの設定
1.BIOS設定
最初に、PCでこの機能がサポートさてるか確認
$ dmesg
RTC can wake from S4
...
rtc0: alarms up to one month
dmesgに上記の記述があればOK
次にBIOSの時間設定。ここではUTC(≒GMT)に設定する。
WindowsOSではローカル時間にセットするのが通例になっているので、Windowsとのデュアルブートだと問題が起きうる。ただし、このPCは録画サーバー専用であり、Linuxシステムのシングルブートなのでこの問題については割愛する。(そもそもこの録画サーバという用途でwindowsとのデュアルブートにする意味がないと思う)
2.ハードウェア・クロックのアップデートの無効化
ハードウェアクロックとはM/Bに搭載された時計のこと。
通常のディストリではシステムシャットダウン時にハードウェアクロックをアップデートする。
簡単に言うと、システム稼動時にntpで同期させたシステム時計の時間を、M/B上の時計に書き込む作業。
これが行われるとMythTVで設定された次回起動時間がキャンセルされてしまったりするので無効化する。
ubuntu9.10では /etc/init/hwclock-save.conf のexecの行をコメントにする。(他にもうひとつ方法あり)
他のディストリは上記リンク先を参照のこと。
・テスト
sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm
sudo shutdown -h new
五分後に起動できたらここまではOK
3.MythTV側の設定
mythtv-setupを起動し、一般からshutdownに関する項目(Shutdown/Wakeup Options)まで進み以下のように設定
Block shutdown:チェック
Idle shutdown timeout (secs): 1200
Max. wait for recording (min): 15
Startup before rec. (secs): 300
Wakeup time format: time_t
Command to set Wakeup Time: sudo sh -c "/usr/bin/setwakeup.sh $time"
Server halt command: sudo shutdown -h now
Pre Shutdown check-command: (この部分に関しては後述)
詳しい説明は本家wikiのUserManualで
Command to set Wakeup Timeで呼び出すsetwakeup.shの内容は
#!/bin/sh
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo $1 > /sys/class/rtc/rtc0/wakealarm
これを実行フラグを立て、/usr/bin/setwakeup.shとして保存
chmod +x setwakeup.sh
sudo cp ./setwakeup.sh /usr/bin/setwakeup.sh
mythtvに各コマンドの実行権限を与える
sudo visudo
以下を記述、保存
%mythtv ALL = NOPASSWD: /sbin/shutdown, /bin/sh, /usr/bin/setwakeup.sh
「メインテナンスやmythweb使用時の、mythbackendによる自動停止の抑制」
メインテナンスなどの為、PCを起動した時はmythbackendによる自動停止を抑制する。
myth-setupを起動。先ほど設定した[一般]→[(Shutdown/Wakeup Options)]の[Pre Shutdown check-command: ]にシャットダウン前のチェックをするスクリプトを指定する。
このスクリプトでステータス0が返ってくると、mythbackendが最終的なシャットダウン処理を開始する。
今回はこのスクリプトを仮に「myth-pre-shutdown.sh」と名付けて話を進める。
ログインユーザーが居る場合のシャットダウンの抑制
ここまでの挙げた設定をしている場合、mythfrontやmythwelcomeを起動している場合は勝手にシャットダウンされることなはい。しかし、メインテナンス作業をしている場合などは、必ずしもmythfrontやmythwelcomeを起動しているわけではない。
こう行った場合のログインユーザの有無をチェックする方法は
ACPI Wakeup(MythTV)で提示されている。
このchecklogin.shを参考にシステムへのログインユーザーが居るかをチェックをする。
mythweb使用中の自動停止の抑制
・apacheのアクセスログより、最終アクセス時間を取得し判定する
・ビデオの視聴やDL中なのど時はシャットダウンしない→eth0の転送率の取得判定
これらを記述したスクリプトを、myth_pre_shutodown.shなどとして作成し、mythtv-setupから[Pre Shutdown check-command: ]で指定しておく。
「メインテナンス他、作業終了後の手動による停止」
この為に用意されているのが、mythshutdownコマンドである
-l (シャットダウンのロック)
-u (シャットダウンのアンロック)
-t (次回録画時間を元に、システム起動時間のセット)
-x (mythtvのステータスをチェックし、シャットダウン可ならば、次回起動時間を設定してシャットダウン)
しかし、mythshutdown -xでシャットダウンしたところ、録画設定による自動起動がうまくいかない。どうもmythshutdownが/sys/class/rtc/rtc0/wakealarmに書き込む書式が適当でないようだ。
そこで、mythshutdown -t で次回起動時間をデーターベース(mythconverg)に記録させ、mythocnvergから取得したデータを書式を整えて次回起動時間を設定するスクリプトを書く必要があった。
手動でのシャットダウンには、このスクリプトを使う事にした。
グラフィカルログインの場合はmythwelcomeを起動し、"m"と押して入るメニューからシャットダウンすればよい。
クライアントPCでのPCのリモート起動
MagicBootを使う事にした。 ルーターの機能にもよるが、WANからの起動もできるようだ。
ただ、当方の環境は固定IPではなく、DynamicDNSを利用しているため、IPアドレスをいちいち確認して設定しなければならない。
これはかなり面倒なので、適当にバッチファイルを書いて省力化することにした。
→
遠隔起動用バッチファイル(WindowsXPでのみ動作確認)
MagicBootの実行ファイルと同じディレクトリに置いて使用する。
javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。
最終更新:2011年05月28日 03:33