Serverの最近のブログ記事

fedora 11 upgrade

user-pic
0

ということで、山で、山男をやっているうちに、fedora 11がリリースされていたので、2ヶ月経ったこともあり、サーバをアップグレードしてみました。

昨日の夜中に行ったところ、再起動後、SSHでログインできず。

離れたところからの作業だったので、あきらめて、本日状況を確認したところ、kernel panicを起こしていました。

どうやら同じ事象があるらしく、fedora 11の現時点での最新kernel 2.6.30.5-43.fc11.ppcは、mac mini/PPCだと、カーネルパニックを起こすようです。
また、fedoraのコミュニティを覗いてみると、2.6.29.4-167.fc11.ppcでは、正常起動していたとのこと。
よって、古いカーネルをインストールしてみました。そして、見事起動。
bug fixの履歴を見ていると、まだリリースされていないカーネルでは、このバグは修正されているようで、とりあえず、yumでカーネルをむやみにアップデートしないよう、yum.confの[main]セクションに、下記を追加する。とりあえず、間違えてアップデートして、再起動してしまい復帰できないということを防いでおく。

exclude=kernel*

余談として、kernel panicを起こすと180秒後に再起動となるとので、このサーバーは、夜の間ずっと再起動していたようです。mac miniは再起動するとボーンという再起動音がなるらしく、180秒のローテーションで、鳴り続けていたらしい・・・。


次に、アップグレードしたことで、パッケージの依存関係あたりが怪しくなっていないか確認する。
そのあたりのコマンドやら対処方法のまとめ


依存関係が無いパッケージリスト表示
package-cleanup --leaves

サポートが無いパッケージリスト表示
package-cleanup --orphans

同パッケージで、複数バージョンがインストールされてしまった場合の対処
package-cleanup --cleandupes

下記のエラーが起きた場合のアンインストールコマンド
error: %preun(パッケージ名) scriptlet failed, exit status 1

rpm -e --noscripts パッケージ名

ウェブインタフェースから他ユーザのコマンドを実行する方法

user-pic
0

apacheからwebインタフェースを介して他ユーザプロセスでコマンドを実行する方法の覚書。

/etc/sudoers

# Disable "ssh hostname sudo ", because it will show the password in clear.
# You have to run "ssh -t hostname sudo ".
#
#Defaults requiretty                  ←コメントアウト

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
apache ALL=(ALL) NOPASSWD:ALL    ←追加

PHPなら下記コマンドで、ユーザ名で指定したユーザがコマンドを実行する。
exec('sudo -u ユーザ名 コマンド', 返却値);

ちなみに、apacheが他ユーザのコマンドを実行できてしまうので、セキュリティ上問題は大いにあると思われる。

fedora 10 upgrade

user-pic
0

fedora 10がリリースされてしばらく経ちますが、ppcの環境だと、yum upgradeがyabootのコンフリクト?(必要バージョンより低いものしか提供されていない)しているのでpreupgradeをインストールできず、upgradeできませんでした。

運用しているサーバなのであまり、チャレンジャーなことはしていけないのですが、強引にfedora 10にアップグレードしました。

使用したコマンドは以下の通り。

yum clean all rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm yum -y upgrade

とりあえず、fedora 8のntftools関係のパッケージがコンフリクトを起こしましたが、使用しなさそうだったので、削除しました。

また、hdusを使用した地デジ録画で必要なpcscdデーモンが起動時にoffになっていため、自動起動するように、chkconfigにて設定変更しました。

あとはいたって快調。
ただし、fedora 8のパッケージに依存しているものが多数あるので、少々気持ち悪い部分が残る。

MRTG構築

user-pic
0

玄箱でサーバ運用していたころ、RRDToolやMRTGを使用して、サーバの情報をグラフ表示していました。
いつのころか、正常に動作しなくなり放置していましたが、たまにMacminiのFANが回りだすので、HDDの温度を定点観測しようと思います。

下記のパッケージをyumで、インストールし、snmp.confおよび、mrtg.cfgを編集します。
net-snmp
net-snmp-utils
mrtg

ちなみに、SNMPとお話するには、net-snmp-utilsパッケージに入っているsnmpwalkを使用します。
ちなみに、管理情報を取得するには、snmp.confでグループ設定が必要。

出来上がったページは下記の通り。
MRTG

