トップ 一覧 検索 ヘルプ RSS ログイン

computer/PTxの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
FreeBSDでPT1/PT2を使用して録画環境を立ち上げるためのメモ。

!!!ハードウェア関連の準備

!!必要ハードウェア
*FreeBSD機
**i386もしくはamd64で、バージョンは8.0-RELEASE以降必須。
***実働機の例→[PTserver|/~tosy/computer/PTserver.html]
**現時点の実動機のdmesg抜粋
 FreeBSD 8.2-STABLE #7: Wed Mar 30 15:08:51 JST 2011
     tosy@wig.nu:/usr/obj/usr/src/sys/YUA amd64
 CPU: AMD Athlon(tm) II Neo N36L Dual-Core Processor (1297.84-MHz K8-class CPU)
 real memory  = 4294967296 (4096 MB)
 avail memory = 3981905920 (3797 MB)
 ad1: 38166MB <INTEL SSDSA2M040G2GC 2CV102HD> at ata0-slave UDMA133 SATA
 ad4: 1907729MB <WDC WD20EARS-00MVWB0 51.0AB51> at ata2-master UDMA100 SATA 3Gb/s
 ad6: 1907729MB <WDC WD20EARS-00MVWB0 51.0AB51> at ata3-master UDMA100 SATA 3Gb/s
 ad8: 1907729MB <WDC WD20EARS-00MVWB0 51.0AB51> at ata4-master UDMA100 SATA 3Gb/s
 ad10: 1907729MB <WDC WD20EARS-00MVWB0 51.0AB51> at ata5-master UDMA100 SATA 3Gb/s

*PT1もしくはPT2
**主賓:)

