OSDN Git Service

tunerec: include <unistd.h> for usleep
[rec10/rec10-git.git] / tunerec / README.ja
1 DVB PT1 ドライバ用tuneプログラム(rec10用改変版)
2
3 2012-01-08版
4
5 このプログラムはDVB PT1付属のtuneプログラムを、
6 rec10にて使いやすいように改変を行った物です。
7
8 変更点
9 チャンネルリストを無効化、周波数およびtsIDの指定で動作するようにしました。
10
11 使い方
12 $ ./tune <DVBアダプタ番号> <周波数> [tsid(省略可)]
13
14 ライセンス
15 >7. 使用上の注意
16 >
17 >このソフトウェアは、 sourceforge.jp で開発されている独自仕様のドライバ
18 >を改竄し v4l-dvb の仕様に合わせようとしているものです。これは単に AS
19 >IS で提供しているもので、開発途上であり、完全に無保証です。テストプログ
20 >ラムは MIT ライセンスで提供します。
21
22 gn64_jp(gn64@rec10.org)
23
24 DVB PT1 ドライバ
25
26 2009-03-07 版
27
28 1. このドキュメントについて
29
30 このドキュメントは DVB ベース の PT1 ドライバのチェックアウト、コンパイ
31 ル、インストールおよびテスト方法を説明するものです。
32
33
34 2. ドライバのチェックアウト
35
36 DVB ベースの PT1 ドライバのソースコードは現在 mercurial で管理されてい
37 ます。開発マシンに mercurial をインストールした上で、次のコマンドでチェッ
38 クアウトしてください。
39
40         $ hg clone http://bitbucket.org/hiranotaka/dvb-pt1/
41
42 一度チェックアウトを行うと二度めからは dvb-pt1 ディレクトリにて次のコマ
43 ンドを実行することで更新することができます。ただし次の更新は 3 月下旬以
44 降の予定です。
45
46                $ hg pull && hg update
47
48 詳しくは mercurial のマニュアルや bitbucket.org のマニュアルを参照して
49 ください。
50
51
52 3. ドライバのコンパイル
53
54 ターゲットとなるカーネルと同じバージョンのカーネルヘッダまたはソースが
55 必要です。 linux-headers-$(uname -r) パッケージなどで入手してください。
56 準備ができたら、v4l ディレクトリ下に .config という名前のファイルを作成
57 し、
58
59         CONFIG_DVB_CORE=m
60         CONFIG_DVB_PT1=m
61
62 のように記述します。後は、 /lib/modules/$(uname -r)/source または
63 /lib/modules/$(uname -r)/build にカーネルヘッダまたはソースが展開されて
64 いる場合、同じ v4l ディレクトリにて、
65
66 $ make
67
68 するだけで OK です。うまくいけば dvb-core.ko と pt1_drv.ko という二つの
69 モジュールができるはずです。
70
71 なお、カーネルヘッダやソースが違うディレクトリに展開されている場合は、
72 SRCDIR オプションが必要です。
73
74
75 4. ドライバのロード
76
77 コンパイルでできた 2 つのモジュールを順にロードします。
78
79         $ sudo insmod dvb-core.ko
80         $ sudo insmod pt1_drv.ko
81
82 無事ロードされると次のようになるはずです。
83
84         $ dmesg
85         ...
86         DVB: registering new adapter (pt1-pci)
87         DVB: registering adapter 0 frontend 0 (VA1J5JF8007 ISDB-S)...
88         DVB: registering new adapter (pt1-pci)
89         DVB: registering adapter 1 frontend 0 (VA1J5JF8007 ISDB-T)...
90         DVB: registering new adapter (pt1-pci)
91         DVB: registering adapter 2 frontend 0 (VA1J5JF8007 ISDB-S)...
92         DVB: registering new adapter (pt1-pci)
93         DVB: registering adapter 3 frontend 0 (VA1J5JF8007 ISDB-T)...
94         pt1_thread run
95
96 現在、一部のマシンで DMA 領域の確保に失敗する事象が確認されています。こ
97 の場合、デバッグ用のスタックトレースなどとともに、次のように表示されま
98 す。
99
100         $ dmesg
101         ...
102         PT1:DMA ALLOC ERROR
103         pt1-pci: probe of 0000:01:0a.0 failed with error -5
104
105 これは特に 32 ビットマシンにおいて貴重な LOWMEM 領域(DMA 可能な領域で、
106 最大でも 756 MB)にその 1/6 にあたる 128 MB もの巨大な領域を確保している
107 ためと考えられます。うまい対処方法があれば教えて下さい。
108
109
110 5. テストプログラムのビルド
111
112 簡単なテストプログラムを用意しました。先ほどチェックアウトした dvb-pt1
113 と同じ階層にこの README.ja を含むディレクトリを移動します。別の言い方を
114 すると、このディレクトリから見てドライバが ../dvb-pt1 の位置に来るよう
115 にします。その状態で
116
117         $ make
118
119 してください。
120
121
122 6. テストプログラムの実行
123
124 チャンネルを設定するには、
125
126         $ ./tune <DVBアダプタ番号> <リモコンキーID>
127
128 とします。設定がうまくいけば
129
130         Successfully tuned to NHK東京 総合 .
131
132 などと表示されます。
133
134         Failed to tune to NHK BS-1 (status 03).
135
136 などと表示された場合は、ステータスによって次の原因が考えられます。
137
138         00: PLL に問題がある
139         01: 指定された周波数に信号がない
140         03: 他の TS-ID の信号はあるが、指定された TS-ID のものはない
141
142 DVB アダプタ番号は、他にアダプタが無い場合、チューナ 0 の ISDB-S が 0
143 、チューナ 0 の ISDB-T が 1 、チューナ 1 の ISDB-S が 2 、チューナ 1 の
144 ISDB-T が 3 になります。 アダプタが ISDB-T か ISDB-S かは自動判定され、
145 ISDB-T であればリモコンキー ID は地上波のものと、 ISDB-S であれば衛星の
146 ものと解釈されます。
147
148 リモコンキー ID と周波数の対応表は、東京都のものになっています。東京都
149 以外では、 tune.c の上部にある対応表の書き換えが必要になります。
150
151 テストプログラムを実行したままの状態で、
152
153         $ cat /dev/dvb/adapter1/dvr > dump.ts
154
155 などとすれば録画できます(例はアダプタ番号 1 の場合)。また同様に
156
157         $ b25 -v 0 /dev/dvb/adapter1/dvr /dev/stdout | \
158                 mplayer -cache 8192 -
159
160 とすればリアルタイムで視聴できると思います。ただしリアルタイム視聴には
161 それなりの CPU 性能が求められます。
162
163
164 7. 使用上の注意
165
166 このソフトウェアは、 sourceforge.jp で開発されている独自仕様のドライバ
167 を改竄し v4l-dvb の仕様に合わせようとしているものです。これは単に AS
168 IS で提供しているもので、開発途上であり、完全に無保証です。テストプログ
169 ラムは MIT ライセンスで提供します。