RRDToolはMRTGより負荷が少ないらしいですが、設定が面倒なのと、Macminiはそれほどひ弱ではないため、今回はMRTGのみで構築しました。
現在、CPUとMemoryの空き状態、HDDの温度が観測できます。そのほかにもトラフィック量や、Disk IO、Disk領域の使用具合などをグラフ化できますが、今回はそれほど必要ではないため割愛しています。

ffmpegのエンコーディング速度

user-pic
0

現在本サーバは、Macminiで運用されています。
環境は、Fedora 9/PPC Motorola MPC7447A(PowerPC G4) 1.42GHz / Mem1G。
この環境で、地デジのtsファイルを、PSPの720x480 最高解像度で再圧縮すると30分の動画ファイルが、約2時間30分。夜間バッチ化すればまあいいかもしれませんが、単純計算で、寝ているうちに2時間分のtsファイルをエンコーディングできません。

PSP slimでテレビ出力を考えなければ480x272で十分なので、解像度を落したほうがいいかもしれませんが・・・。

また、Core2 Duoの2.66GHzのWindowsマシンで、http://arrozcru.no-ip.org/ffmpeg_builds/で配布されているffmpegバイナリを使用し、同じオプションでエンコーディングを行ったところ、30分のtsファイルが30分。要するに再生時間と同じ時間でエンコーディング可能でした。
やはり動画エンコーディングは、高スペックのマシンで行うに限りますね。
ただし、上記のwindows用バイナリだと、aacの音声部分でエラーが起きているようで、音声が再生できませんでした。

次のネタとしては、DviXへエンコーディングして、mediatomb + PS3で再生を行いたかったのですが、エンコーディングに時間がかかりすぎると思われるので、ボツです。
ちなみに、ffmpegでXviD(libxvid)でエンコーディングし、-vtagオプションでFourCCをDX50に指定するとDivXとして動画再生できる可能性があるということです。
1280x720の高解像度だと32インチのディスプレイでもストレスなく見れる画質となるので、それを実現したかったのですが。。

ffmpegを使って地デジtsファイルからPSPで再生可能な高画質ファイルを作成する

user-pic
0

長い題名ですが、覚書。
いろいろなサイトを参考にさせていただきましたが、一発でこれといったものがなかったので、いろいろ組み合わせました。
-flags以降を省略したところ再生できなかったため、とりあえずネタを頂いたサイトで付けていたオプションをすべて付けていますが、相当時間が掛かります。
省略可能なオプションはどれだろう。

いろんなオプションが付くと体感画質が落ちたので、(ファイルの容量も半分になった)却下。

ffmpeg -i $INPUT_TS -vcodec libx264 -s 720x480 -aspect 16:9 -r 29.97 -acodec libfaac -ar 48000 -b 768k -ab 128k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs+brdo -me umh -subq 7 -trellis 2 -bidir_refine 1 -refs 2 -bf 1 -b_strategy 1 -coder 1 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 768k -maxrate 4k -bufsize 4k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 21 $OUTPUT_MP4 -map 0.0 -map 0.1

追記:このあたりなら、エンコーディング速度も速く、再生も可能っぽい。

ffmpeg -y -i $INPUT_TS -vcodec libx264 -s 720x480 -aspect 16:9 -r 29.97 -acodec libfaac -ar 48000 -b 384k -ac 2 -ab 128k -coder 1 -qmin 10 -level 21 -g 250 -f psp $OUTPUT_MP4 -map 0.0 -map 0.1

さらに追記:上記のコマンドだと途中で再生が途切れてしまうファイルができてしまったので、問題ない動画が作成できたコマンドを記述。

720x480バージョン

ffmpeg -y -i $INPUT_TS -vcodec libx264 -s 720x480 -aspect 16:9 -r 29.97 -acodec libfaac -ar 44100 -b 384k -ac 2 -ab 64k -coder 1 -qmin 10 -bufsize 128k -level 21 -g 250 -f psp $OUTPUT_MP4 -map 0.0 -map 0.1

480x272バージョン ビットレートを調整しただけ。

ffmpeg -y -i $INPUT_TS -vcodec libx264 -s 480x272 -aspect 16:9 -r 29.97 -acodec libfaac -ar 44100 -b 192k -ac 2 -ab 64k -coder 1 -qmin 10 -bufsize 128k -level 21 -g 250 -f psp $OUTPUT_MP4 -map 0.0 -map 0.1

