Debian lennyでfoltiaとPT2を動かす奮戦記 その1

PT2買ったのでfoltia HDをサーバーに導入しようとしたのですが,公式がFedora系推奨で動いているせいで,Debian鯖のオレ涙目.しかし,一応動くっぽいので,情報少ないの覚悟で入れてみました.苦難の道だけど,Debian系だからという部分は少ないので,わざわざDebianで入れようって人なら何とかなります.試行錯誤過ぎてうろ覚えなので,細かい命令とかミスは愛とフィーリングでカバーしてくだしあ.

環境は,NEC Express5800/110Ge上で走らせた2009年04月くらいのDebian lenny.環境の差違とかは適宜埋めてくださいな.

必要なハードウェア.

まずはNECICカードリーダー SCR3310.定番品です.普通にビックカメラで山積みしてありました.Linuxで動かす以上,下手なブツに手を出すと爆死できます.

あとは,サン電子製 ダブル分波器 DSP-77FW-P.BS波と地上波を分ける分波と,同じ信号を2本に分ける分配を同時にやってくれる代物です.ただの信号を4つに分けるより電界強度が落ちないし,何よりもPT2の端子とピッタリの地上波 2本,BS/CS 2本を1つの機器から綺麗に出せるってのは精神衛生上非常によいです.オススメ.

PT2のドライバ周り

単にPT2使えるようにするだけなのでfoltia関係なしで既存の方法を割と使えるのですが,その情報をfoltiaに本当に関係ないかがわからなかったため,結局時間かかりました.

  1. まずは$adduser foltia 以下の流れは出来る限りfoltiaユーザーで行う.
  2. 必要なパッケージを先に入れておく.$ apt-get install g++ libboost-filesystem-dev libboost-thread-dev libglib2.0-dev libpcsclite-dev libccid libglib2.0-dev libpcsclite-dev libccid pcscd libboost-regex-dev pcsc-tools
  3. make時に無くて死ねるので,これも先に入れておく.$ apt-get install build-essential linux-headers-`uname -r`
  4. PT1ドライバ周りが詰まってるc44e16dbb0e2.tar.bz2ってのをどっかから持ってきてfoltiaユーザー領域にでも解凍しておく.このとき,pt1-ほげほげとかいう長い名前なので適当にリネームした方が楽.これは暗号周りのarib25ってのが含まれた最終verらしく,最新ドライバarib25を別に落としてもおk.まあ,自分は枯れてるヤツで.
  5. BSへの給電であるLNB電源周りのオプションがあるので,環境によってはpt1_pci.cのstatic int lnb = 0;を2に書き換え.
  6. ./driver内でmake && $make install この時,エラーが出たら自分でシンボリックリンク張り直すとおk.
  7. /lib/modules/'uname -r'/kernel/drivers/video/pt1_drv.koが出来てたら完成.
  8. 後々でもいいので,デバイスの再認識や再起動後に$ lspci -v | grep ptでそれっぽいのが働いてるのを確認しておくと幸せ.
  9. ./arib25や./recpt1も同じく$make && make install
  10. ./b25_doc内のlibccid_Info.plistでデバイスのバージョンが違う事がよくあるらしく,:1,$s/1.3.1/1.3.8/gで全置換後,$ cp libccid_Info.plist /etc/libccid_Info.plist.
  11. デーモン再起動 /etc/init.d/pcscd restart
  12. $pcsc_scanでずらーっと出てB-CASの文字列確認できればおk.
  13. さあ,録画テストですよ.適当な場所で$ recpt1 --b25 --device /dev/pt1video2 チャンネル数 秒数 test.ts

ね?簡単でしょ?

PostgreSQL導入

foltiaは割と歴史があるせいなのか,PostgreSQLEUC-JPという素敵な構成なので,頑張りましょう.

  1. $ apt-get installでpostgresql-8.3, postgresql8.3-server-dev-8.3, lbdbd-pg-perl, libwww-perl, libjcode-pm-perl, libschedule-at-perlを導入.
  2. いったんpostresql止める.
  3. postgresユーザーへ.
  4. postgresユーザーで弄るので,適当に/var/liv/postgresql/8.3とかに権限付け.この辺はアドリブで.
  5. 現状の./mainを消すなりバックアップするなりして,mkdir main.一応,所有者以外の権限切っておく.
  6. $ /usr/lib/postgrespl/8.3/bin/initdb --encoding=EUC-JPでDB再構築
  7. ./main内にサーバー証明書とかいるらしいので,いろんな所から引っ張ってくる./etc/postgresql-common/root.crtと,/etc/ssl/certs/ssl-cert-snakeoil.pem, /etc/ssl/private/ssl-cert-snakeoil.keyなので,コピーして適宜リネーム・権限付け.シンボリックリンク貼ると,権限周りでDB開始出来なかった.なんじゃらほい.
  8. rootに戻って, $ /etc/init.d/postgresql-8.3 start
  9. postgresに戻って, psql -lで動作確認.EUC-JPのテーブル確認できたらおk.
  10. ユーザーそのままで$createuser -P foltia.全部n.んで,晴れて$ createdb --owner=foltia foltiaをどうぞ.

注意点は1にも2にもEUC-JPのデータベースだってこと.後で爆死しないように注意.

Apache周り

  1. apache2, libapache2-mod-php5, phppgadminインスコ
  2. /etc/apache2/conf.d/で,foltia.confを作っておく.内容は適宜.サムネイル表示用に,AddType image/jpeg .THMでmime type追加しておく.
  3. ついでにphppgadmin内にphp_flag register_globals Onも入れておく.精神衛生上.htaccessの方がいい人はそっちで.いらんかも.
  4. /etc/apache2/envvarsにexport APACHE_RUN_USER=foltiaを追記.
  5. Apache2再起動

Debian使いには釈迦に説法かもしれませんが,Debian系でのhttpd.confは変なので,Fedora系の知識は使えません.

foltia入れるための下準備

  1. まずmplayer.サムネイル作成用のjpegライブラリ込みでmakeするよー.適当なところで$ wget http://www.ijg.org/files/jpegsrc.v7.tar.gzして,あとは解凍からmake installまでがんがれ.
  2. $ ln -s /usr/local/lib/libjpeg.so.7 /usr/lib/libjpeg.so.7でシンボリックリンク貼っといて,おまじない程度に$ ldconfigしておく.
  3. MP4Boxが含まれるgpacパッケージを頑張って入れる. ./configure終わったら,$ cp config.h include/gpac/internal/ からの$ make lib appsをするのがコツ.
  4. apt-getでImageMagickとwine入れる.
  5. foltiaで使うPerlモジュールいろいろ入れる.CPANでTime::HiRes Schedule::At DBD::Pg Jcode.
  6. 入れてない人は,どうにかがんばってSubversion入れる.
  7. /home/foltiaとかの適当なところで魔法の呪文 $ svn co svn://svn.mplayerhq.hu/mplayer/trunk mplayer
  8. ./configure --prefix=/usr --enable-jpegにだけ注意して,普通にmakeとinstall.
  9. もうそろそろ心が折れそうなので,先にfoltiaの本尊を拝むとする./home/foltiaとかの適当なところで魔法の呪文 $ svn co http://svn.dcc-jpl.com/foltia/trunk foltia
  10. 心が折れた.

今日のまとめ

ここまでで日付変わって心が折れました.よって,後半が正解かどうかはわかりません.たぶん,あとできちんとまとめます.さようなら.

参考URL