UbuntuでKTV-FSPCIEを使う 【recfsusb2n for linux,地デジ,KTV-FSUSB2】

Ubuntu 11.10 Desktop 日本語 Remix CD を用いて動作確認しています。

はじめに

Fedoraでテレビ録画 | Dazzling World 2
Ubuntu Music Hour KEIAN [KTV-FSPCIE] + recfsusb2n for linuxで地デジ

を参考に作業を進めました。また、KTV-FSPCIE(KTV-FSUSB2)は、Bondriverを使用可能なようにWindows環境ですでに処理済みのものを用います。購入したままでは、使用できません。

本記事では、動画再生にVLCを用いてますので事前にUbuntuに導入してください。
ソフトの導入の仕方、端末(ターミナル)の使い方などは、以下の記事を参考にしてください。
Ubuntuで「隠しファイルを見る」「コマンドを実行する」「ソフトを導入する」方法


事前設定

端末(ターミナル)にて以下の手順でコマンドを実行していきます。
$以降を実際に入力して、[Enter]キーを押して実行です。
sudo を実行後は、ログインパスワードを要求されますので入力してください。

1.video グループの作成
$ sudo groupadd video
すでにある場合はエラーになりますが、気にせず次へ

2.video グループにデバイスを使用するユーザーを追加
$ sudo gpasswd -a ログインユーザー名 video
Ubuntuにログインしているユーザー名を指定します。

3.パーミッションルールの追加
$ sudo gedit /lib/udev/rules.d/89-tuner.rules

メモ帳(エディター)が立ち上がるので、以下を記述して保存してください。

# FSUSB2N
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0029", MODE="0664", GROUP="video"

5.パーミッションルールを反映させる
$ udevadm control --reload-rules

6.電源を切って、KTV-FSPCIEを接続して再起動

7.KTV-FSPCIEが認識しているかどうかの確認
$ lsusb -d 0511:
認識していれば以下のようなものが出力される
Bus 001 Device 002: ID 0511:0029 N'Able (DataBook) Technologies, Inc.

recfsusb2nの導入

1.boostライブラリ (boost::threadとboost::filesystem)を入手
$ sudo apt-get install g++ libboost-thread-dev libboost-filesystem-dev

2.recfsusb2nのダウンロードと解凍
ダウンロード:recfsusb2n
http://tri.dw.land.to/fsusb2n/recfsusb2n.html

私が使用したのは、recfsusb2n-0.9.2.tar.gzです。


コマンドで作業してもよいですが、私はブラウザ(Firefox)でダウンロードして、ダブルクリックで書庫解凍ソフトを立ち上げて、展開(解凍)しました。

ブラウザからダウンロードしたものは、「ダウンロード」フォルダにあります。また、「ホーム」フォルダにtvなどの作業フォルダを作成して、そこにコピーして解凍しました。

3.recfsusb2nのコンパイル
$ cd FSUSB2N
$ make
解凍したフォルダに移動して、そこでmakeを実行するとコンパイルされます

4.エラーになった場合
linux@linux-virtual-machine:~/tv/FSUSB2N$ make
g++ -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DB25   -c -o em2874-core.o em2874-core.cpp
em2874-core.cpp: 静的メンバ関数 ‘static EM2874Device* EM2874Device::AllocDevice()’ 内:
em2874-core.cpp:126:37: エラー: ‘class boost::filesystem3::directory_entry’ has no member named ‘string’
em2874-core.cpp:128:47: エラー: ‘class boost::filesystem3::directory_entry’ has no member named ‘string’
make: *** [em2874-core.o] エラー 1
私の環境だとこのようなエラーになり、コンパイルできませんでした。
そこで、参考にしたサイトの通りに以下のように変更します。
解凍した中の「em2874-core.cpp」というファイルをテキストエディターで開いて
126行目と128行目あたりを変更します。
// バスに繋がっているデバイスでループ
if (!boost::filesystem::is_directory(*dev_iter)) {
        // 開く
//        if (pDev->openDevice(dev_iter->string().c_str())) {
        if (pDev->openDevice(dev_iter->path().string().c_str())) {
                isFound = true;
//                if(log) *log << "device: " << dev_iter->string() << std::endl;
                if(log) *log << "device: " << dev_iter->path().string() << std::endl;
                break;
        }
}
4行目=元の126行目
7行目=元の128行目

この修正をして再度、「3.recfsusb2nのコンパイル」を実行します。
しかし、またエラーになりました。

省略
/usr/bin/ld: note: 'boost::system::system_category()' is defined in DSO /usr/lib/libboost_system.so.1.46.1 so try adding it to the linker command line
/usr/lib/libboost_system.so.1.46.1: could not read symbols: Invalid operation
collect2: ld はステータス 1 で終了しました
make: *** [recfsusb2n] エラー 1

参考にしたサイトの通りに以下のように変更します。

解凍した中の「Makefile」というファイルをテキストエディターで開いて以下のように変更します。

LIBS = -lpthread -lboost_system -lboost_thread-mt -lboost_filesystem
#LIBS = -lpthread -lboost_thread-mt -lboost_filesystem
LIBSのところをの前の#の位置が修正前と違います。

この修正をして再度、「3.recfsusb2nのコンパイル」を実行します。
私の環境では、エラーなくコンパイルができました。
recfsusb2nというファイルができているはずです。

5.recfsusb2nを /usr/local/bin/ にコピー
$ sudo cp recfsusb2n /usr/local/bin/


動作確認

1.ファイルに出力して再生
$ recfsusb2n -bv 24 30 test.ts
24チャンネル(物理チャンネル)の映像を30秒間、test.tsとしてファイルに出力
test.tsをVLCで再生すれば、うまくいっていれば映像と音がでます。

2.リアルタイムに表示
$ recfsusb2n --b25 24 - - | vlc -
24チャンネル(物理チャンネル)をVLCでリアルタイムに表示


とりあえす映像と音が出るまで確認しました。


KTV-FSPCIE 一覧 - ヤフオク!
KTV-FSPCIE 一覧 - 楽天市場

【ブログ内で関連ある記事】

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。