こんな感じだと、再生できるファイルができました。動画再生が途中で止まってしまう原因は、音声のビットレートとサンプリングレート指定だったのか、なぞ。

Linuxでテレビ録画

user-pic
0

大学時代から早・・・年経っていますが、その頃からLinuxでテレビ録画サーバを立てることが目標としてありました。
いろいろな紆余曲折の歴史。。。

1.PC Linux + GV-BVTV5(IO-DATA)
RealProducerでテレビをネットを介して配信
→ ソフトウェアエンコーディングやらなんやらでサーバのパワーが足りず却下

2.玄箱 + Baffalo PC-MV7DX/U2
ハックで録!で録画
→ハックで録!を当時使用していたVineパッケージにマージしようとしたが動作が不安定であったため却下

3.玄箱 + PLEXTOR PX-TV402U
録画できる動画ファイルがdivxであったが、音声部分が無圧縮であるため再エンコーディングが必要だった。
しかし、当時使用していたFedora 6, 7/PPCあたりだと玄箱では、mencoderが落ちてしまい、動作不良。

4.PS3 + PLEXTOR PX-TV402U
玄箱と同様、再エンコーディングが必要。
こちらもFedora 7, 8/PPCあたりだとmencoderがまともに動かなかった?
そのまえに、PS3を常時運用する予定がなかったため却下。

そして、今回は、macmini上のFedora9/PPC + HDUS。
PC Linuxのテレビ録画が集大成となりそうな予感です。

地デジでごにょごにょなわけですが、画質もいいですし、このご時世、容量を気にしなくていいので、tsでとりあえず録画という荒業もOK。
それにしてもすごいですね。HDUSのプロトコルを解析してLinuxで動かしてしまう方々がいるということに感動です。

とりあえず今のところの構成としては下記が実現。

サーバ Macmini
OS Fedora 9/PPC
キャプチャ HDUS + SCR3310-NTTCom(B-CASのカードリーダ)
録画ソフト recfriio r4 + HDUS対応パッチ
予約ソフト vrs (MythTVはいろいろインストールする必要があるため却下)

視聴 mediatomb + PS3 と32インチのBRAVIA

とりあえず、問題点は下記の通り。
1.macminiのHDDの容量が少ない。

2.延長録画が出来ない?よね?

3.Windows PCでめぼしいDLNAクライアントがない。
(他の方は動いているらしいのですが、私の環境だとRDLNA + VLCはなぜかmediatombを認識してくれない。)

4.予約ソフトが心もとない
4-1.vrsは地デジからの番組表ではなくテレビ王国の番組表をキャッシングして文字列置換して番組表を作成しているので、テレビ王国の仕様が変わるとそれを追いかけなくてはならない。
→地デジの番組表情報を取り出して、HTML化できたらうれしい。
4-2.vrsは、地デジというかrecfriioを想定していないので、インタフェースを修正する必要がある。
逆を介せば、phpとシェルで作られているので、簡単に修正が可能というのがいい。

ちなみに今回は、環境構築のために、元にしたvrsがEUCであったので、せこせこUTF-8に修正。
番組情報もiEPGがshift-jisで記述されていてEUCにコンバートする処理が入っていたので、その部分をUTF-8にコンバートするよう文字コード指定を変えてみたり。
ごにょごにょ.sysの読み込み場所がrecfriioと同一ディレクトリではなく、呼び出し時のカレントディレクトリだった(fopenでパス指定なしのファイル名だった)ためとりあえず決め打ちとして、recfriioのソースをちょっとだけ改編したりしました。

5.録画後に、ts→divx/H.264などの再エンコードができればうれしい。

6.欲を言えば、衛星デジタルは録画したい~ (黒friioがあればいいのか~)。

まあ、間借なりにも、きれいな画像が、常時起動しているPCサーバで録画できたため非常にうれしいです。
PT1も出てくるし、今後の動向に期待です。というかLinux周りがもっと強くなって欲しいですね。
(PT1はMacminiじゃ使えない。。。というかLinuxで使える日がくるのかどうか?)

このアーカイブについて

このページには、過去に書かれたブログ記事のうちServerカテゴリに属しているものが含まれています。

前のカテゴリはSayMySelfです。

次のカテゴリはSiteです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。