*スマートカードリーダ
**LinuxやFreeBSDでは[SCR3310-NTTcom|http://www.ntt.com/jpki/data/download2.html]が実績が多くて安心。日立のHX520UJ.*系は不可。

!!PTxドライバ
*配布元
**[ptx-20110326.tar.gz|http://2sen.dip.jp/cgi-bin/pt1up/source/up0309.gz] (拡張子は .tar.gz)
***http://d.hatena.ne.jp/bsdaemon/20110326/1301153206

*導入手順
**アップローダの都合で拡張子が変更されているので、それぞれ上記の拡張子にリネームしてから展開。
**手順の通りに"make && make install"すればOK。

*設定
**/boot/loader.confに以下の行を追記
 ptx_load="YES"

*コメント
**2011/07/04頃、portsに取り込まれました(multimedia/ptx-kmod)

*注意事項
**ptx-20110326より古いバージョンには、複数枚挿し時に致命的な不具合(page faultに至る)があります。
**複数ストリーム並行動作時やシステム負荷が重いとき、micropacket errorが発生してdropすることがあります(環境依存?)。

!!カードドライバ
*導入するports
**devel/libccid (動作確認: ccid-1.4.4_1)
**devel/pcsc-lite (動作確認: pcsc-lite-1.7.2,2)

*設定
**/etc/rc.confに以下の行を追記
 pcscd_enable="YES"

*コメント
**ccidやpcsc-liteのバージョンによってはB-CASカードを認識しないようです。
***認識OK: ccid-1.3.13, pcsc-lite-1.6.0_1,2
***認識NG: ccid-1.4.0, pcsc-lite-1.6.4_1,2
***認識OK: ccid-1.4.4_1, pcsc-lite-1.7.4,2
***時期的に、8.1-RELEASEの時点ではOK、その後にNG、2011年の春先?以降はOKです。
**pcsc-lite-1.7.2,2は、動作しますがメモリリークの不具合があります。

!!動作例
*認識しているところのdmesg抜粋
 ptx0: <EARTHSOFT PT2> mem 0xfe8ff000-0xfe8fffff at device 4.0 on pci3
 ptx1: <EARTHSOFT PT2> mem 0xfe8fe000-0xfe8fefff at device 5.0 on pci3
 ugen2.2: <NTT Communications Corp.> at usbus2

!!参考リンク
*[だえもんだもん|http://d.hatena.ne.jp/bsdaemon/]さん

!!!ソフトウェア関連の準備

!!ARIB STD-B25仕様確認テストプログラム
*配布元
**[arib_std_b25-0.2.4.lzh|http://www.marumo.ne.jp/junk/arib_std_b25-0.2.4.lzh]
***http://www.marumo.ne.jp/db2009_4.htm#19

*導入手順
**PTxドライバ(ptx-20110326)に同梱のパッチを当てること。
**上記パッチ適用後、標準出力対応パッチ{{ref b25_stdio.patch}}を当てること。
**上記パッチ適用後、標準出力対応パッチ({{ref b25_stdio.patch}})を当てること。
**普通にmakeすると実行形式"b25"が作成されます。

!!TSストリーム分離
*配布元
**{{ref tsstrip.c}} (拙作)
***色々と処理がアレなので、自己責任で…。

*導入手順
**普通にコンパイル。

*動作
**必要最低限のストリームだけを残して、他のストリームは捨てます。
***ECMなども捨ててしまうので、必ずb25を先に通す必要があります。
***地デジのHD放送は、通常は自動判別で大丈夫です。衛星放送などはSID指定が必要な場合もあります。
**録画開始から約20秒以内にPMTが更新された場合、更新以前の内容を捨てます(いわゆる「わかさトラップ」対策)。
***このため、番組直前の余白は最大でも15秒程度に留める必要があります(長さはソース内定義で調整可能)。
**ファイルI/Oだけでなく、パイプ(標準入出力)でも動作可能です。

!!録画wrapper
*配布元
**recptx.pl … PTxドライバ(ptx-20110326)同梱のスクリプト
**{{ref recpt1.patch}} (拙作)

*使用例
**./recpt1 --b25 --strip --sid 103 103 1520 371-59-20100913-1800.m2t
***NHK-BShiで25分20秒間録画(B25解除あり・ストリーム選択あり)。
***引数は、Linux界隈でデファクトスダンダードなrecpt1コマンドと互換性があります。

*注意
**チューナー数は内部で決め打ちしています。そのままだと2枚挿し前提です。
***変更する場合は、冒頭の下記の行を修正してください。
 @isdb_s_tuners = ("0.s0", "0.s1", "1.s0", "1.s1");
 @isdb_t_tuners = ("0.t0", "0.t1", "1.t0", "1.t1");

!!参考リンク
*[まるも製作所|http://www.marumo.ne.jp/]

!!!foltiaの導入
以下の手順はメモ書き程度なので、参考までに。

!!用意するもの
*foltia本体
**パッケージ版は古いようなので、svnで取り出し。今回使用したのはrevision 135。
 % svn co http://svn.dcc-jpl.com/foltia/trunk foltia

*portsから導入
**www/apache22 (apache-2.2.17_1)
**databases/sqlite3 (sqlite3-3.7.5)
**lang/php5 (php5-5.3.5) APACHE=YES MULTIBYTE=YES
**databases/php5-sqlite (php5-sqlite-5.3.5) UTF8=YES
**lang/php5-extensions (php5-extensions-1.4) MBSTRING=YES
**databases/p5-DBD-DQLite (p5-DBD-SQLite-1.31)
**japanese/p5-Jcode (ja-p5-Jcode-2.07)
**www/p5-libwww (p5-libwww-5.837)
**sysutils/p5-Schedule-At (p5-Schedule-At-1.11)

!!作業・修正など
*システム設定
**foltiaユーザーの作成(UID/GID=88/88)。groupsにはwww(80)追加。
**/usr/local/etc/apache22/httpd.confの以下の行を修正。
 User foltia
**/usr/local/etc/apache22/Includes/foltia.confの作成
 ## Foltia
 
 AddType application/x-httpd-php .php
 AddType application/x-httpd-php-source .phps
 
 Alias /foltia/ "/home/foltia/php/"
 <Directory "/home/foltia/php/">
   Order allow,deny
   Allow from all
   AddDefaultCharset off
   DirectoryIndex index.php
 </Directory>
**/etc/crontabで、atrunを5分おき実行(*/5)から毎分実行(*)に修正
**foltiaユーザにatコマンド実行権限を付与(空ファイル/etc/at/at.denyを作成)

*foltia設定・修正
**以下は/home/foltia/ディレクトリで、folitaユーザで実行。
**サイトから取得したfoltia本体のfoltia/install/phpおよびfoltia/install/perlディレクトリを、/home/foltia/直下にコピー。
**必要に応じて~/.forwardを設定。
**perl/foltia_conf1.plを設定。
***$recfolderpathと$haveirdaunitのあたりを修正。
 cp perl/foltia_conf1.pl.template perl/foltia_conf1.pl
 vi perl/foltia_conf1.pl
**php/foltia_config2.phpを設定
 cp php/foltia_config2.php.template php/foltia_config2.php
 vi php/foltia_config2.php
***$recfolderpath,$httpmediamappath,$useenvironmentpolicyのあたりを修正し、以下の行を追加。
 date_default_timezone_set("Asia/Tokyo");
**PostgreSQL関連の記述を削除
***use DBD::Pg;の行をコメントアウト
 % vi `grep -l DBD::Pg perl/*`
*データベースの作成と動作確認
**初期データベース作成
 % sqlite3 -batch -init mktable.sqlite.txt foltia.sqlite
***no such tableのエラーが数個出るけど無視
**crontabの設定(実行時刻や間隔は適宜調整)
 % crontab -e
 7 * * * * /home/foltia/perl/schedulecheck.pl > /dev/null 2>&1
**しょぼかるから番組表を取得
 % perl/getxml2db.pl long
**ブラウザで表示して動作確認(http://サーバ名/foltia/)

!!カスタマイズ
*自分勝手な修正
** デジタル専用なのでlistreserve.phpで"録画レート"などの表示部を削除
** ipodtranscodeを使わないのでrecwrap.plの該当部を削除
** しょぼかるにログインするためgetxml2db.plを改変してIDを通すように
** 重複チェックはrecpt1内で行うためrecwrap.plのcontinuousrecordingcheck()削除

!!参考リンク
*[foltia|http://www.dcc-jpl.com/soft/foltia/]
*[foltia+SQLiteをインストール|http://d.hatena.ne.jp/bsdaemon/20100417/1271480522]

----
{{comment tail}}