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

  • 投稿 : 2012-03-16

本記事は広告およびアフィリエイトプログラムによる収益を得ています

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 一覧 - 楽天市場

スポンサーリンク