==準備==
* Monster TV HDUS
* NTT-ME SCR3310-NTTCom
HDUS については旧型と新型があるらしい。
[http://www26.atwiki.jp/hdus/pages/20.html MonsterTV HDUS @ ウィキ – MonsterTV HDUS 新・旧比較] によれば、こちらで使用しているのは新型みたい。(本体シリアルが177〜)
このへんは各自情報収集して対応してください。
==セットアップ==
必要な情報は概ね [http://www12.atwiki.jp/edaeda/pages/13.html edaeda @ ウィキ – HDUSのセットアップ] に書かれているので、こちらに従えば良いと思います。Linuxのディストリビューションが、上記ページは Fedra であり、いっぽう Pandaboard は Ubuntu であるため、若干の差分があります。
ここでは、差分について書きます。
===事前にインストールしておくパッケージ===
以下のパッケージを事前にインストールしておきます。
* build-essential
* patch
* pkg-config
* libboost-filesystem1.42-dev
* libboost-thread1.42-dev
* libboost1.42-all-dev
* libglib2.0-dev
* libpcsclite-dev
* libusb-dev
具体的には以下のコマンドを入力します。
$ sudo apt-get install patch build-essential pkg-config \
libboost-filesystem1.42-dev libboost-thread1.42-dev \
libboost1.42-all-dev libglib2.0-dev libpcsclite-dev libusb-dev
===「recfriioコマンドのインストール」における追加修正===
g++ -O2 -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DB25 -DHDUS -DUDP `pkg-config –cflags glib-2.0` -c -o IoThread.o IoThread.cpp
In file included from IoThread.cpp:13:
RingBuf.hpp:90: error: ‘condition’ in namespace ‘boost’ does not name a type
RingBuf.hpp: In member function ‘void RingBuf
RingBuf.hpp:188: error: ‘cond’ was not declared in this scope
RingBuf.hpp: In member function ‘const T* RingBuf
RingBuf.hpp:233: error: ‘cond’ was not declared in this scope
RingBuf.hpp: In member function ‘void RingBuf
RingBuf.hpp:260: error: ‘cond’ was not declared in this scope
make: *** [IoThread.o] エラー 1
というエラーが発生した場合は RingBuf.hpp に下のような一行を加える
RingBuf.hpp
#include
#include
// add st
#include
// add ed
また
Recordable.hpp:118: error: ISO C++ forbids declaration of ‘uint8_t’ with no type
といったコンパイルエラーが発生した場合は Recordable.hpp に以下を追加する。
#include
AbstractFriio.cpp:221: error: ‘umask’ was not declared in this scope
というコンパイルエラーが発生した場合は、AbstractFriio.cpp に
#include
を追加します。
また boost_filesystem でリンクエラーとなる場合はMakefileを修正します。
LIBS = -lpthread -lboost_thread-mt -lboost_filesystem `pkg-config –libs glib-2.0`
↓↓↓↓↓
LIBS = -lpthread -lboost_thread-mt -lboost_filesystem-mt `pkg-config –libs glib-2.0`
===「HDUSを認識させる」における修正===
/etc/rc.local には、以下のコマンドを記述します。
SKNET_AS11Loader.sys が /usr/local/bin に存在する場合の例です。
/bin/sh -c ‘cd /usr/local/bin;./as11loader’
SKNET_AS11Loader.sys を /usr/local/bin 以外に配置した場合、cd で指定するディレクトリをそれにあわせて変更してください。
※as11loader はカレントディレクトリに SKNET_AS11Loader.sys があることを前提にした動作となっているようです。
なお、上記のコマンドは、接続しているHDUSの数だけ記述します。また、後述する udev を使用する場合は、/etc/rc.local の修正は不要です。(「HDUSの自動ロード」参照)
===「ICカードリーダのセットアップ」における修正===
pcscdの起動方法が Ubuntu では異なります。
$ sudo /etc/init.d/pcscd start
リスタートする場合は以下のとおり。
$ sudo /etc/init.d/pcscd restart
yum や chkconfig は必要ありません。
===HDUSの自動ロード===
$ sudo vi /etc/udev/rules.d/52-as11loader.rules
中身はこんな感じ。
SUBSYSTEM==”usb”, SYSFS{idVendor}==”1738″, SYSFS{idProduct}==”5211″, RUN+=”/bin/sh -c ‘cd /usr/local/bin ; /usr/local/bin/as11loader'”
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”3275″, ATTRS{idProduct}==”6051″, MODE=”0666″, GROUP=”video”
===Ubuntu11.04 Upgrade時の注意===
5/6時点では、Ubuntu11.04ではカードリーダが動作しません。よって、以下の対応により乗り切ります。
sudo vi /etc/apt/sources.list
deb http://ports.ubuntu.com/ubuntu-ports/ natty main universe restricted multiverse
の”natty”とある部分を”maverick”とする。つまり
deb http://ports.ubuntu.com/ubuntu-ports/ maverick main universe restricted multiverse
と変更。
$ sudo apt-get remove pcscd libpcsclite-dev libpcsclite1 libccid
$ sudo apt-get install pcscd libpcsclite-dev libpcsclite1 libccid
取得:1 http://ports.ubuntu.com/ubuntu-ports/ maverick/main libpcsclite1 armel 1.5.5-3ubuntu2 [50.6 kB]
取得:2 http://ports.ubuntu.com/ubuntu-ports/ maverick/universe libccid armel 1.3.11-1 [105 kB]
取得:3 http://ports.ubuntu.com/ubuntu-ports/ maverick/main libpcsclite-dev armel 1.5.5-3ubuntu2 [68.2 kB]
取得:4 http://ports.ubuntu.com/ubuntu-ports/ maverick/universe pcscd armel 1.5.5-3ubuntu2 [86.9 kB]
インストールが終わったら、
sudo vi /etc/apt/sources.list
deb http://ports.ubuntu.com/ubuntu-ports/ natty main universe restricted multiverse
に戻しておくこと。
また、このままだと、apt-get update; apt-get upgrade すると、新しいバージョンのpcscdがインストールされ、現象が再発してしまうため、インストールしたバージョンを固定します。
$ echo libpcsclite1 hold | sudo dpkg –set-selections
$ echo libccid hold | sudo dpkg –set-selections
$ echo libpcsclite-dev hold | sudo dpkg –set-selections
$ echo pcscd hold | sudo dpkg –set-selections
==EPGrecのインストール==
===epgdumpr2のインストール===
http://www.mda.or.jp/epgrec/index.php/インストール前の準備
から、以下のファイルをダウンロードします。
$ wget “http://www.mda.or.jp/epgrec/index.php?plugin=attach&refer=インストール前の準備&openfile=epgdumpr2-utf8.tar.gz” -O epgdumpr2-utf8.tar.gz
とでもすれば良いでしょう。
次に http://www.honeyplanet.jp/epgdumpr2-utf8_segv.patch.gz のパッチをダウンロードします。パッチをあてないとUbuntuでは Segmentation Faultが発生するようです。
$ wget http://www.honeyplanet.jp/epgdumpr2-utf8_segv.patch.gz
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0246.zip
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0248.zip
$ tar xvzf epgdumpr2-utf8.tar.gz
$ gunzip epgdumpr2-utf8_segv.patch.gz
$ unzip up0246.zip
$ unzip up0248.zip
$ cd epgdumpr2/
$ cp ../epgdumpr2-utf8_segv.patch ./
$ cp ../fix_overflow_184.patch ./
$ cp ../fix_overflow_maxseclen.patch ./
$ patch -p1 < epgdumpr2-utf8_segv.patch
$ patch -p1 < fix_overflow_184.patch
$ patch -p1 < fix_overflow_maxseclen.patch
$ make
$ sudo cp epgdump /usr/local/bin/
===atのインストール===
$ sudo apt-get install at
===epgrecのビルド===
http://sourceforge.jp/projects/epgrec/releases/ から最新版をダウンロードします。
インストールは以下のとおり。
$ sudo tar xvzpf epgrec-日付.tar.gz -C /var/www/
※/var/www がドキュメントルートの場合
===config.phpの設定===
/var/www/epgrec/config.php.sampleをconfig.phpにリネームします。
$ sudo mv /var/www/epgrec/config.php.sample /var/www/epgrec/config.php
config.phpを環境に合わせて修正する。
====地上デジタルチャンネルマップ$GR_CHANNEL_MAPの設定====
サンプルを見ればなんとなく分かると思います。済んでいる地域に合わせてチャンネル情報を修正します。
http://www.maspro.co.jp/contact/bro/bro_ch.html
あたりを参考に設定すれば良いでしょう。
====do-record.shの設定====
こちらでは、以下のとおりとしています。
#!/bin/sh
RECORDER=/usr/local/bin/recfriio
B25=/usr/local/bin/b25
if [ ${MODE} -eq 0 ]; then
# MODE=0では必ず無加工のTSを吐き出すこと
sleep 2
$RECORDER –b25 –strip –hdus $CHANNEL $DURATION ${OUTPUT}
else
$RECORDER –strip –hdus –b25 $CHANNEL $DURATION ${OUTPUT}
fi
====www-dataをrootグループに加える====
$ sudo gpasswd -a www-data root
====/etc/at.denyの編集====
WEBサーバで使用しているユーザ(www-data等)が含まれている場合は削除します。
===ffmpeg===
Ubuntu に含まれる ffmpeg は H.264 に対応していないため、自前でビルドします。
git を使っているので、インストールしていない場合は予めインストールしておきます。
$ sudo apt-get install git-core
====ffmpegとx264ライブラリの削除====
$ sudo apt-get remove ffmpeg x264 libx264-dev
====必要なライブラリをインストール====
$ sudo apt-get update
$ sudo apt-get install libfaac-dev libmp3lame-dev libxvidcore-dev
====x264ライブラリのインストール====
$ cd /tmp
$ git clone git://git.videolan.org/x264.git
$ cd x264
$ ./configure
$ make
$ sudo make install
====ffmpegのインストール====
$ cd /tmp
$ git clone git://git.videolan.org/ffmpeg.git ffmpeg
$ cd ffmpeg
$ ./configure –enable-shared –enable-sse –enable-ssse3 –enable-pthreads –enable-gpl –enable-libmp3lame –enable-libfaac –enable-nonfree –enable-libx264 –enable-libxvid –enable-pthreads –enable-zlib
$ make
$ make install
===WEBサーバについて===
Apache は重そうなので、lighttpd をインストールした。epgrecに必要な MySQL や PHP もインストール。
$ sudo apt-get install lighttpd php5 php-pear php5-gd php5-cgi php5-mysql mysql-server
もしかしたら php-pear と php5-gd は必要ないかも。
設定は検索する等して対処してください。