Linuxでテレビ総合スレ 避難所 2
■ このスレッドは過去ログ倉庫に格納されています
来たぞ
ほぼ完全体だ
https://github.com/nns779/px4_drv/issues/1#issuecomment-401595309
> 0a43c3b にてUHFの13-52ch限定ですがT側(px4video2,3)での録画ができるようになりました。 >>121
この6月版のドライバはBS再編対応してるっぽい と言う事はfoltia版の修正をやっとしったっていうことかな
ただビルドするだけなのに糞みたいに遅いのがプレ糞 px4_drvの作者です
T側に対応するまでに時間が掛かってしまいました すみません
R850のレジスタ値の設定を周波数から行う処理が完成するまでT側の対応をするつもりは無かったのですが、
解析がかなり大変で完成がいつになるのか分からなかったので、暫定的に公式ドライバの設定値をあらかじめキャプチャしたものを使用する形としました
ここで1つ注意点
公式ドライバで発生するT1->T0の順に開いたときのドロップは、px4_drvでも発生します
気になって挙動を調べてみましたが、T0のR850のレジスタに初めて値を書き込むと必ずと言っていいほどT1のR850に影響を及ぼすので、
なんだかどうしようもなさそうといった感じです
このドロップは諦めるしかなさそうです…
その他は、T側のチャンネル設定直後のTSにゴミパケットが少し入ること以外は問題なさそうです >>136
謝るなんてとんでもない
うちのラズパイ3でもS、T共に正常に動きました
本当にすごいです px4_drvうちではdropするなあ
単独で20秒録画してtsselectするとdrop数が5くらいある
環境1:
Proxmox VE 5.2-3(Debian9相当)カーネル4.15.17-3
環境2:
環境1の上に構築したDebian9(kvm)+USBパススルー
recpt1はPlexの同梱版と
https://github.com/stz2012/recpt1
の両方をテスト
プレクス版でもたまにdropするのでおま環の可能性が高いが、
予備機で別のOSでも試してみる。
ラズパイ3で動いた人はdropなしでいけてるのかな。 140だけどワッチョイって被るのね
dropは確認してなかったので今夜試してみますわ px4_drvの追加報告
うちのラズパイ3でも動いたがtsselectで多少のdrop表示
ただ実際に動画を見ると録画開始と終了時にちょっとノイズがあるだけ?
それなら実運用できるかもとテスト続行
2並列〜4並列の録画テストを何度かやったところ、OSが固まる現象が発生
電源は落ちていなくて、カードリーダーのLEDも元気に点滅してるが
pingが通らずsshもつながらず電源再投入を強いられる
syslogにはそれらしい記録なし
発生はラズパイとProxmoxで1回ずつだが
テスト時間を考慮すると発生率は低くないと思われる
別ハードなので単なるおま環ではなさげ
以上とりあえずの報告
W3U4は実運用中なのでテストは断続的にしかできないが
何かできることがあれば協力したい >>146
ご報告ありがとうございます
px4_drvをmakeする際にオプションとして DEBUG=1 を付けるとデバッグログが出力されるようになりますので、
OSが固まる前(後)のデバッグログを頂くことは可能でしょうか >>140だけどラズパイ3でtsselectを確認したところ>>142と同じくらいのdrop数
別マシンのPT3+recdvbでも同じことを試してみたけど同じようなdrop数だった px4_drv すごいですね。
自分は Q3PE4 なのでまだ試せてないですが Q 対応の予定はあるんでしょうか。 >>147
146です
DEBUG有効状態でハングアップ再現しました。
デバッグログ取れたと思うので今夜にでも上げます。
(職場からの遠隔操作なので、ハングアップの回復まではできないため) あとdropに関しては、
録画時間20秒でも10分でも5件程度(tsselect読み)なことと
動画を実際に見ると録画開始時/終了時くらいしかノイズがないことから
実運用ではあまり問題ないんじゃないかと思います px4_drvの作者です
TSの頭のドロップはどの環境でも出るみたいですね とりあえずそういうものであるということでお願いします
OSがハングアップする原因は、色々考えた結果と勘からringbufferに問題があるような気がしてます
>>149
px4_drvは一応Q3U4やQ3PE4も認識しますが、私の手元にそれらのデバイスがないため動作の確認は行っていません
もしデバイスが手に入ったらpx4_drvで動作確認をして対応させるつもりですが、手に入れるつもりは今のところないので対応の予定はありません
ただ、現状のドライバでもとりあえずは動作してくれそうな気はします px4_drvの作者です(2)
>>150
調査したところ、どうやらドライバが解放後のメモリを読みに行ってしまうことがあることが原因でハングアップしている可能性が高いのですが、
ハングアップするタイミングはrecpt1の終了時でしょうか? >>153
150です。
正確なタイミングはわかりませんが、録画ファイルはほぼできていたようなので、
その可能性はあります。
/var/log/debugは取れてますが、素人目に怪しい情報はないような。
(その前の正常時と大差なく見えるので)
アップロード先を提示してもらえればアップします。 >>154
ringbufferが怪しいという前提で修正をしてみました
もし別の箇所に問題があるとすると全く意味がないかもしれませんが
ログですが、up.mapopi.comかpastebinあたりにアップしていただけるとありがだいです >>131
このパッチを入れた ffmpeg で mpv を build してみたけど vaapi 使うとダメだな
やっぱり >>132 じゃない? >>156
ありがとうございます
拝見しましたが、こちらは /var/log/debug の内容をそのまま貼り付けたものということで間違いないでしょうか
どうやらログの一部か欠けているようで、正常な動作であるかの判断ができなかったので一応確認させてください >>158
/var/log/debugそのままです >>159
ですよね…
ハングアップした際にログがおかしくなることも考えられなくはないと思うこととします
本来であれば起動からシャットダウンまで異常が無い状態で録画した場合のログと比較するべきなのでしょうけれど
修正版で問題なく動作するようであればその必要はなさそうです このスレで聞いて良いのかわからんけど、NHK BS1のBS世界のドキュメンタリーで
最近ARIB字幕が2つ(VLCで見ると2つとも言語はJapaneseになってる)ついている
回が何回かあったんですが、うちだけの環境ですか?
chinachuのスクリプトでarib2ass(https://github.com/Piro77/arib2ass)
で字幕をつけてエンコードしてるんですが、2つ字幕があるとエラーがでてしまうようで
エンコードまでいってくれないんです。回によってはarib字幕が一つしかない回もあって、
その時はうまくエンコードできるんですが、どういった意図で字幕2つ(2つとも同じものです)
つけてるんでしょうか? 映画なんかじゃ普通にあるんじゃない?普通の字幕の他に、
吹き替え時用に画面内の文字や外国語音声の字幕を使う場合と 最近良く、fuse_b25が飛ぶので原因調べてみたらストリーム読んでる時にEOVERFLOW起こしてるのでパッチ作ってみた。
https://pastebin.com/uBwcAenH
本当に実用に耐えるか自信がないけどできる人試してほしいのです。 ごめんなさい、diffのとり方間違えてた。
こちらが正しいです。gitになってる非公式版からのdiff。
https://pastebin.com/22DnGRF9 >>164のパッチは、DVBデバイスからストリームデータ(と言うかパケット?)を読みすぎて、バッファオーバーフローエラーになった時に、
そのパケットを棄ててしまうと言う乱暴な「対策」です。
もう少しいい方法が絶対にあるけど、試してみてくださいませ。 >>152
ご回答ありがとうございます。
試しに Q3PE4 でドライバロードしてみたところ8チューナ認識できました。
先に試してみればよかったですね。
px4video[0-7] まで一通り recpt1 でチューナオープンもできましたので、
しばらく動作させてみます。
px4_drv: px4_drv version 0.1.0
px4_drv: IR mode: 5
px4_drv: tsdev 0: px4video0
px4_drv: tsdev 1: px4video1
px4_drv: tsdev 2: px4video2
px4_drv: tsdev 3: px4video3
px4_drv: IR mode: 5
px4_drv: tsdev 0: px4video4
px4_drv: tsdev 1: px4video5
px4_drv: tsdev 2: px4video6
px4_drv: tsdev 3: px4video7
usbcore: registered new interface driver px4_drv PT3の中古相場が3万円を超える中、Linux使いにも希望の光が 仕様が公開されてないデバイスのドライバとか書ける人マジで尊敬する。
こういう下層の実装って仕様書が手元にあっても記述の不備とか想定外の動作で苦しむのにどうやって作ってるんだろう?
ioctl()の監視とかするのかな。
俺のレベルが低すぎて想像がつかないや。 そいや無知で恐縮なんだが、PT3のubutu標準ドライバやプレクスの公式ドライバはどこがダメなのかよくわからない。
ついでにrecpt1とドライバも半公式?とstz版とm-tsubo版の違いがよくわからない。
何を基準に選定すりゃいいんですか・・・ pt3のはlinuxカーネル取り込まれたdvb版のことかな。
別に特に悪いところはない。カーネルに取り込まれているからpt3を刺すだけで動いて楽
強いて言うなら、m-tsudo版のcdevドライバに比べたら重いくらい
プレ糞のドライバはソースがないので、なにかバグがあってもユーザーで修正できない点が糞
この間のBS再編成みたいなときに対応できない。
(最近になってやっと修正したドライバが出たが、おっせーんだよカスが)
使用できるカーネルのバージョンが固定されいるので使用できるディストリが固定される & カーネルのセキュリティアップデートができない。
なによりプレ糞がサポート投げたら使用不可になるので、PX-W3PEのようにただのゴミになる
アーキテクチャもamd64でしか使えないのため、raspberry piとかで使用不可
recpt1は知らねえ >>172
おまえ、えらい口が悪いな、最近出所したばかりのチンピラか? >>174
えらく顔が悪い出没したてのオークみたいな俺よりマシ
>>172
サンクス >>160
最新版でもハングしました。ubuntu16.04、eprecunaで録画予約して実験しました。ふたつ目の録画が始まる直前にハングしてます。ログありますけど、要りますか? >>160
>>159までの一連の報告をしてた者です
>>175の方とは別です
うちはraspberry pi3ですが修正版でもハングします
チューナーが実運用中なのと多忙のためなかなか報告できずすみません
なおうちのテストは単にrecpt1に&付けて4並列実行x20秒を繰り返すだけです 要りますか?とか毎回作者に返事要求せずにさっさと上げればいいじゃん
わざわざ聞く意味わかんねぇわ >>177
いかにも、5ちゃんねるっぽさが垣間見えるレスだな px4_drvの作者です(3)
>>166
おー動きますか
動作報告ありがとうございます
>>175
>>176
チューナーの使用開始の処理の怪しそうなところを直してみました
お試しください
>>175
ログですがお願いします >>180
176の報告者です
最新版で、ハングアップしなくなりました
4並列x20秒テストをそれなりの回数やって一度もないのでうちの環境では大丈夫と判断します
あとdropについてはrecpt1の出力tsにはやはり数件ありますが、mirakurin+録画ソフト(うちはEPGStation)を経由した出力には全くありません
コマンドの録画開始時か終了時に少し出るのでは、という以前の仮説通りに見えます
とにかくうちの使用条件は無事クリアしたのでこれから運用環境に組み込みます
ありがとうございました >>182
ありがとうございます
確認いたしましたが内容は概ね予想通りでした 恐らく昨日の修正版でハングすることなく動作するようになると思います
ただ1つ気になった箇所がありましたのでお尋ねします
ログにpx4_drvが解釈できないioctlが投げられた記録があるのですが (unknown ioctl 80088d81)、
recpt1はどちらのものを使用されたか教えていただけないでしょうか
>>183
ハングアップしなくなりましたか 良かったです
どうやら今回の問題は録画開始/終了毎にメモリの確保/解放を行っていたことと、メモリ確保時のフラグの指定がよくなかったことが重なって起きたようです
録画終了時に解放済みの領域にアクセスしてしまうというのは見当違いだったのかもしれません
ですが、ringbuffer周りのコードを見直す良い機会となりました
dropについてはおっしゃる通りであると私も認識しております
px4_drvの不具合修正へのご協力ありがとうございました
また何かございましたらご遠慮なくどうぞ >>184
183です
運用環境でも問題なく動いていますが、今後何か発生したらgithubの方で報告します。
w3u4発売から約一年半、やっとやりたいことができた思いです。偉業と称えさせて下さい。
なおうちの運用環境はProxmoxVE(仮想ホスト)上のlxcコンテナです
ホスト側にドライバ入れて/dev/px4video0等ができれば、それをコンテナ側と共有することでコンテナ側に録画サーバを構築でき、kvmより軽量でシンプルになるので重宝しています
ProxmoxはDebian9+ほぼ最新のカーネルがベースなのでPlex版ではlxc化は不可能でした PT1、PT3ドライバと並ぶLinux3大偉業やで
お節介だけどGitHubのリポジトリにはライセンスも追記した方がよいかも
あえてライセンス無しとしてるならスルーで >>185
これまで物理以外だと適合OSのVMに対してUSBパススルーしかなかったから、
選択肢が広がるよね >>187
そう、まさにそれ
しかもkvmのUSBパススルーだと原因不明の大量dropするので、ホストにUSB RedirectorというUSBデバイスサーバを入れてゲストから共有する方法で回避してた(なぜかこれだとdropしない謎)
lxcで使えるのはマジ便利 >>184
175です。最新版でハングせず動作してます。ありがとう。
recpt1はPLEX配布のLinuxドライバに同梱されてたやつです。 >>183
>>184
ドロップに関してですが、ドロップした位置の情報を出力するように修正した
tsselect にかけた結果を貼っときます。
ttps://pastebin.com/RQnrEth3
・最後のドロップ位置は 256432
・ファイルサイズは 21475428
・offset=0:0:0 (0) は TDT/TOT (5秒程度の間隔) が一回も来ていない
ということで先頭付近ですね。一応、10秒程度録画、tsselect 実行を何回か
繰り返してみましたが全て同様に先頭付近でした。
filename : bsa.ts
filesize : 21475428
drop pid=0x0140, d= 1, offset=148332, offset=0:0:0 (0)
...
drop pid=0x0000, d= 1, offset=256432, offset=0:0:0 (0)
pid=0x0000, total= 99, d= 1, e= 0, scrambling=0, offset=118440
...
pid=0x0140, total= 92157, d= 2, e= 0, scrambling=92157, offset=4700
pid=0x0141, total= 1308, d= 1, e= 0, scrambling=1308, offset=164500
... >>191
乙
mirakurunを経由すればほぼdropしないことが実証されて安心 >>191
>ドロップに関してですが、ドロップした位置の情報を出力するように修正した
>tsselect
これ気になる >>184
すごいことになってますね!!!
Linuxカーネルにマージされる(≒今後第三者からもメンテナンスされ続ける)方向を考えると、できるだけ作者名を明示してGPLv2であると宣言しておいたほうがいいですよ。 px4_drvの作者です(4)
ご報告ありがとうございます
どうやら最新版で特に問題なく動作するようですね
よかったです
>>185
偉業だなんてとんでもないです…
大体は公式のドライバがやっていることを真似してるだけです
>>190
PLEX版recpt1ですね
確認したところ、>>184でのioctlはPLEX版recpt1がASICENなデバイス向けに発行するもののようでした
U4とPE4はこのioctlの機能とは関係ありませんので特に問題なさそうです
>>186
>>194
MODULE_LICENCEはGPL v2としていますので後日ライセンスを追記しておきます
ですがこのドライバはdvbではないのでLinuxカーネルへとマージされることはないでしょう
作者名ですか… 一応ただの名無しですし… >>191
わざわざありがとうございます
どうやら先頭の1500パケットほどの中にドロップが含まれる傾向にあるようですね
px4_drv側で先頭のパケットを捨てるようにすればdropは出なくなりそうですが、
そのままでもやはり実運用上は問題なさそうです 最初のコミットが1月だから地道な活動乙や
定価で買えるダブルチューナー機をLinuxの好きなディストロで使えるのはかなり大きい
もう転売屋からPT3を買う必要もないんや >>196
うちの環境だとPT2でも同じ感じ
charadevで運用しているがDVBの試用でdropを見つけるまで気付かんかった
自分はrecpt1のtsspliterにエラーチェックを追加してして先頭付近でエラーが
出たら捨てるようにして対処した px4_drv で Q3PE4 を使ってる者です。
あれからずっと録画していますが、幸い自分の環境ではハング等は発生せず快適に使えていました。
せっかくなので本日ドライバは最新にアップデートしました。
Q3PE4 で使っていて1点だけ気になるメッセージがあるのですが、recpt1 で録画をすると
LNB のオプションの数値にかかわらず以下のメッセージが表示されるようです。
Power on LNB failed: /dev/px4video0
また syslog には
px4_drv: LNB power supply is disabled.
が記録されます。
実害は無いのですが毎回出力されるので syslog や dmesg がこのメッセージで埋まってしまうのが気になってます。 私もpx4_drvを使わせていただきました。すごいですね。
ubuntu-18.04(x64)+Q3U4で使っています。8チャンネル認識しているようです。
tsvファイルはW3U4の情報をもとにしてファームウェアを抽出しました。
まだ数秒程度のテストのみですが、recpt1でT/Sともに録画できました。
Q3PE4のかたと同様、LNBのメッセージがでますが、録画はできているように見えます。
予約録画環境が整ったら、実践的なのを試してみます。 px4_drv 凄いね
usb接続だから録画中にエンコとかで負荷が高くなるとdropしそうなイメージなんだけど実際はどんな感じ? まさかPX-W3U4がLinuxの鉄板チューナーになる日が来るとはね・・・
予備に一つ買っておこう アキバのBuymoreでPLEXの
w3pe4 1人2限 9980円
q3pe4 1人2限 18980円
q3u4 1人2限 18980円
でうってる、まだ在庫はあるもよう >>550
1万切ってるのか安いなw
中でUSB接続してる変態仕様め PLEXの本スレとどっちに書くか迷ったけど
px4_drvもあるから今ならこっちかなと 初心者でよくわからんけど、
どっかのすごい人がPLEXのドライバ作ったってこと? raspi3で4ch同時は安定してます?
安定してるならwin10+PT3から乗り換えようかな 本運用前のテストをラズパイ3でやったけど、ハングやdropの問題はない
ただrecpt1叩いてから実際に録画始まるまでがちょっと長い気はした
20秒指定でrecpt1叩いたら終了時にRecorded 40secとか出たり(これはたぶんコマンド実行時間で、実際に録画されたtsは20秒)
録画ソフトの設定にもよるけど、時間きっちりに始まる番組だと頭切れたりするかも
ただうちは録画保存先がNASなのでそれが影響してるかもしれん >>209
ありがとう
T1→T0でドロップは結構激しいの?
回避策はありますか? >>212
T1→T0は普通にドロップする
上でドライバ作者の人が書いてるがおそらく機器レベルの問題で、ドライバでは回避できない
うちはmirakurunなので根本的には対策なし
地上波あまり録画しないからT1殺してる まあ地デジチューナーは他にもドロップしないのあるやろし… >>213
T1→T0ってどういう意味?
地上波向けのデバイス1から地上波向けのでばいす >>215
しまった途中で送ってしまった。
この表記ってチューナーからチューナーにデータが流れることがあって、その場合にドロップするってこと?
いまいち状況が飲み込めん。 PLEXの現行チューナーのQ/W3PE4とQ/W3U4で出る、T1→T0の順番でチューナー開くとT1にドロップが出る症状の事 >>215
T1を先にオープンしちゃうとT0初回オープン時にドロップが出るってやつっしょ
だからT0をはじめに開けばその問題は回避できる 番組時間に差がある場合
例えば時系列で
T0録画開始
T1録画開始
T0録画終了
T0録画開始
となったらdropするのかな
「両方停止状態→T1→T0のとき限定」だったら該当しないが >>218
>>217
あー、そういうことか。
コマンド単体じゃなくてmirakurunみたいなデーモン使えば運用でなんとかなりそうな気がするな。簡単なパッチは必要そうだが。 mirakurunはチューナーに利用優先度設定ないから順序制御できない
それに自身のEPG更新のために空きチューナー使うからさらに複雑になる
録画コマンドをさらにラッピングして「T0T1が両方未使用なら必ずT0から使うシェル」でも自作すればいけるかな T0T1が両方とも未使用の状態からT1を開いて次にT0開くとT1がドロップする
未使用の状態からってのがポイントで一度でもT0とT1が同時に起動した状態があれば
以降はT1側を開きっぱなしでT0を開閉してもT1はdropしない 起動時にスクリプトでT0とT1を同時に録画すればいいのか? 間違い。T1を録画して直ぐにT0を録画すればいいの? >>224
先にT0を開いてある時だけT1を開くみたいな運用で回避 >>224
常にT0から開けばOk
なので >>221 さんの方法が取れれば解決する、つかPLEXファーム修正しろ チューナー大量に買ってそれぞれのT0だけ使えばいいじゃん わざわざ1→0で運用する意味が分からん
見つけたのはえらいと思うけど mirakurunもチューナーのプライオリティとかEPG取得専用チューナーとかそういうの設定できたらなぁ。
まぁそんな複雑になりそうなことやらないほうが保守性高くなるから自分から書きたい・保守したいってやついないだろうけど >>230
mirakurun作者の同人誌でpt2ドライバのバグに対応しました的な話があったような気がする(ぱらぱらみただけなので見間違いだったらスマソ)。
下層の不具合も全無視ってことはないかもなぁ。
ただ、Linux周辺ではプレクチューナはマイナーなので可能性は低そうだが... >>221的なものを作る場合の注意点
mirakurunはtuner.ymlに書かれたコマンドを録画開始時に起動し、録画終了時には「mirakurinが呼び出したプロセスだけ」をkillする
ので、シェル等を被せる場合はシグナルをtrapして、シェルから呼び出したrecpt1を終わらせる必要がある ■ このスレッドは過去ログ倉庫に格納されています