(2017夏)環境を構築し直したので、まとめてみる。9(Stretch)でやる予定。V2.0、PX-BCUD、KTV-FSMINIの4つをセットアップした。PT3はDVBドライバを使う。PT3/PT2/PT1カーネルにドライバが組み込まれているので、特に設定しなくても認識される。偶数がBS/CS、奇数が地上波と交互になる。adapter3アンテナに電源供給が必要な場合、chardev版ドライバを導入した方がいい。(V2.0)何もしなくても認識されるが、ファームウェアを入れないと動作しない。adapter4ファームウェアをダウンロードして、インストールする。モジュールをロードし直すと有効になる。smsusbadapterの番号を変更するには次のようにする。複数ある場合は「,」で区切る。4.10以降は16個なので0~15)。adapter_nr=4他のDVBデバイスと区別するため、起動時に番号を固定する。他にDVBデバイスがない場合は必要ない。/etc/modprobe.d/smsdvb.conf'PX-BCUDLinuxカーネルにPX-BCUDのドライバが組み込まれるのは4.7以上で、標準のカーネル(4.4)ではドライバが組み込まれていない。HWEカーネルを導入する。/etc/modprobe.d/em28xx_dvb.conf'KTV-FSMINI(KTV-FSUSB2/V3)KTV-FSMINIはドライバではなくコマンドを利用する。KTVWikiにあるrecfsusb2iをダウンロードして、ビルドする。/usr/local/bin/dvb-toolsをインストールDVBデバイスをチューニングするにはdvbv5-zapが必要になる。dvbv5-zapはdvb-toolsに含まれている。最後に現在も販売されているチューナーを挙げておく。save以上でインストールは完了。ドライバはなるべく標準ドライバで対応して手間を省いた。チャンネル設定はBS/CSの設定が決まっていて、地上波はチャンネルスキャンできるので手間取らなかった。以前に比べて簡単になったものの、まだ手間がかかるように思う。@Wikiに置かれているパッチと修正版BSパッチをgithubにまとめてみた。パッチはgit-diffで作成した。wheezyで軽く動作確認。リポジトリパッチBS対応がたった1行移植し忘れてるだけとは思わなかった。これでGWに帰省したらOSのアップグレードができる。CommentPX-S1UDとChinachuを組み合わせるPX-S1UDをLinuxで使えるようにしたのでChinachuと組み合わせてみた。録画にはrecdvbを使う。現在はこちらのドライバが安定している。録画時にB25デコードをかける場合はlibarib25やFUSE_b25をインストールしておく。recdvbのセットアップPT3などと同じように録画するには録画コマンドrecdvb(recpt1の改造版)をこちらからダウンロードしておく。手順はrecpt1と変わらない。installrecpt1などが入っている場合checksignalが上書きされるので注意。recdvbはPT2、PT3のDVBドライバでも使えるが、衛星放送には対応していない。checksignalも形式が違うのであまり当てにならない。録画ファイル名/dev/dvb/adapter0の場合–devに0を指定。ChinachuのインストールChinachuのwikiに従えば問題なくインストールできる。DVBデバイスの場合、実行ユーザーをvideoグループに所属させる必要があるので注意が必要。],外部から見られないのであれば、設定そのものを削除してもいい。"[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts",フォーマットに使えるタグは/node_modules/chinachu-common/lib/chinachu-common.jsのexports.formatRecordedNameを見るとわかる。],/dev/dvb/adapter0の場合–devに0を指定する。startしばらく待つと番組表が作成される。WUIに接続ブラウザに"http://IPアドレス:10772/"と入力するとChinachuのWUIに接続できる。ここから予約や録画ファイルの視聴・管理が行える。ストリーミング再生を無変換以外で使うにはそれなりのスペックが必要。番組表からできるライブ視聴はエンコードが必要で信頼性がまだ低いので、予約録画して再生した方がいい。エイリアス他のユーザーでchinachuコマンドをそのまま使うのはまずそうなので、普段使っているユーザーで使えるようにエイリアスを追加。unlockファイル名のフォーマット<date:日付フォーマット>日時。dateformatが使われる。CommentDVB版PT3ドライバをビルドしてみるDVB版ドライバがないPT3ではMythTVは使えなかった。最近DVB版PT3ドライバが公開されたので、導入してみる。環境はいつも通りDebianの安定版(wheezy)。カーネルのアップグレードDebian(wheezy)に導入されているカーネル3.2ではビルドできないので、新しいカーネルを導入しておく。3.5でビルドできないことと3.8以降でビルドできることを確認している。新しいカーネルはbackportsリポジトリを使うと簡単に導入できる。-r3.10-0.bpo.3-amd64V4L-DVBドライバの導入PT3ドライバのビルドに必要なV4L-DVBドライバを導入する。ビルドには少し時間がかかる。#ヘッダーのインストールDVB版PT3ドライバをインストール事前準備は済んだのでドライバをインストールする。adapter3PT2との違いPT2のDVB版ドライバと同じように使えるが、デバイス番号が異なる。0,1が衛星波、2,3が地上波と、順番はChardev版と同じになる。DVBアプリのビルドtuneコマンドやs2scanが付属しているのでビルドする。+111../restamp./nitdump./ptsdump./tune./dumpts./dumpeid./s2scan./dumpts2コマンドが生成される。コマンドの使い方やDVB版の使い方は以前の記事を参照。予約機能が良くても、BSに対応できないとMythTVは導入できない。PT3といえば、chardev版PT3の導入記事に/etc/modprobe.d/blacklist.confにearth-pt1を追加するように書いてあるのが気になる。earth-pt1はPT3には対応していないので、PT1/2を導入していない環境では効果が無い。0.26のISDB対応パッチ(仮)が公開されていたので試してみた。必要なパッチを作り直して、パッケージのビルドからインストールまでを行なった。結果はパッケージの依存関係の問題で失敗。実際に行なった手順と作成したパッチを公開。1:27追記:BS対応パッチの圧縮に失敗していたので再アップロード。2013/1/10追記:カテゴリ日本語化パッチに文字化けの報告があるので修正。ソースアーカイブを取得する必要があります。installビルドまでうまくできたが、パッケージの依存関係が崩れてしまったので失敗。wheezyがリリースされたらまた試そうと思う。0.26.0に向けて作成したパッチビルドはできたが、インストールがうまくいかなかったので、全て未検証。各パッチは以前の記事に準ずる。カテゴリ日本語化パッチmythtv_0.26.0-japanese-cat.patchカテゴリ日本語化パッチ(修正版)mythtv_0.26.0-japanese-cat.patchQtのバージョンが変わって、実際に動くか不明。サブタイトルの切り直しパッチmythtv_0.26.0-subtitle.patchパッチがそのまま当たったので簡単に修正。BS対応パッチmythtv_0.26.0-bs.zip前回作成したパッチを元に作成。録画バグ修正パッチmythtv_0.26.0-tuning.patch修正されている可能性もあるが、念のため作成。Scanで非契約チャンネルに切り替えると、エラーと認識して動作しなくなってしまう。MythTVに無料番組だけ見るチャンネルを登録していると厄介だ。times.FUSE_b25はエラーカウントが一定数(5)溜まると動作しなくなる仕様になっている。ECMのリターンコードがエラーでもエラーカウントを上げてしまう。そこで、ECMが非契約のリターンコードを返してもエラーカウントを上げないようにする。8903,8503,8303bcas.cを変更して、非契約でもエラーカウントを上げないようにする。through;"にして、399~406行を削除すればいい。CommentMythTV+FUSE_b25のBS/CS環境アンテナを110度CS対応にしたので、試用期間の残っているB-CASカードを使って検証してみた。MythTVにはBS対応パッチを当ててある。アンテナとケーブルアンテナを変える前はBSのほとんどのチャンネルが受信できたが、周波数の高いDlifeなどは受信できなかった。新しいアンテナに交換してもDlifeとCSの受信状態が悪く、CSの信号レベルが低かった。別の部屋のテレビは正常に受信できていたので、古いケーブルを交換してみると改善した。受信確認チャンネル登録スクリプトでチャンネルを登録して、視聴してみる。BSはすべてのチャンネルが正常に視聴することができた。チャンネルがCSに変わると極端に精度が落ちた。ほとんどが受信状態が悪いチャンネルで全く見れないチャンネルも多かった。正常に視聴できるチャンネルは一握り。見れないチャンネルから特徴を探ってみるが、特定の周波数でもない。チューニング情報にも誤りはない。mythtvには原因がわかるログが見つからなかったが、syslogには大量のエラーが表示されていた。pid:0x0701MythTVに原因がないか切り分けるためにtuneコマンドとcatで録画する。確認したところ、MythTVでの視聴と大差ない。TvtPlayで確認していて、そこでサービスがいくつもあるのに気がついた。BSはTSIDでチャンネルを分けているのに対して、CSはserviceidでチャンネルを分けている(一つのチャンネルにサービスがいくつもある)。FUSE_b25でCSは見れない?CS放送は一つの周波数にいくつもサービスが載っていてその数も多い。FUSE_b25はそのすべてをデコードしようとするので、処理し切れない可能性が出てくる。すると、FUSE_b25ではCSを見れないことになる。見れないのは自分の環境だけかもしれないが、見れないという情報がいくつかある。FUSE_b25の仕組みからしてどうにもならない。MythTV+DVBでのCS録画はMythTVにb25デコード機能を付けない限り難しいだろう。無料放送だけを見るので個人的な影響は小さいだろうが。BS対応パッチMythTVでBSのチューニングをできるようにするパッチを更新したので、使い方もまとめる。安定化させる対策を行なっても0Byteで録画されない不具合の対応コード整理LNBON/OFFでパッチを分離channel_add.shにuseonairguideとcallsign/nameの設定機能を追加channel_add.shを4桁以上のチャンネル番号に対応させた不具合について0Byteの時にログを確認すると次のようなメッセージがあり、全く別のチャンネルのtsidとPATが出力されていた。PAT!チューニングが失敗しているか間に合っていないようなので、s2scanに習ってチューニング前にウェイトを挿入するようにした。libs/libmythtv/dvbchannel.cpp通常はmythtv-bs-lnb.patchで問題ないがCATVやブースターなどを使っている場合はmythtv-bs-nolnb.patchを当てる。対応しているMythTVのバージョンは0.24系チャンネル登録の方法MythTVのチャンネルスキャンには対応しないのでスクリプトを使ってデータベースに直接入力する。channel_add.shの最初の変数を環境に合わせて書き換える。}sourceidは衛星側のビデオソースのもの、chan_numは好みのチャンネル番号を指定する。frequencyはs2scanの結果から、それ以外はTVTestに付いてくるPreset_BS.ch2、Preset_CS.ch2をCSVとして開いて見るとわかりやすい。IDがpidにあたる。netidはBSが4、CS1ネットワークが6、CS2ネットワークが7となる。sourceidは衛星側のビデオソースのもの、chan_numは好みのチャンネル番号を指定する。airguideに1を指定すると番組表のスキャンが有効になる(0で無効)。chan_nameにはチャンネル名が指定できる。CSに関しては受信できるか怪しい。libs/libmythtv/dvbstreamhandler.cpp.rejパッチを何も考えずに当ててもほぼ全滅。成功しているのは単体ではあまり意味のない部分のみ。ISDB対応版の0.25が出るまで様子を見る他ない。Debian-Multimediaのmythtv-0.24.2は次の方法で入手できる。mythtv_0.24.2-0.0squeeze1.dscこのソースはいつまでダウンロードできるんだろう。Comment録画安定化のためにPT2+FUSE_b25+MythTVをDebianで使う上で録画失敗から対策したことを対策箇所ごとにまとめる。Overflowed"というエラーを出して、以降の部分が録画されなくなる。エンコードの際は、CPUコア(スレッド)の数より少ないスレッド数を指定する。[オプション]更にfuse_b25の優先度は高くし、エンコードの優先度を低くしておく。[オプション]また、録画ディスクのI/Oに負荷をかけすぎても同様のことが起こるのでTsSplitterを使う場合は必ずWAITオプションを指定する。録画の開始時にMythTVのバックエンドが落ちることがある。PIDファイルが残るのでmythbackendのプロセスがなく、PIDファイルが残っていたら再起動させる。念のためfuse_b25の再マウントも行う。@Wikiやおよろず本仕込み言霊メタ情報ログイン投稿フィードコメントフィードWordPress.orgおすすめ@takaakis62さんのツイート。