【視聴・録画】Linuxでテレビ総合7【デジタル/アナログ】at LINUX
【視聴・録画】Linuxでテレビ総合7【デジタル/アナログ】 - 暇つぶし2ch15:login:Penguin
12/07/16 08:16:14.77 VIs4rRmO
>>9

やったこと:
SDKをCに焼き直しとLinux用に翻訳
現状:
FPGAのレジスタ読んでバージョンチェックなどはできる
テストモードでPT3->PCへDMA転送できる
チューナーの初期化処理はタイミングの問題なのかうまくいくときといかないときがある
チューナーのPLLがロックしない

I2Cの命令領域とデータ領域があるように書いてあるけど
ソース読むとデータ領域に命令書いてるように読める
だれか分かる人教えて

PT1のMakefileなど使いまわさせてもらってます。感謝
URLリンク(www1.axfc.net)

16:login:Penguin
12/07/16 10:15:32.42 XvZMbo4g
>>10
罵倒してないで、自分が何をしたか言ってごらんよ。

17:login:Penguin
12/07/16 11:39:31.18 0TJnGGO9
何も出来ないからやってるだけだからそっとしといてあげて

18:login:Penguin
12/07/16 11:39:38.17 bu+f+Xt2
チェリーのツリーをカットしました

19:login:Penguin
12/07/16 13:21:56.57 CSuii1D1
「悪しざまに罵れば誰かが反発して何かお宝が出てくるかもしれない。」

卑屈でひねくれた性格の人は、そういうおねだりの仕方をする。

20:login:Penguin
12/07/16 13:54:06.60 xtdT1Nk7
それ以前にPT2の在庫を抱えたクソ業者の営業工作でしょw

21:login:Penguin
12/07/16 17:55:42.09 kMfCiuX5
PT2の在庫なんてあんの?だいぶ前に製造中止になってんのに?
そんな昔のやつがまだ在庫であるなんて在庫管理がめちゃくちゃなんじゃないの?
データベース使ってんの、使ってないでしょ。
今時データベースも使ってないなんて。自転車操業でしょ。
そんな管理体制だからクソ業者って言われんだよ。
人を呪わば穴二つ。チョンチョン、

22:login:Penguin
12/07/16 20:30:37.47 RJZOFPFb
>>15乙 この dmesg は想定どおり?
[ 115.400244] pt3-pci.c: 0.0.1 2012-07-07
[ 115.400289] pt3-pci 0000:05:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 115.400294] Revision check passed. revision=0x1
[ 115.400297] Bus Mastering Enabled.
[ 115.400301] request_mem_resion success. mmio_start=0xd0001000 mmio_len=4096
[ 115.400313] io_remap success. ffffc9000167e000
[ 115.400314] request_mem_resion success. mmio_start=0xd0000000 mmio_len=4096
[ 115.400318] io_remap success. ffffc9000173c000
[ 115.400320] Check PTn is passed. n=3
[ 115.400321] Check FPGA version is passed. version=0x4
[ 115.400325] can_transport_ts = 1
[ 115.400325] dma_descriptor_page_size = 20
[ 115.989677] bus read data=0x48
[ 116.021621] bus read data=0x48
[ 116.025620] tuner_power_on
[ 116.037594] set_tuner_sleep isdb=0 tuner_no=0 sleep=0 status=0x0
[ 116.037598] set_freq isdb=0 tuner_no=0 channel=0 offset=0
[ 116.053524] frequency 1048980 Khz
[ 116.057566] channel=0 index=0 sd=0x38fae1 N=0xd A=0x5
[ 116.125397] bus read data=0x01
[ 116.125404] qm_read addr=0x0d data=0x01
~~~~~~略~~~~~~
[ 117.131666] qm_get_locked 0 status=0x0
[ 117.131669] fail set_frequency. status=0x30b
[ 117.131672] fail init_all_tuner. 0x30b
[ 117.131675] PT3:device[0]= (null)
[ 117.144540] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 117.144625] IP: [<ffffffffa01d5ac1>] pt3_dma_build_page_descriptor+0xa1/0x100 [pt3_drv]
[ 117.144701] PGD 36463067 PUD 36b38067 PMD 0
[ 117.144748] Oops: 0002 [#1] SMP

23:login:Penguin
12/07/16 22:39:31.15 VIs4rRmO
>>22
バグです
報告ありがとう

仕事が忙しくなりそうなんでボチボチ進める予定です
他にもドライバ作ってる方が居るようなので情報共有できればと
現状のものをそのままアップしました
凡ミスがまざってたりしますが、
なにか気づかれた点があれば報告していただけると嬉しいです




24:login:Penguin
12/07/16 22:48:12.81 RJZOFPFb
>>22
了解です。環境情報出した方が良い?
鼻毛サーバ+Ubuntu-12.04です

デバッグコード山盛りで場合分けしやすめで、
コード書いちゃってとりあえず作る。
という方針で行き当たりばったりでみんなでデバッグでもいいんじゃない。
これやってみて。という依頼だったらいくらでも協力しますよ



25:tomy ◆CfWlfzSGyg
12/07/16 22:48:55.26 vT157pp6
>>15
とりあえずqemuの環境が作り終わったんで
winのサンプルを動かしはじめたところだけど、
I2CはFPGA.txtとはちょっとレジスタの意味が違うかも。
0x14ってステータスだけじゃないのかな。

ざっと立ち上げログ(qemu)
PT1pci_mmio_readl: (00000000)addr=00000000
PT1pci_mmio_readl: (00000000)addr=0000000c
PT1pci_mmio_readl: (00000000)addr=00000014
PT1pci_mmio_readb: (00000000)addr=00000014
PT1pci_mmio_writel: (00000000)addr=00000010 value=11000
PT1pci_mmio_readl: (00000000)addr=00000014
PT1pci_mmio_readb: (00000000)addr=00000014
PT1pci_mmio_writel: (00000000)addr=00000010 value=10000
PT1pci_mmio_readl: (00000000)addr=00000014
PT1pci_mmio_readb: (00000000)addr=00000014
~略~
PT1pci_mmio_writel: (00000000)addr=00000010 value=117fa
PT1pci_mmio_readl: (00000000)addr=00000014
PT1pci_mmio_readb: (00000000)addr=00000014
PT1pci_mmio_writel: (00000000)addr=00000010 value=10000
PT1pci_mmio_readl: (00000000)addr=00000014
PT1pci_mmio_readb: (00000000)addr=00000014
~略~
PT1pci_mmio_writel: (00000000)addr=00000008 value=c
PT1pci_mmio_writel: (00000000)addr=00000010 value=20000



26:login:Penguin
12/07/16 23:38:05.02 VIs4rRmO
>>25
>0x14ってステータスだけじゃないのかな。
リトルエンディアンならreadbでレジスタ(4byte)の下位1byteが読めるので
readbでもreadlでも必要な値はとれるんだと思います。


27:login:Penguin
12/07/16 23:56:36.75 VIs4rRmO
連投すみません

>>24
すみません、再現できないです><
デバッグ用のコード用意するので時間ください
私の環境はDebian wheezyでKernel 3.2.0です

>>25
ログありがとうございます
とても参考になります

28:login:Penguin
12/07/17 17:43:43.47 hTqPCJbf
>>15

FPGAのバージョンが古い場合。ちなみに、Linuxしかない環境で、FPGAを
最新に上げるにはどうすれば良いの?
Ubuntu 12.04TLSです。
Linux suzuka 3.2.0-26-generic #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

[ 7.633757] pt3-pci.c: 0.0.1 2012-07-07
[ 7.635617] pt3-pci 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 7.635624] Revision check passed. revision=0x1
[ 7.635628] Bus Mastering Enabled.
[ 7.635633] request_mem_resion success. mmio_start=0xfdbff000 mmio_len=4096
[ 7.635656] io_remap success. ffffc90000c7c000
[ 7.635658] request_mem_resion success. mmio_start=0xfdbfe000 mmio_len=4096
[ 7.635665] io_remap success. ffffc90000c7e000
[ 7.635668] Check PTn is passed. n=3
[ 7.635670] this FPGA version not supported
[ 7.635676] Error ep4c_init
[ 7.635704] pt3-pci: probe of 0000:02:00.0 failed with error -5

29:login:Penguin
12/07/17 20:41:05.42 53Pl1vvI
>>24
デバッグ用のコード入れてみました

>>28
どうもです
現状ではLinuxでFPGAのアップデートはできないと思います
SDKの非公開な部分を使うようなので>>25さんのように
本格的な解析が必要になるかと

前回分との差:
DMAdescriptor構築関数にデバッグ用コード挿入
その他細かいバグ修正+デバッグコード挿入

I2Cのエラーは出なくなりました
地上波チューナーはPLLのロックに成功してるみたい
BSチューナーはロックしない

本当にPLLロックしてるのか確認する方法を考え中です

URLリンク(www1.axfc.net)


30:login:Penguin
12/07/17 21:12:10.33 L70SEarF
PT3って今そこらへん?

31:login:Penguin
12/07/17 21:25:38.37 45/4V1e7
FPGAはWin8RPとか限定フリー配布してるのを実機に入れてアップデートするしかないかもね

32:22
12/07/17 21:33:47.51 WWURYLeK
>>29 乙です
型違いって言われてコンパイル通りませんでした。
dmesg は次に。

--- pt3_0717.original/pt3_bus.h 2012-07-17 18:25:18.000000000 +0900
+++ pt3_0717/pt3_bus.h 2012-07-17 21:29:07.355647903 +0900
@@ -23,7 +23,7 @@
void pt3_bus_start(PT3_BUS *bus);
void pt3_bus_stop(PT3_BUS *bus);
void pt3_bus_write(PT3_BUS *bus, const __u8 *data, __u32 size);
-size_t pt3_bus_read(PT3_BUS *bus, __u8 *data, __u32 size);
+__u32 pt3_bus_read(PT3_BUS *bus, __u8 *data, __u32 size);
void pt3_bus_reset(PT3_BUS *bus);
void pt3_bus_sleep(PT3_BUS *bus, __u32 ms);
void pt3_bus_end(PT3_BUS *bus);


33:login:Penguin
12/07/17 21:39:32.06 WWURYLeK
dmesg 1/2
[ 411.605856] tuner_power_on
[ 411.617834] set_tuner_sleep isdb=0 tuner_no=0 sleep=0 status=0x0
[ 411.617838] set_freq isdb=0 tuner_no=0 channel=0 offset=0
[ 411.633764] frequency 1048980 Khz
[ 411.637805] channel=0 index=0 sd=0x38fae1 N=0xd A=0x5
[ 411.809506] qm_get_locked 0 status=0x0
[ 411.809510] fail set_frequency. status=0x30b
[ 411.837411] set_tuner_sleep isdb=0 tuner_no=0 sleep=1 status=0x0
[ 411.901346] set_tuner_sleep isdb=1 tuner_no=0 sleep=0 status=0x0
[ 411.901351] set_freq isdb=1 tuner_no=0 channel=70 offset=0
[ 412.021139] set_tuner_sleep isdb=1 tuner_no=0 sleep=1 status=0x0
[ 412.033118] set_tuner_sleep isdb=0 tuner_no=1 sleep=0 status=0x0
[ 412.033123] set_freq isdb=0 tuner_no=1 channel=0 offset=0
[ 412.049087] frequency 1049980 Khz
[ 412.053082] channel=0 index=1 sd=0x39fae1 N=0xd A=0x5
[ 412.224785] qm_get_locked 0 status=0x0
[ 412.224789] fail set_frequency. status=0x30b
[ 412.252738] set_tuner_sleep isdb=0 tuner_no=1 sleep=1 status=0x0
[ 412.316582] set_tuner_sleep isdb=1 tuner_no=1 sleep=0 status=0x0
[ 412.316587] set_freq isdb=1 tuner_no=1 channel=71 offset=0
[ 412.436373] set_tuner_sleep isdb=1 tuner_no=1 sleep=1 status=0x0
[ 412.436379] PT3:device[0]= (null)
[ 412.449180] Allocate Descriptor buffer.
[ 412.449295] dma maybe failed allocate desc_info->data 59
[ 412.449299] set page descriptor.
[ 412.449302] PT3:card_number = 0
[ 412.462820] Allocate Descriptor buffer.
[ 412.462876] dma maybe failed allocate desc_info->data 59
[ 412.462878] set page descriptor.
[ 412.462880] PT3:card_number = 0


34:login:Penguin
12/07/17 21:41:35.23 WWURYLeK
dmesg 2/2
[ 412.475699] Allocate Descriptor buffer.
[ 412.475752] dma maybe failed allocate desc_info->data 59
[ 412.475754] set page descriptor.
[ 412.475755] PT3:card_number = 0
[ 412.488672] Allocate Descriptor buffer.
[ 412.488724] dma maybe failed allocate desc_info->data 59
[ 412.488726] set page descriptor.
[ 412.488728] PT3:card_number = 0

$ uname -a
Linux hanage-pt3 3.2.0-26-generic #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

[ 412.436379] PT3:device[0]= (null)
ここが null になってるのが問題?

35:login:Penguin
12/07/17 21:55:33.40 53Pl1vvI
>>32-34
まいどどうもです

PT3:device[0]= (null)は正常なログです

DMA用メモリを一括で確保してデータ書き込んでるんですが、
その途中でエラーになってるみたいです
ロジックのバグっぽいので見直してみます


チューナーPLLの方はTSっぽいデータが抜けるんですが
レジスタ"TS Error Packet Counter"の値ががんがん増えていくので
何かが足りないみたいです><


36:tomy ◆CfWlfzSGyg
12/07/17 22:11:37.33 AiZyUWxQ
>>29

>地上波チューナーはPLLのロックに成功してるみたい

ってあるけど、I2Cの初期化とか設定はどこかに載ってる?
NDA部分だと思っていたんだけど。

>リトルエンディアンならreadbでレジスタ(4byte)の下位1byteが読めるので
>readbでもreadlでも必要な値はとれるんだと思います。

これは私の勘違い。
知っていたら教えてほしいんだけど、0x10のスタートアドレスって何?
I2Cのデータが取れはじめて見始めているけど、このアドレスとあまり関係ない位置にI2Cのデータを書いているみたいだけど(bar[1]の0x800番地以降)。



37:login:Penguin
12/07/17 22:58:38.17 53Pl1vvI
>>36
私は素人に毛が生えた程度なのでSDKを書き直したら動くかな
って動機で安直に進めてます

bar[1]にI2Cの命令かいて、0x10で命令開始、
0x14読んでシーケンス停止したときにACKがエラーになってない
を繰り返してて、
>地上波チューナーはPLLのロックに成功してるみたい
の根拠はSDKの公開部分を順番に実行して
ACKがエラーになってないってだけです

bar[1]の使い方は私も疑問です
SDKではbar[1]に0x800+(命令アドレス/2)の位置から
I2C命令を書いてますが、割る2ってなにって感じです
命令アドレスは大半が0で動いてる見たいですが、
4096+0, 4096+2048の場合が最初の方にあります
わざわざ4096+αと書いてあるんですが4096の意味がまったく想像付きません
そもそも4096+2048だとbar[1]からはみ出ますよね

38:22
12/07/17 23:50:20.80 WWURYLeK
>>35
Ubuntu 12.04 32bitをインストールして見たところ、
64bitとは異なるログが出ました。

[ 259.282376] PT3:device[0]= (null)
[ 259.286685] insmod: page allocation failure: order:9, mode:0x8020
[ 259.286692] Pid: 5149, comm: insmod Tainted: G O 3.2.0-26-generic-pae #41-Ubuntu
[ 259.286696] Call Trace:
[ 259.286709] [<c158f6ca>] ? printk+0x2d/0x2f
[ 259.286719] [<c10faf0f>] warn_alloc_failed+0xbf/0x100
[ 259.286726] [<c10fdce3>] __alloc_pages_nodemask+0x513/0x6e0
[ 259.286735] [<c1133ea5>] ? __kmalloc+0x195/0x1e0
[ 259.286743] [<c10152f0>] ? dma_set_mask+0x60/0x60
[ 259.286749] [<c1015362>] dma_generic_alloc_coherent+0x72/0x110
[ 259.286755] [<c10152f0>] ? dma_set_mask+0x60/0x60
[ 259.286766] [<f89f9094>] create_pt3_dma+0x124/0x380 [pt3_drv]
[ 259.286775] [<f89f9dfd>] pt3_pci_init_one+0x81a/0x9d6 [pt3_drv]

39:22
12/07/17 23:51:55.96 WWURYLeK
続き
~call traceとか色々略~
[ 259.287004] DMA: 133*4kB 58*8kB 42*16kB 31*32kB 11*64kB 0*128kB 2*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 5924kB
[ 259.287019] Normal: 1376*4kB 892*8kB 380*16kB 128*32kB 87*64kB 42*128kB 12*256kB 12*512kB 8*1024kB 1*2048kB 0*4096kB = 53216kB
[ 259.287034] 119699 total pagecache pages
[ 259.287036] 129 pages in swap cache
[ 259.287039] Swap cache stats: add 597, delete 468, find 192/225
[ 259.287042] Free swap = 906272kB
[ 259.287044] Total swap = 907260kB
[ 259.291086] 227232 pages RAM
[ 259.291090] 0 pages HighMem
[ 259.291092] 5403 pages reserved
[ 259.291094] 184603 pages shared
[ 259.291096] 111581 pages non-shared
[ 259.291100] fail allocate consistent. 10
[ 259.291209] PT3: fail create dma.
[ 259.293760] pt3-pci: probe of 0000:05:00.0 failed with error -5
[ 268.595407] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id

40:tomy ◆CfWlfzSGyg
12/07/17 23:53:00.79 AiZyUWxQ
>>29
なるほど。じゃあ本格的に動くのはまだまだ先だね。

>4096+0, 4096+2048の場合が最初の方にあります
アドレスは合わないんだよね。
たしかに
addr=00000010 value=11000はあるんだけど、
その後に0意外を書くのがaddr=00000010にvalue=117faを書いているんで。

I2Cの初期化の一番初めを書くと、
こんな感じ
qemuでPT1pci_mmio_writel2がbar[1]側、
PT1pci_mmio_writel/PT1pci_mmio_readbがbar[0]側のエミュレータ部。

PT1pci_mmio_writel2: (00000000)addr=00000800 value=8c882435
PT1pci_mmio_writel2: (00000000)addr=00000804 value=888e8c88
PT1pci_mmio_writel2: (00000000)addr=00000808 value=88ecc888
PT1pci_mmio_writel2: (00000000)addr=0000080c value=4ec88888
ここまでがI2C情報
PT1pci_mmio_writeb2: (00000000)addr=00000810 value=53
PT1pci_mmio_writeb2: (00000000)addr=00000811 value=0
PT1pci_mmio_readb: (00000000)addr=00000014
PT1pci_mmio_writel: (00000000)addr=00000010 value=10000
ここがI2C実行
SDKに従ってデコードすると
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)220301(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
ってところ。
ただその後やたら長い命令があるんでまだ解析中。



41:login:Penguin
12/07/18 00:56:20.24 ScyNpE2g
フラグじゃないの?

42:login:Penguin
12/07/18 05:54:41.12 2ncmjvxY
PT3って今プロ野球編?

43:login:Penguin
12/07/18 06:08:05.96 l3kAfJcc
ドライバとかの下回りについてはよくわからんのだが、登山に例えると何合目くらいまでに来てるんです?

44:tomy ◆CfWlfzSGyg
12/07/18 07:17:56.85 tmv5e8WH
>>43
正直に言うと富士山五合目駐車場でマイカー(SDK)を降りたところ。

45:login:Penguin
12/07/18 07:47:20.29 l3kAfJcc
>>44
わかりやすい例えどうもです
これからが険しい本番ってことね・・・

46:login:Penguin
12/07/18 10:46:49.70 Bfiu7NGx
>>40
>4096+0, 4096+2048の場合が最初の方にあります
すみません私のタイプミスでした。
SDKからコピペすると
startAddress[0] = 4096 + ( 0);
startAddress[1] = 4096 + (2042);
です。
なのでアドレス17faはSDK通りですね。申し訳ない
また、上記2つのアドレスを使う場合はI2C命令をbar[1]にコピー?設定?せず実行してますね。
SDKのコメントではアドレス4096を実行するのは復調ICの初期化のためのようです。
アドレスがbar[1]+0x800からのオフセットだとすると、
bar[1]の範囲外に初期化用の命令がセットされてるorセットしないといけない?

>>38-39
連続した1.5MB程度の物理メモリの確保x32回に失敗してるみたいです。
1.5MB,32回はSDK通りの数字のつもりですが、大きすぎるのかもしれません。
32bitの結果も踏まえて見直してみますね。

47:login:Penguin
12/07/18 13:43:46.90 AnFdWmQ0
オライリー本のEbook北
URLリンク(www.oreilly.co.jp)

48:login:Penguin
12/07/18 20:35:20.07 3rbsP2zK
>>38-39
定数をtypoしてました><
Debianのkernelだとたまたま同じ値だったので動いてたみたいです。
もう一度試してもらえますでしょうか
URLリンク(www1.axfc.net)

変更点:
BSチューナーの方も地上波チューナーと同じ状態になりました。
ただ、エラーがガンガン増えていくのも同じですw
周波数の計算ミスってるのか単純にSDKのコピーだとこの辺が限界なのか。

49:login:Penguin
12/07/18 21:43:47.57 Mkp80VeM
解析待ちであろうという希ガス・・・

50:22
12/07/18 21:45:03.44 cRpV/l7P
>>48乙です Ubuntu 12.04 32bit
[ 72.268211] pt3-pci.c: 0.0.1 2012-07-07
[ 72.268271] pt3-pci 0000:05:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 72.268277] Revision check passed. revision=0x1
[ 72.268282] Bus Mastering Enabled.
[ 72.268287] request_mem_resion success. mmio_start=0xd0001000 mmio_len=4096
[ 72.268307] io_remap success. f80f4000
[ 72.268311] request_mem_resion success. mmio_start=0xd0000000 mmio_len=4096
[ 72.268320] io_remap success. f8432000
[ 72.268324] Check PTn is passed. n=3
[ 72.268326] Check FPGA version is passed. version=0x4
[ 72.268330] can_transport_ts = 1
[ 72.268332] dma_descriptor_page_size = 20
[ 72.701372] tuner_power_on
[ 72.713342] set_tuner_sleep isdb=0 tuner_no=0 sleep=0 status=0x0
[ 72.713346] set_freq isdb=0 tuner_no=0 channel=0 offset=0
[ 72.729344] frequency 1048980 Khz
[ 72.733328] channel=0 index=0 sd=0x38fae1 N=0xd A=0x5
[ 72.845201] set_tuner_sleep isdb=0 tuner_no=0 sleep=1 status=0x0
[ 72.909065] set_tuner_sleep isdb=1 tuner_no=0 sleep=0 status=0x0
[ 72.909069] set_freq isdb=1 tuner_no=0 channel=70 offset=0
[ 73.024976] set_tuner_sleep isdb=1 tuner_no=0 sleep=1 status=0x0
[ 73.036966] set_tuner_sleep isdb=0 tuner_no=1 sleep=0 status=0x0
[ 73.036972] set_freq isdb=0 tuner_no=1 channel=0 offset=0
[ 73.052890] frequency 1049980 Khz
[ 73.056943] channel=0 index=1 sd=0x39fae1 N=0xd A=0x5
[ 73.168805] set_tuner_sleep isdb=0 tuner_no=1 sleep=1 status=0x0
[ 73.232678] set_tuner_sleep isdb=1 tuner_no=1 sleep=0 status=0x0
[ 73.232682] set_freq isdb=1 tuner_no=1 channel=71 offset=0
[ 73.348578] set_tuner_sleep isdb=1 tuner_no=1 sleep=1 status=0x0
[ 73.348584] PT3:device[0]= (null)
[ 73.362332] PT3:card_number = 0

51:22
12/07/18 21:59:56.19 cRpV/l7P
続いて Ubuntu 12.04 64bit
diff 取ってみてログがほぼ同じだったので、差分点だけ書き込みます。
desc_info overflowは64bitのみ出ます。
「PT3:card_number = 0」はどちらも4行出ていましたが、
>>50では改行が多いと怒られたで削ってます。
~先頭から差分無し~
[ 212.580988] request_mem_resion success. mmio_start=0xd0001000 mmio_len=4096
[ 212.581006] io_remap success. ffffc9000167e000
[ 212.581008] request_mem_resion success. mmio_start=0xd0000000 mmio_len=4096
[ 212.581012] io_remap success. ffffc9000170a000
~しばらく差分無し~
[ 213.660740] PT3:device[0]= (null)
[ 213.674387] desc_info overflow max=59 curr=59
[ 213.674393] PT3:card_number = 0
[ 213.689041] desc_info overflow max=59 curr=59
[ 213.689045] PT3:card_number = 0
[ 213.702722] desc_info overflow max=59 curr=59
[ 213.702726] PT3:card_number = 0
[ 213.716435] desc_info overflow max=59 curr=59
[ 213.716438] PT3:card_number = 0

52:login:Penguin
12/07/18 22:35:24.33 3rbsP2zK
>>50-51
なんどもありがとうございます。
32bitの方は想定通りですね。
64bitの方は失敗してますね、なんだろう。
32bitと同じ処理のはずなんですが、32bitと64bitでなにが変わるのかよくわかってません

>>49
謎のアドレス0x1000と0x17faの実行で初期化されてるという淡い期待と共に
動けばラッキーくらいの気持ちなのです

ただ、>>49さんのおっしゃる事ももっともで、これ以上お付き合い願うのは
心苦しく思いますのでソースのアップは進展があったときに行おうと思います。
お手間を取らせるだけになってしまい申し訳ありませんでした。

32bitの方でしたら”td/td”が動くはずです。
テストモード(LFSR)でDMA転送を行うx4チャンネル
チューナーのチャンネル設定をしてDMA転送するx2チャンネル
というコードになってます。
チューナーのチャンネル設定してDMAの方は先にも書きましたが
0x47で始まるTSパケットっぽいなにかが取れる事もありますし、
空っぽのファイルになることもあります
中途半端な現状ですが、遊んでいただけたらと思います

53:login:Penguin
12/07/18 23:28:33.73 cRpV/l7P
>>52
何となく構造体のパディングとか、
無宣言の関数の型の食い違い
あたりがありがちかなぁとかなんとなく思ってます。
週末ちょっと見てみます。

オモチャをつっつける状態になってる旨了解です。

54:login:Penguin
12/07/19 21:26:45.82 LowodA98
recpt1 epgrec epgdumpを使っているときCSのSIDが変わらずチャンネルが変わったときは、config.phpを直すだけで大丈夫?

55:login:Penguin
12/07/19 22:50:31.85 xoK+pqri
つdb更新

56:tomy ◆CfWlfzSGyg
12/07/19 23:15:46.11 Uucnh6+g
とりあえず取れたところまで。
デコーダー間違っているかもう一度チェックしてみるけど。。。
*I_ENDまでが1シーケンス。

(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)220301(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)221e10(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)260301(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)261e10(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)200140(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)201c10(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)240140(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)241c10(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)241ed9(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)221c15(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)221f04(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)261c15(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)261f04(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)201d01(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)241d01(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6011c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec600 ここは特殊?


57:tomy ◆CfWlfzSGyg
12/07/19 23:16:25.95 Uucnh6+g
その2
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec7(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)23(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630621(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f63008e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630150(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630188(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f63025e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f6302e2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630310(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630399(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630403(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630480(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630500(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630580(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630621(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f6308ff(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630979(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630980(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630a15(I_DATA_L)(I_CLOCK_H)(I_DATA_H)

58:tomy ◆CfWlfzSGyg
12/07/19 23:17:30.98 Uucnh6+g
その3
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630ab2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630b53(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630bc3(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630c46(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630ce7(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630d5c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630df8(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630e54(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630ef9(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f630f44(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630f80(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f63008e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)117f6302e2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)917f630188(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec0010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec0010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec0010c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec0011c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec000
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)26fec1(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)27(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)

59:tomy ◆CfWlfzSGyg
12/07/19 23:18:44.83 Uucnh6+g
その4
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600621(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f60008e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600150(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600188(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f60025e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f6002e2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600310(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600399(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600403(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600480(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600500(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600580(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600621(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f6008ff(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600979(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600980(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600a15(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600ab2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600b53(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600bc3(I_DATA_L)(I_CLOCK_H)(I_DATA_H)

60:tomy ◆CfWlfzSGyg
12/07/19 23:19:53.02 Uucnh6+g
その5
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600c46(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600ce7(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600d5c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600df8(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600e54(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600ef9(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f600f44(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600f80(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f60008e(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)137f6002e2(I_DATA_L)(I_CLOCK_H)(I_DATA_H)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)937f600188(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)241edd(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)221700(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6011c(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec605c5(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)220a00(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)2210b0(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)221100(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)220301(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60270(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec6060d(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60735(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)


61:tomy ◆CfWlfzSGyg
12/07/19 23:20:39.97 Uucnh6+g
その6(最後)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60802(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60938(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60afa(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60be1(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60c03(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60cc3(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60809(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec61320(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)
(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec60d(I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)22fec7(I_DATA_H)
(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)23(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_L)(I_CLOCK_H)(I_DATA_H)(I_END)


62:login:Penguin
12/07/19 23:24:32.67 Uucnh6+g
I2Cのアドレスが
0x11,0x13,0x10,0x12は判るんだけど、
0x41とか0x08とか…この辺りが疑問かな。
特に
917f63008eあたりがREADなんだけど、何も読んでいないっていうのが???な部分。

63:login:Penguin
12/07/20 15:38:54.07 2E+mvotn
>>54
ダメでしょ

64:login:Penguin
12/07/20 16:18:08.77 BmNXFxLA
PT3

65:login:Penguin
12/07/20 20:05:45.29 1v0oO0fD
>>54
だめだったorz
あとは何を直せばいいの?
epgdumpのどこか?

66:login:Penguin
12/07/20 20:34:07.98 2jRA8nsn
>>56-62

SDKとすり合わせて見ました。ほぼPT_Device.hのInitTunerと合致してますね。
ただ、//LPF Tuning Onのところから関数が終わるまで(91,11,93,13で始まるやつ)
SLEEPあるはずの場所にSLEEPが無い点がSDKと違うようです

以下前提条件

(START) = (I_DATA_H)(I_CLOCK_H)(I_DATA_L)(I_CLOCK_L)
(STOP) = (I_DATA_L)(I_CLOCK_H)(I_DATA_H)

tc_addr : S0 => 0x22, S1 => 0x26, T0 => 0x20, t1 => 0x24
tuner_addr : S0 => 0xc6, S1 => 0xc0, T0 => 0xc4 t1 => 0xc2

SDK的にはI2Cは以下の6パターン
Write : (START), tc_addr, addr, data * size (STOP)
WriteTuner : (START), tc_addr, 0xfe, tuner_addr , addr, data * size (STOP)
WriteTunerWithoutAddress: (START), tc_addr, 0xfe, tuner_addr , data * size (STOP)

Read : (START), tc_addr, addr, (START) , tc_addr | 1, [(READ) * 8, (LNOP)or(HNOP)] * size, (STOP)
ReadTuner : (START), tc_addr, 0xfe, addr , (START) , tc_addr , 0xfe, tuner_addr | 1, (START), tc_addr | 1, [(READ) * 8, (LNOP)or(HNOP)] * size, (STOP)

ReadTunerWithoutAddress : (START), tc_addr, 0xfe, tuner_addr | 1, (START) , tc_addr | 1, [(READ) * 8, (LNOP)or(HNOP)] * size, (STOP)

67:login:Penguin
12/07/20 20:35:11.87 2jRA8nsn
その1
// TunerPowerOn
TC_S0->Init()
(START)220301(STOP)(I_END)
(START)221e10(STOP)(I_END)

TC_S1->Init()
(START)260301(STOP)(I_END)
(START)261e10(STOP)(I_END)

TC_T0->Init()
(START)200140(STOP)(I_END)
(START)201c10(STOP)(I_END)

TC_T1->Init()
(START)240140(STOP)(I_END)
(START)241c10(STOP)(I_END)

TC_T1->SetPowers()
(START)241ed9(STOP)(I_END)

TC_S0->SetTsPinsMode()
(START)221c15(STOP)(I_END)
(START)221f04(STOP)(I_END)

TC_S1->SetTsPinsMode()
(START)261c15(STOP)(I_END)
(START)261f04(STOP)(I_END)

68:login:Penguin
12/07/20 20:36:49.12 2jRA8nsn
その2
TC_S1->SetTsPinsMode()
(START)261c15(STOP)(I_END)
(START)261f04(STOP)(I_END)

TC_T0->SetTsPinsMode()
(START)201d01(STOP)(I_END)

TC_T1->SetTsPinsMode()
(START)241d01(STOP)(I_END)

TC_S0 : QM->DummyReset()
(START)22fec6010c(STOP)(START)22fec6010c(STOP)(I_END)
TC_S0 : QM->Init()
(START)22fec6010c(STOP)
(I_SLEEP)
(START)22fec6011c(STOP)
(START)22fec600(START)22fec7(START)23(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(STOP)
// LPF Tuning On
(I_SLEEP)
(START)917f630621(STOP)
(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)
// QM1D1C0042.h 164行目かな?
(START)917f63008e(STOP)
(START)117f630150(STOP)
中略
(START)917f630f80(STOP)
QM->SetSleepMode() ?
(START)117f63008e(STOP)
(START)117f6302e2(STOP)
QM->SetSearchMode() ?
(START)917f630188(STOP)(I_END)

69:login:Penguin
12/07/20 20:37:30.11 2jRA8nsn
その3
TC_S1 : QM->DummyReset()
(START)26fec0010c(STOP)
(START)26fec0010c(STOP)(I_END)

TC_S1 : QM->Init()
(START)26fec0010c(STOP)
(I_SLEEP)
(START)26fec0011c(STOP)
(START)26fec000
(START)26fec1(START)27(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(STOP)
(I_SLEEP)
(START)937f600621(STOP)
(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)(I_SLEEP)
// QM1D1C0042.h 164行目かな?
(START)937f60008e(STOP)
(START)137f600150(STOP)
中略
(START)137f600f44(STOP)
(START)937f600f80(STOP)

QM->SetSleepMode() ?
(START)137f60008e(STOP)
(START)137f6002e2(STOP)

QM->SetSearchMode() ?
(START)937f600188(STOP)(I_END)

70:login:Penguin
12/07/20 20:38:16.68 2jRA8nsn
その4
TC_T1 : SetPowers()
(START)241edd(STOP)(I_END)
TC_S0 : QM->SetSleep()
TC_S0 : TC->SetSleep()
(START)221700(STOP)(I_END)
TC_S0 : QM->SetSleepMode
(START)22fec6011c(STOP)(I_END)
(START)22fec605c5(STOP)(I_END)
// QM->SetFrequency()
TC_S0 : SetAGC()
(START)220a00(STOP)(I_END)
(START)2210b0(STOP)(I_END)
(START)221100(STOP)(I_END)
TC_S0 : Write_pskmsrst
(START)220301(STOP)(I_END)
// TC_S0: QM->LocalLpfTuning()
TC_S0: QM->Tuning()
(START)22fec60270(STOP)(I_END)
(START)22fec6060d(STOP)(I_END)
(START)22fec60735(STOP)(I_END)
(START)22fec60802(STOP)(I_END)
(START)22fec60938(STOP)(I_END)
(START)22fec60afa(STOP)(I_END)
(START)22fec60be1(STOP)(I_END)
(START)22fec60c03(STOP)(I_END)
(START)22fec60cc3(STOP)(I_END)
// SLEEPあるはず?
(START)22fec60809(STOP)(I_END) // LPF_FC
(START)22fec61320(STOP)(I_END) // CSEL_Offset
TC_S0: QM->GetLockStatus
(START)22fec60d(START)22fec7(START)23(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(I_DATA_H_READ)(STOP)(I_END)

71:tomy ◆CfWlfzSGyg
12/07/20 22:26:08.02 eE97wBL4
>>66
//LPF Tuning On

の部分ってどこなんだろう?SDKの6パターンに属さないんだよね。
I2Cの仕組みからすると、0x91ってREADだし、
>>tc_addr : S0 => 0x22, S1 => 0x26, T0 => 0x20, t1 => 0x24
>>tuner_addr : S0 => 0xc6, S1 => 0xc0, T0 => 0xc4 t1 => 0xc2

にも属さないI2C以外のデバイスかな?


72:login:Penguin
12/07/20 23:06:00.50 2jRA8nsn
>>71
QM1D1C0042.hの157行目から177行目だと思うんだけど
その辺は全部WriteTunerなんですよね。
その後はSDK通りになってるので不思議です。
命令の数は一致してるのでデコードの間違いを疑ったんですが、
見直されてどうでしたでしょうか?

やはりまったく別のデバイスを制御してるんですかね。





73:tomy ◆CfWlfzSGyg
12/07/20 23:06:40.37 eE97wBL4
>>66

>>I2Cの仕組みからすると、0x91ってREADだし、
ってところは私の勘違い。

qemuのデコーダーのコードを読んだら、
READのI_DATA_H_NOPを数えていたからそんなアドレスになっていただけだね。

なので、READ時はI_DATA_H_NOPがNACKでI_DATA_L_NOPがACKだね。

それを踏まえてデコーダーを入れてみる。



74:tomy ◆CfWlfzSGyg
12/07/21 00:03:20.79 VZJBPEPv
という訳でまだ精査出来ていないが、初期化データ(その1)
22:03:01
22:1e:10
26:03:01
26:1e:10
20:01:40
20:1c:10
24:01:40
24:1c:10
24:1e:d9
22:1c:15
22:1f:04
26:1c:15
26:1f:04
20:1d:01
24:1d:01

22:fe:c6:01:0c
22:fe:c6:01:0c
22:fe:c6:01:0c
22:fe:c6:01:1c
22:fe:c6:00(Tuner R:1)
22:fe:c6:0c:43
22:fe:c6:01:1c
22:fe:c6:02:a0
22:fe:c6:03:10
22:fe:c6:04:bc
22:fe:c6:05:c5
22:fe:c6:06:20
22:fe:c6:07:33



75:tomy ◆CfWlfzSGyg
12/07/21 00:04:17.27 VZJBPEPv
その2
22:fe:c6:08:06
22:fe:c6:09:00
22:fe:c6:0a:00
22:fe:c6:0b:00
22:fe:c6:0c:43
22:fe:c6:11:ff
22:fe:c6:12:f3
22:fe:c6:13:00
22:fe:c6:14:2a
22:fe:c6:15:64
22:fe:c6:16:a6
22:fe:c6:17:86
22:fe:c6:18:8c
22:fe:c6:19:cf
22:fe:c6:1a:b8
22:fe:c6:1b:f1
22:fe:c6:1c:a8
22:fe:c6:1d:f2
22:fe:c6:1e:89
22:fe:c6:1f:00
22:fe:c6:01:1c
22:fe:c6:05:c5
22:fe:c6:03:10


76:tomy ◆CfWlfzSGyg
12/07/21 00:04:55.25 VZJBPEPv
その3
26:fe:c0:01:0c
26:fe:c0:01:0c
26:fe:c0:01:0c
26:fe:c0:01:1c
26:fe:c0:00 (Tuner R:1)

26:fe:c0:0c:43
26:fe:c0:01:1c
26:fe:c0:02:a0
26:fe:c0:03:10
26:fe:c0:04:bc
26:fe:c0:05:c5
26:fe:c0:06:20
26:fe:c0:07:33
26:fe:c0:08:06
26:fe:c0:09:00
26:fe:c0:0a:00
26:fe:c0:0b:00
26:fe:c0:0c:43
26:fe:c0:11:ff
26:fe:c0:12:f3
26:fe:c0:13:00


77:tomy ◆CfWlfzSGyg
12/07/21 00:05:31.65 VZJBPEPv
その4
26:fe:c0:14:2a
26:fe:c0:15:64
26:fe:c0:16:a6
26:fe:c0:17:86
26:fe:c0:18:8c
26:fe:c0:19:cf
26:fe:c0:1a:b8
26:fe:c0:1b:f1
26:fe:c0:1c:a8
26:fe:c0:1d:f2
26:fe:c0:1e:89
26:fe:c0:1f:00
26:fe:c0:01:1c
26:fe:c0:05:c5
26:fe:c0:03:10
24:1e:dd
22:17:00
22:fe:c6:01:1c
22:fe:c6:05:c5
22:0a;00
22:10;b0
22:11;00
22:03;01


78:tomy ◆CfWlfzSGyg
12/07/21 00:06:05.53 VZJBPEPv
その5
22:fe:c6:02:70
22:fe:c6:06:0d
22:fe:c6:07:35
22:fe:c6:08:02
22:fe:c6:09:38
22:fe:c6:0a:fa
22:fe:c6:0b:e1
22:fe:c6:0c:03
22:fe:c6:0c:c3
22:fe:c6:08:09
22:fe:c6:13:20
22:fe:c6:0d (Tuner R:1)


79:tomy ◆CfWlfzSGyg
12/07/21 00:08:02.03 VZJBPEPv
注意事項:
Tuner Read時は20msec待たなければならない。
>>66
ソースを読み込んでいないんで聞きたいけど、
Tuner Readの値は何を期待しているのかは読めてる?
もしくは実機でどんな値が読める?



80:login:Penguin
12/07/21 07:39:00.44 HlmTCoVv
>>74
22:fe:c6:00(Tuner R:1)はQM1D1C0042.hの149行目で期待値は0x48
26:fe:c0:00 (Tuner R:1)も同上
ただし、初期化時は値のチェックをしてないようです。

22:fe:c6:0d (Tuner R:1)はQM1D1C0042.hの527行目で期待値は
読んだ値Aに対して(A & 0x40)が0でないです。

81:login:Penguin
12/07/21 07:56:31.66 HlmTCoVv
連投失礼
>>79
MX側(T0,T1)のReadは
1つ目(MxL301RF 343行目)が読んだ値Aに対して(A & 0x0c)が0でない
2つ目(MxL301RF 357行目)が(A & 0x03)が0でないです。
この1つ目、2つ目は同じレジスタの値を読んでるようなので
0x0Fを期待しているようです。

82:tomy ◆CfWlfzSGyg
12/07/22 21:50:20.02 1MqHo+zK
>>81
BSはTSIDのロックをしていなさそうなんで、動かないけど、
もしかしてこのドライバ地デジだったら動く?
BSは
td/td.c
を見て疑問だったんだけど、rec_open()で渡しているチャネルが違う気がする。
見間違いじゃなければSDKのEARTH_PT3.hのch.を渡しているんだよね?

関東にいる人であれば77あたり(NHK)でテスト出来る?



83:login:Penguin
12/07/23 12:00:20.31 rSB5bAEF
>>82
TSID,TMCCを理解してなかったです。
#SDKに出てくるレイヤーも意味わかってません
TMCCからTSID取得して設定するようにしたところBSで
エラーパケットなく受信できるようになりました。

私は関東じゃないのでチャンネル番号違いますが、NHKに合わせたところ
地デジの方もエラーパケットなく受信できました。
ただし、私の受信環境が悪いのかエラーパケットが出ることもあります。

URLリンク(www1.axfc.net)

84:login:Penguin
12/07/23 20:52:01.47 VLxEK967
関東在住です。0723版試してみました。
BSの試験は現状出来ません。

td/td.c で以下のとおり割り当ててみました。
pt3video2に78(放送大学)
pt3video3に77(NHK)

rec : /dev/pt3video2
status = 0x47400000
status = 0x47400000
ts error packet = 0
status = 0x00d0002d
status = 0x47c0002d
ts error packet = 2080
status = 0x47d00004
rec : /dev/pt3video3
status = 0x47d00000
status = 0x47600000
ts error packet = 0
status = 0x4750002d
status = 0x4750002d
ts error packet = 7
status = 0x47500004

ts_error_packet の数だけ見ると、
取れてるっぽいですね。
次にffmpegに食わせた結果を張り付けます。

85:login:Penguin
12/07/23 20:56:02.62 VLxEK967
◆/dev/pt3video2:ffmpegが解釈できず。
◆/dev/pt3video3:最後の行32行に収まらないので切ってます
Input #0, mpegts, from 'rec3_dec.ts':
Duration: 00:00:00.44, start: 32711.314511, bitrate: 11080 kb/s
Program 1024
Stream #0.0[0x100]: Video: mpeg2video, 29.97 tbr, 90k tbn, 90k tbc
Stream #0.1[0x110]: Audio: aac, 48000 Hz, stereo, s16, 254 kb/s
Stream #0.2[0x138]: Data: [6][0][0][0] / 0x0006
Stream #0.3[0x140]: Data: [13][0][0][0] / 0x000D
Stream #0.4[0x160]: Data: [13][0][0][0] / 0x000D
Stream #0.5[0x161]: Data: [13][0][0][0] / 0x000D
Stream #0.6[0x162]: Data: [13][0][0][0] / 0x000D
Stream #0.7[0x170]: Data: [13][0][0][0] / 0x000D
Stream #0.8[0x171]: Data: [13][0][0][0] / 0x000D
Stream #0.9[0x172]: Data: [13][0][0][0] / 0x000D
Program 1025
Stream #0.0[0x100]: Video: mpeg2video, 29.97 tbr, 90k tbn, 90k tbc
Stream #0.1[0x110]: Audio: aac, 48000 Hz, stereo, s16, 254 kb/s
Stream #0.2[0x138]: Data: [6][0][0][0] / 0x0006
Stream #0.3[0x140]: Data: [13][0][0][0] / 0x000D
Stream #0.4[0x160]: Data: [13][0][0][0] / 0x000D
Stream #0.5[0x161]: Data: [13][0][0][0] / 0x000D
Stream #0.6[0x162]: Data: [13][0][0][0] / 0x000D
Stream #0.7[0x170]: Data: [13][0][0][0] / 0x000D
Stream #0.8[0x171]: Data: [13][0][0][0] / 0x000D
Stream #0.9[0x172]: Data: [13][0][0][0] / 0x000D
Program 1408
Stream #0.11[0x580]: Data: [13][0][0][0] / 0x000D
Stream #0.10[0x581]: Video: h264 (Constrained Baseline), yuv420p, 320x180, 5.25 tbr, 90k tbn, 14.99 tbc
Stream #0.12[0x583]: Audio: aac, 48000 Hz, stereo, s16, 51 kb/s
Stream #0.13[0x589]: Data: [13][0][0][0] / 0x000D
Stream #0.14[0x58a]: Data: [13][0][0][0] / 0x000D

86:83
12/07/23 21:29:12.05 8LCgeLyW
64bitでエラーになる原因見つけました
これで治るといいな。。。

パッチファイルだけど微妙に文字数足りないのでアップローダで
URLリンク(www1.axfc.net)

87:login:Penguin
12/07/23 21:39:19.92 8LCgeLyW
>>84-85
どうもです

ffmpegのログの見方が分からないんですが
NHKの方はOKって事なのかな

エラーパケットが少ないけどあるのが気になりますね
まだ手順が足りないのかな(アンプの設定?)


88:login:Penguin
12/07/23 21:39:53.25 VLxEK967
>>86
64bitでロードできました。

$ sudo insmod ./pt3_drv.ko
$ dmesg | tail
[ 355.364285] channel=0 index=1 sd=0x39fae1 N=0xd A=0x5
[ 355.476150] set_tuner_sleep isdb=0 tuner_no=1 sleep=1 status=0x0
[ 355.540099] set_tuner_sleep isdb=1 tuner_no=1 sleep=0 status=0x0
[ 355.540103] set_freq isdb=1 tuner_no=1 channel=71 offset=0
[ 355.655925] set_tuner_sleep isdb=1 tuner_no=1 sleep=1 status=0x0
[ 355.655931] PT3:device[0]= (null)
[ 355.669637] PT3:card_number = 0
[ 355.684033] PT3:card_number = 0
[ 355.697703] PT3:card_number = 0
[ 355.711382] PT3:card_number = 0
$ uname -a
Linux hanage-pt3 3.2.0-26-generic #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

89:login:Penguin
12/07/23 21:50:35.08 VLxEK967
>>87
32bit版の地デジNHKは録画できているように見えます。
ffmpegのログ的にはOKです。
MPEG2デコーダに食わせるほどデータ取ってないので、
再生できるかどうかは不明です。(後でやってみます)。

64bit版は td がうまく動作せず。

rec : /dev/pt3video2
status = 0x47c00000
status = 0x47500000
ts error packet = 0
status = 0x0050002d
status = 0x4750000c
ts error packet = 2116
status = 0x4750000c
rec : /dev/pt3video3
status = 0x47d00000
status = 0x47d00000
ts error packet = 0
status = 0x47c0002d
status = 0x4740000c
ts error packet = 40
status = 0x4740000c

$ ls -l rec[23].ts
-rw-r--r-- 1 Penguin Penguin 0 7月 23 21:42 rec2.ts
-rw-r--r-- 1 Penguin Penguin 0 7月 23 21:42 rec3.ts

サイズが0です。ログメッセージ的には32bitとほぼ同じ感じでした。
(/dev/pt3video3で多少エラーパケットが出ている)

90:login:Penguin
12/07/23 22:07:37.57 VLxEK967
連投失礼

>>87
vlcで地デジNHKの再生OKです。
td/td.c の for ループを単純に100から10000に変更して
60MBのファイルを作りました。

91:tomy ◆CfWlfzSGyg
12/07/23 23:53:09.59 69j/JEb8
>>83

32Bit版はOKっぽいんで、
recpt1がそのまま動く様に
可能だったらpt1と同じFREQUENCYにしてくれるとうれしいかも。

後はファームの書き込みと、64bit版が動けばになるかな。

92:login:Penguin
12/07/24 00:04:32.20 wWpKM/s3
BSもBS1-BS23みたいなチャンネル選択ってできないのかな。
recpt1の再コンパイルとかが不要にできるようになったらいい希ガス。
pt1のドライバ側も更新必要だろうけど。


93:login:Penguin
12/07/24 00:52:28.66 mgrasbZy
BSはスロットもあるからなあ

94:login:Penguin
12/07/24 01:27:47.38 oEQoLySX
pt1_tuner_data.c の1067行目がtypoってる気がする

1066 {{&bs_21_step1, &bs_com_step2, &bs_21_step3}},
1067 {{&bs_23_step1, &bs_com_step2, &bs_21_step3}},


95:login:Penguin
12/07/24 01:54:04.21 oEQoLySX
>>94は前スレ897で報告済みでした
スレ汚しごめん

96:login:Penguin
12/07/24 20:04:59.41 J0qN6EPL
>>90
まいどどうもです
私もmplayerで再生確認できました

>>91
recpt1で利用できるようにしました

変更点:
64bitでDMAに失敗するのを修正(ご指摘の通り構造体のアライメントでした^^;)
FREQUENCYをpt1に合わせる、ただし地上波側のslot(offset)には未対応(無視します)
電波強度取得のioctl追加、ただし、ダミー実装(すべて0が返ります)
正常系のログを縮小

注意点:
lnbはまったくテストしてません

地上波のoffsetなんですが、
SDKのMxL301RF.h 74行目 realFrequency = (7*frequency+1+offset)*1000000.0/7.0;
をドライバではoffset無視してテーブル化してるんですが、(pt3_mx.c 382行目)
offsetを有効にする方法が思いつきません。
offset利用してる人いるのかな?

URLリンク(www1.axfc.net)

97:login:Penguin
12/07/24 20:07:29.35 q7DEz8Ir
全国の首をながぁ~くして待ってる良い子たちを代表してお聞きします。

PT-3@linux、今どのあたり?

98:login:Penguin
12/07/24 20:33:01.16 P8X6dSJS
>>96
64bit版で動作確認できました。おつかれさまです。
recpt1で遊んでみようと思います。

99:tomy ◆CfWlfzSGyg
12/07/24 21:34:41.22 PS4koYMv
>>92
isdb_t_conv_table[]の最後の"151"
を自分の好きに変えればOK。


>>93
isdb_t_conv_table[]を外出しのconfigファイルかなにかにすれば可能だけど?
そもそもスロットある程度固定になっているはず。

>>96
了解です。
地上波のoffsetはどうなんでしょ?
使っている人~

100:96
12/07/24 21:53:35.73 J0qN6EPL
>>97
recpt1で動作確認できる程度にはなってきてます

CSだとカーネル->ユーザ空間へのコピーが間に合わなくてDMAがコピーを追い越すみたい
以下修正パッチ。

diff --git a/pt3_dma.c b/pt3_dma.c
index ac89c1c..0b07755 100644
--- a/pt3_dma.c
+++ b/pt3_dma.c
@@ -307,7 +307,7 @@ pt3_dma_copy(PT3_DMA *dma, char __user *buf, size_t size, lo
ff_t *ppos, int look
if (dma->ts_pos >= dma->ts_count)
dma->ts_pos = 0;
}
- schedule_timeout_interruptible(msecs_to_jiffies(1));
+ schedule_timeout_interruptible(msecs_to_jiffies(0));
}
mutex_unlock(&dma->lock);

101:login:Penguin
12/07/24 22:11:51.20 TtupOqPY
>>99
トランスポートストリームIDからノードとスロットが算出できるのでrecpt1で正式に定義してもらうと
フロントエンドでBS・CSの局編成再編に追従できるようになります。


102:login:Penguin
12/07/24 23:55:39.53 GA1fnDTB
>>96
乙です。
地デジのみの環境でrecpt1使ってみたけど、かなり
"dma buffer overflow."
が出てきますね。。
ただ、ちゃんと視聴はできました。

103:login:Penguin
12/07/25 07:34:15.31 6H9qaAPa
すげえ、もうrecpt1で確認できるレベルになってるのか

104:login:Penguin
12/07/25 12:29:22.23 lVL9zqQ7
ドロップしてるわけではないのに大体10秒間隔で周期的に音が途切れ絵がブロックになります。
tsselectで確認してみたところ以下のになりましたので一応報告。

ゴースト 天国からのささやき シーズン1#6【二】_20120725_090000_tss.ts
pid=0x0000, total= 36053, d=304, e= 0, scrambling=0, offset=113552
pid=0x0401, total= 36058, d=292, e= 0, scrambling=0, offset=134420
pid=0x0601, total= 37053, d= 20, e= 0, scrambling=0, offset=186684
pid=0x0a01, total= 54597, d= 0, e= 0, scrambling=0, offset=113364
pid=0x1001, total=36269159, d=2382, e= 0, scrambling=0, offset=0
pid=0x1041, total= 480784, d=2137, e= 0, scrambling=0, offset=7332
pid=0x1051, total= 480777, d=2137, e= 0, scrambling=0, offset=7144
pid=0x1c06, total= 8889, d= 63, e= 0, scrambling=0, offset=533168

4時間前の録画は正常でした。前スレでも出てましたが時々このようなTSが生成されます。

105:104
12/07/25 12:40:36.20 lVL9zqQ7
環境書くの忘れてた。
PT2
Ubuntu10.10
通常版のrecpt1
マウントしたWDC WD20EARS(ext4)に記録。


106:login:Penguin
12/07/25 14:39:29.09 D58CRNbd
>>105
映像も音声も多数Dropしているように見えます。
まず環境を見直してみては?

107:login:Penguin
12/07/25 14:48:53.96 IRry9uVR
>>104
PT"3" じゃなくて PT2?
同じような状況がPT3な私の環境でも起こってて、原因を探そうと思ってます。

108:login:Penguin
12/07/25 18:09:43.96 b3DCw7qZ
PT3試してみました
Fedora16 (3.2.10-3.fc16.x86_64)
tdのfor文で各デバイスで99まで回して受信できるチャンネルはひと通りb25も通るみたいです
BSCSはrecpt1でも確認できました
rec_open(DEV0, "rec0.ts", 5);
rec_open(DEV1, "rec1.ts", 19);
rec_open(DEV2, "rec2.ts", 72);
rec_open(DEV3, "rec3.ts", 75);
みたいのもOKでした
チャンネル指定がよくわからないけど動作はOKみたいですがログに
fail get_tmcc_t status=0x100
がたくさん出てました

109:login:Penguin
12/07/25 19:50:22.46 FzV+bn45
>>93
スロット必須ならBS1_0,BS1_1~みたいな感じにしておかないとダメそうですね。
CSはスロット追加が必要になったりしないのかな。
一番いいのはBS1で151,161が取れるのがいいと思うんだけど。


110:login:Penguin
12/07/25 20:35:28.62 BiDZEoJE
>>107
"dma buffer overflow"でてませんか?

>>108
"fail get tmcc_t"は受信できない地上波チャンネルに設定すると出るはずです
受信できるはずのチャンネルで出てたら教えてください。
tmccのロック待ちが足りないのかも

>>102
カーネル空間->ユーザ空間の処理に手を入れてみました。
CPU使用率が高くなったけどこれでどうかな。
#PT1,2のrecpt1でCPU使用率ってどのくらいなんでしょう?

URLリンク(www1.axfc.net)



111:login:Penguin
12/07/25 20:59:02.94 1hg6oDEA
Linux上でのファームの書き込みを、何とぞよろしくお願いします。

112:login:Penguin
12/07/25 21:13:30.29 P6bRFAIs
ファームの更新みたいな滅多にやらない上に、失敗したら危なげなものは、
素直にWinでやった方がいいと思うけどなぁ。

113:login:Penguin
12/07/25 21:23:58.33 Od68ifs7
たとえ普段は使ってなくても、こういうので十分だと思うしね。
URLリンク(technet.microsoft.com)

114:login:Penguin
12/07/25 21:48:00.71 I24tI4P4
>>112に同意。
ファーム絡みだとテストも気軽にできないんでない。。。


115:login:Penguin
12/07/25 22:11:48.14 1ZzrFAeM
>>111
何が目的か立ち位置を明確にしないと
GNU 真理教であるなら、ファームウェアそれ自身もGPLであるべきだ

116:login:Penguin
12/07/25 22:26:40.69 b3DCw7qZ
>>110
fail get tmcc_tは確かに受信できない場合に出てるだけでした
0725版でrecpt1でも地上波動作するようになりました
CPU使用率は高くなって録画だとわからないのですが、
udp使ってlocalhostでリアルタイムで受けて再生するとかなりきつくなります。
あとスリープからの復帰で動作しないので一旦アンロードしないとダメでした

117:login:Penguin
12/07/25 22:56:29.00 WNi6HuS1
初心者質問ですまない。

recpt1 --udp --strip --b25 26 - /dev/null
recpt1でリアルタイム配信する場合に、解像度を縮小する方法はない?
素のTS解像度だと通信が重すぎて。

せめて、1/2、1/4, 1/8などと大雑把な解像度変更ができるだけでいいのだけれども。


118:117
12/07/25 23:11:36.28 WNi6HuS1
書き込んでしばらくして気がついた。
--sid 1segとかできるのね。失礼しました。

119:login:Penguin
12/07/25 23:12:31.86 BiDZEoJE
>>110
どうも
pt3_dma.c 308行目のコメント外すと少しだけCPU使用率下がるはずです
0を大きな値に変えればさらに下がりますが"dma buffer overflow"が出やすくなります

スリープは自分が使わないので後回しにして忘れてましたw
ちょっとpt1参考に見てみます

120:login:Penguin
12/07/25 23:15:02.81 tFYw4d0m
皆さんのご尽力には感謝雨あられですね。

ところで、
アースのサイトにPT3ドライバの1.0が上がりましたね。
履歴を見る限り、技術的な変更は無いもよう。

URLリンク(earthsoft.jp)

> [1.0]
> ・Vista よりも前の OS (XP などが該当) に限り、インストールするドライバの
> デジタル署名の有無を選択できるように変更

121:login:Penguin
12/07/26 02:28:23.93 VnqosSQb
>>112
それは確かにそうなんだけど、いかんせんノートPCにしかWindowsがないもんで

122:login:Penguin
12/07/26 07:22:14.64 2httKydr
>>121
>>113

123:login:Penguin
12/07/26 20:30:33.36 ycrtc4GW
>>110
レジューム、サスペンドをe1000ドライバ参考に見てみましたが、
知識不足&調べる時間があまりないでプライオリティ低いです。
モジュールのアンロード、ロードで運用してください^^;

ユーザ空間でバッファ待ちを期待して実装してましたが、
(バッファが溜まってなければすぐにユーザ空間に帰る)
recpt1はカーネル空間でのバッファ待ちを期待している様なので
そのように変更しました。
これでCPU使用率大幅に減少しました。
その他、チャンネルチューニング失敗時にrecpt1でエラーになるようにioctlの返値を修正

これでとりあえず使い物になるかな

URLリンク(www1.axfc.net)

124:login:Penguin
12/07/26 21:24:15.24 G6XdAY6m
オリンピック開会式までに間に合えば金メダルを
閉会式までに間に合えば銀メダルを
8月中に完成すれば銅メダルを
諦めなければ入賞を

125:login:Penguin
12/07/26 22:18:40.26 epFZuk//
負荷がなくなりました
すごくいい感じです
今はrecpt1にpt3video*デバイス加えただけだけど
ちゃんと手を入れればCNとかも取れるようになるのかな

126:login:Penguin
12/07/26 22:35:09.93 ycrtc4GW
>>125
CNはSDKでは不動小数点演算使ってるんですが
Linuxのカーネル空間では不動小数点がつかえないのでドライバ側で計算できません。
pt1はrecpt1側で計算してるようですがpt3と式が違うようです。
この辺りどうしようかなってところです。

127:tomy ◆CfWlfzSGyg
12/07/26 23:11:24.36 aC19kIVX
>>123
乙です。
>>ユーザ空間でバッファ待ちを期待して実装してましたが、
ユーザ空間ではどの程度バッファがたまっているか判らないからpt1でもread()で実装してます。
>>121
FPGAの書き換えはアースソフトが出してくれないと無理かも。
ちなみに下のが読み出しを表しているらいしいんだけど、
レジスタの値が何をさしているのかがさっぱり判らん。

addr=00000020 value=10
addr=00000020 value=10
addr=00000020 value=10
addr=00000020 value=10
addr=00000020 value=11
addr=00000020 value=11
addr=00000020 value=11
addr=00000020 value=11

*値は10と11以外にも44や80,20,22という値が見えている。



128:login:Penguin
12/07/26 23:32:25.24 ycrtc4GW
>>125
CN取得してみました。
私の見間違いだったのかそれらしい値が取れますね。
#地上波側は同じ計算してるはず。BS側はよくわかんない

>>127
普段readして0byteだったら待つって事してたのでその乗りで実装してましたw

URLリンク(www1.axfc.net)
小出しで申し訳ない

129:login:Penguin
12/07/27 00:11:41.89 Pdbc2seJ
>>128
乙です。
最新のドライバで試してみましたが、やっぱり
"dma buffer overflow."
が大量に吐き出されます。。。
マシンのスペックにもよるのでしょうか?

130:login:Penguin
12/07/27 06:34:08.40 XmyZrPvp
PT3って今

131:login:Penguin
12/07/27 15:14:57.00 DdwnljoO
recpt1 --b25 --strip --udp --addr 127.0.0.1 151 - - >/dev/null
して12時間以上放置して今見たところ特にエラーもなく動いていたようです。
CNがchecksignalでも動作するようになりましたPT1より気持ち感度が良いようですね

132:login:Penguin
12/07/27 20:12:39.45 octm7VXf
>>128
さすがです。
ちなみに、ソースはどこかのリポジトリで管理する予定ですか?
SourceForgeとかGitHubとか。


133:login:Penguin
12/07/27 20:25:24.51 DdwnljoO
foltiaの中の人も首長だろう

134:login:Penguin
12/07/27 20:50:18.73 FWjZqWRS
foltiaの中の人は、ALにはノータッチじゃなかったけ?

135:login:Penguin
12/07/27 21:24:44.65 0ND8QqzT
>>129
よほどCPUに余裕がないとかじゃないと大量には出ないはずなんですが
他にも出てる方いますか?
よかったらスペック教えてください

>>128
githubのアカウント取ってみました。
git勉強中なんで変なところあるかもですが

URLリンク(github.com)

0726版からの変更点:
特定のBSチャンネル設定できない事があるバグを修正
dma buffer overflow時のメッセージに追加情報入れました(デバッグ用)

136:login:Penguin
12/07/27 21:40:07.26 oYkuPwmm
>>135
Great Job

137:login:Penguin
12/07/27 21:48:59.14 wxJL5EgV
>>135
ライセンスってどうするつもり?

138:login:Penguin
12/07/27 22:06:44.00 0ND8QqzT
>>137
pt1を元にしてるのでそっちに従う形です。
なのでgplのつもり

139:login:Penguin
12/07/27 22:14:54.41 DdwnljoO
そういえばb25はどうなるんだろ
やっぱヤバイ系のブツになんのか

140:login:Penguin
12/07/27 22:40:45.80 ToZc70eR
>>135
神ですか?

141:129
12/07/27 22:47:22.40 Pdbc2seJ
>>135
HP ProLiant MicroServer (AMD Turion II Neo 1.5GHz) です
# やっぱりこのスペックじゃ無理かなぁ

デバッグ用のメッセージ追加ありがとうございます。
時間ができ次第、テストしてみるます。

142:login:Penguin
12/07/27 23:03:21.43 UI6Arfgp
>>141
TSの読み込み程度でいっぱいいっぱいになるスペックでもないと個人的に思う
vmstat とか sar とかで統計情報取ってみたら?
CPU, Memory, IOのアタリぐらいつくと思うけど

143:login:Penguin
12/07/27 23:30:27.48 oYkuPwmm
>>139
10月以降は触れないことが無難と思われ

144:login:Penguin
12/07/28 00:08:25.00 5CH590fT
日経Linuxのハイエナ記者さん、どうせここ見てるんでしょー?
んでまた記事にするつもりでしょー?

このスレの神々に、せめて王将のお食事券ぐらい渡しなよ

145:login:Penguin
12/07/28 00:10:00.14 0r1pi1Ix
あーあの記事って中の人が書いたんじゃないのか。
てっきり本人かと思ってた。

146:login:Penguin
12/07/28 00:14:39.59 zZceddds
B25はまず問題ないだろうけど、10月以降の一発目を日経さんにやってもらえばWINWINでしょ
個人じゃ到底戦えないんだし、こういうときこそ「言論」の出番だよ

147:login:Penguin
12/07/28 01:19:07.39 hBWn6hsg
個人のみせしめみたいのは十分あり得ると思う

148:login:Penguin
12/07/28 03:44:11.81 5zUYsvpI
>>138
できればライセンスは明記してくれたほうがうれしい。手間かかるのはわかるんだけど、後々のためにちょう大事。

149:login:Penguin
12/07/28 07:20:59.35 oVOEUCyv
>>148
pt3_pci.cの中に
MODULE_LICENSE("GPL");
って入れてるんだけどこれじゃ不十分かな
pt1もこれだけのようなんでそうしたんですが。

ライセンスがらみは疎いんでアドバイスもらえるとうれしいです

150:login:Penguin
12/07/28 09:03:38.66 hUwLLu+f
COPYING をアーカイブに同梱するのと、
 URLリンク(git.kernel.org)
各ソースの先頭に↓みたいな説明書きが必要なはず・・・
 URLリンク(git.kernel.org)

誰か補足おながいします

151:login:Penguin
12/07/28 09:23:23.36 RMlGMODl
>>149
乙。ここの説明が分かりやすいです。
URLリンク(www.opensource.jp)

>そのためには、プログラムに以下のような表示を添付してください。その場合、
>保証が排除されているということを最も効果的に伝えるために、それぞれの
>ソー スファイルの冒頭に表示を添付すれば最も安全です。少なくとも、
>「著作権表示」という行と全文がある場所へのポインタだけは各ファイルに
>含めて置いて ください。

152:login:Penguin
12/07/28 09:24:38.55 RQSLSWi+
Windows 7/Vista/XP 32bit/64bit ドライバ COMING SOON
Linux ドライバ COMING SOON

URLリンク(www.plex-net.co.jp)
URLリンク(www.plex-net.co.jp)

153:login:Penguin
12/07/28 09:35:45.81 leQjAJxA
ライセンスの話が急に沸いてきたのは、商用2次利用したい匂いがぷんぷんするお

154:login:Penguin
12/07/28 09:48:48.68 RMlGMODl
>>153
GPLのドライバを商用2次利用するシチュエーションが思いつかん
誰かがVectorにPT3のシェアウエア版ドライバを上げるとか?
しかも、ソースコード付きでwww

155:login:Penguin
12/07/28 10:09:45.51 VKHd+6J8
>>154
URLリンク(foltia.com)
これじゃないの? ドライバ込みのソフトも売っているようだし


156:login:Penguin
12/07/28 10:22:00.16 RMlGMODl
>>155
マジですか~、こんなのあったんだ。知りませんですた
しかし、こんなのあるんだとするとライセンスの話はやっぱり重要ってことだね

157:login:Penguin
12/07/28 11:15:54.76 VzFUYiWd
>>155
ドライバーは、形だけでもユーザー自身がダウンロードしてきてコンパイルするようになってるはず
PT2は、そうなってる

まあPT3対応をうたいながらドライバーを自社開発せず、あまつさえ Ver2.0 リリース予定をPT3の発売とかぶせてきたことが顰蹙を買ったんだろうね

158:login:Penguin
12/07/28 11:58:17.09 yJ34te/8
>>157
本家foltia由来のコード使ってるんなら、GPLでコード請求できると思うんだけど、
どこまでがその適用範囲になるのかよくわからん(´・ω・`)

GUIとか綺麗だからOSS版としてパッケージ化できると嬉しいんだがね。

159:login:Penguin
12/07/28 11:59:19.54 RQSLSWi+
foltaは堂々と今までどおりb25扱うつもりなのかな

160:login:Penguin
12/07/28 12:09:34.62 VzFUYiWd
>>159
本家とは区別するためにちゃんと正式名称で書こうよ
"foltia ANIME LOCKER"がめんどうなら"foltia AL"とかでもいいし

161:login:Penguin
12/07/28 12:40:41.33 oVOEUCyv
>>150
>>151
ありがとう
ライセンス文など追加しました

162:login:Penguin
12/07/28 13:41:10.98 IJ+uv5aE
GPL3と親和性のいいアフェロGPL(AGPL)なんてのもあるね
あれはサービスとして動作させる時も商用不可という嫌儲ライセンス

163:login:Penguin
12/07/28 14:36:13.87 YAs4G2KX
ライセンス明示は大事ですよ。商用利用云々だけでなく、
類似ソフトウェアを開発する際にコードの再利用可否の判断につながる。
GPL同士だからソースまるごとコピーしておkとか判断できる。

164:login:Penguin
12/07/28 16:10:12.48 YAs4G2KX
何も考えずにpt3ドライバをrecpt1.oyamaのリポジトリに突っ込んでみました。
configure する際に git rebase する形(MPlayerのまねっこ)なので、
ドライバの更新に対応できる形です。

165:login:Penguin
12/07/28 16:49:34.50 VKHd+6J8
>>164
おお、すごいです!

うちのマシンはずっとこんな状況ですけど・・・

PT3-pci.c: r140:faa0bc5fc2f5 2012-07-28
Attempting to enable Bus Mastering
fail i2c run_code status 0x32
fail init_all_tuner. 0x308
PT3:device[0]= (null)
modprobe: page allocation failure: order:9, mode:0x8020
Pid: 596, comm: modprobe Tainted: P O 3.4.6 #5
Call Trace:
[<ffffffff81144aaa>] warn_alloc_failed+0x171/0x19b
:
(省略)
;
fail allocate consistent. 6
PT3: fail create dma.
PT3-pci: probe of 0000:03:00.0 failed with error -5

# uname -a
Linux localhost 3.4.6 #5 SMP PREEMPT Sat Jul 28 09:39:46 JST 2012 x86_64 Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz GenuineIntel GNU/Linux

166:login:Penguin
12/07/28 17:32:35.15 oVOEUCyv
>>165
fail i2c run_code status 0x32
fail init_all_tuner. 0x308
はPT3の初期化の失敗で私の環境でもたまになります。
PC起動直後に失敗して、1度成功するとその後は失敗しないので
PT3のパワーオンリセット後の動作が関係してるのかなと思ってます。
#パワーオンリセットがそんなに長いとも思えないので怪しいですが

modprobe: page allocation failure: order:9, mode:0x8020
から下のエラーはDMA用のバッファ確保しようとして失敗してます。

各チャンネルに1ブロック4096*47*8byteのバッファを32本取るようになってます。
1ブロックは連続した物理メモリを確保するので大きいと失敗しやすいです。
pt3_dma.cの50行目,51行目の BLOCK_COUNT, BLOCK_SIZEを変えて見てください。
ただし、BLOCK_SIZEは4096*47の倍数を想定してますので8を小さい数字に変えてみてください。


167:login:Penguin
12/07/28 20:54:52.73 VKHd+6J8
>>166
ありがとうございます!

pt3_dma.c の該当箇所を
#define BLOCK_COUNT (8)
#define BLOCK_SIZE (DMA_PAGE_SIZE * 47 * 4)
に変更したらBSが録画出来ました!!


168:167
12/07/28 23:50:44.00 VKHd+6J8
BSの方は問題なく見れるのですが、
地上波のチャンネルを指定すると
fail get_tmcc_t status=0x100
がいっぱい出ますね・・・

東京なので27chでNHKが受信出来るチャンネルのはずなんですが
>>110のtmccのロック待ちが足りない件なのでしょうか・・・


169:login:Penguin
12/07/29 01:08:55.78 tRvLsHFM
>>161
GPL v3 にしたの?
v3 はいろいろと議論があって,いずれカーネルにマージするのを想定しているなら
v2 にしておいた方が無難.

170:login:Penguin
12/07/29 01:43:45.30 l5M8TmAq
>>169
char dev 版は今までカーネルに統合されてないから別にいいんでないの?
参考にして作られる(かもしれない) DVB 版にコードのコピーを許可する予定なら、
GPL 2+(GPL2 or any later versionってヤツ) あたりに落としておくのもベター。

GPL 2+ なら、GPL3 として読むこともできるし、GPL3として読むことも出来る。

171:login:Penguin
12/07/29 01:47:35.62 l5M8TmAq
最後の行でTypo...orz...

GPL 2+ なら、GPL2 として読むこともできるし、GPL3として読むことも出来る。
今出てないGPL4としても読める。(補足)

172:login:Penguin
12/07/29 08:08:13.80 rQs0tC2Q
>>169
char dev版がカーネルにマージされる未来は無いからその心配は無用

173:login:Penguin
12/07/29 09:02:45.62 L5QLGwae
>>168
>>110以後にロック待ちにマージンを持たせたんですが、足りないのかな
pt3_pci.cの618行目の1000を大きくするか、
619行目の1を大きくしてみてください
それでもダメなら一度アンテナ、ケーブル、分波器等を確認してみてください

>>169-171
元のpt1がGPLv3なのでv3にしました。
v3のソースを参考にしたらv3じゃないとダメだと認識してます。

SDKをそのままコピーしてるのでLinux文化的な書き方じゃないです。
カーネルにマージされることはまずないでしょうし、
DVB版作るにしても私のコードはコピーしないと思います。
自分でもこれは無いなってところが多数ありますが
とりあえず動かすのが目的なので出きるだけ安直にorSDK通り(Windows的?)に実装してます。

#earthsoftの社長さんにlinux版ドライバの配布についてお伺いのメールだしてます。
#SDKのライセンスってどこかに書いてある?

174:login:Penguin
12/07/29 09:25:41.43 rD2lx6Ux
CSの番組のSIDではなくて番組のチャンネルそのものが変わったときってどこを修正すればいいんですか?

175:168
12/07/29 10:10:47.74 6RirG4dY
>>173
git://github.com/m-tsudo/pt3
のソースを持ってきて下記の箇所を1→2に変更したら地上波も問題なく見れるようになりました!!
ありがとうございます!!!

diff -cr pt3.orig//pt3_pci.c pt3//pt3_pci.c
*** pt3.orig//pt3_pci.c 2012-07-29 09:35:27.723512884 +0900
--- pt3//pt3_pci.c 2012-07-29 09:45:48.623551951 +0900
***************
*** 592,598 ****
break;
case PT3_ISDB_T :
for (i = 0; i < 1000; i++) {
! schedule_timeout_interruptible(msecs_to_jiffies(1));
status = get_tmcc_t(channel->tuner, &tmcc_t);
if (!status)
break;
--- 592,598 ----
break;
case PT3_ISDB_T :
for (i = 0; i < 1000; i++) {
! schedule_timeout_interruptible(msecs_to_jiffies(2));
status = get_tmcc_t(channel->tuner, &tmcc_t);
if (!status)
break;

176:173
12/07/29 12:45:09.59 L5QLGwae
DMAのバッファ待ちでコーディングミスがありました
"dma buffer overflow"が直るかもしれません

その他エラー処理の見直しとDMAのバッファサイズを縮小しました

177:login:Penguin
12/07/29 14:06:16.68 SQUp0T9y
おかげでやたら安定したみたい
udpで別PCで受けて破棄(破損)されてたパケットが無くなった感じです

178:login:Penguin
12/07/30 01:09:15.41 ioI8Rtuu
>>174
チャンネルを選択しているところ

179:login:Penguin
12/07/30 12:49:19.07 z8C4y+Gc
>>107
ドライバ開発乙です!
ドロップですがひょっとして、スカイツリーの関係かもしれないですね
URLリンク(www.soumu.go.jp)

180:login:Penguin
12/07/30 12:52:52.38 z8C4y+Gc
>>126
固定小数点演算ではダメですか?
32bit以上の整数で、小数点以下を16bit(も取れば十分だろう)とるとか…
後、PT2のドライバでどういう形でCN比を出してるか読みなおしてみるとか

181:login:Penguin
12/07/30 12:58:02.52 z8C4y+Gc
>>165-166
・メインメモリが足りない
もしくは、
・modprobeするタイミングが遅くてlow領域の物理メモリが確保できない
どちらかですねー。
PT2と同時に使うと起こりやすいかもしれない(起らないかもしれない)
1チャンクのバッファサイズの最適化とかそういう辺りかなぁ?

182:login:Penguin
12/07/30 13:02:05.61 z8C4y+Gc
>>169
禿同。
chardev版がカーネルにマージされることがないとしても、DVB版ドライバにコードの一部が流用される可能性があるので、
GPLv2辺りにしておいたほうが無難だと思います。
v3だと流用困難と判定されかねないです(特にDebianのようにライセンス管理がうるさいディストリだとこの手の問題はシビアに見られる)

183:login:Penguin
12/07/30 21:15:50.54 R6sWaoHj
GPLv3の理由が、GPLv3のpt1ドライバのコードを一部流用したから、
ってことなので、仕方ないんじゃないの?
ユーザとしては、オープンソースならなにか不具合が出た時に修正できるし、
GPLv3でも特に問題無いわ。

詳しくは知らんけど、DVB版のドライバは(pt1の時と同じようなノウハウで)
普通に一から作られると思うから、何も心配しなくていいと思う。


184:login:Penguin
12/07/30 23:19:18.27 37AeCwYa
あれ?
うちの環境ではコンパイル通らなくなってた
バージョンをgitから取るのはナイスだと思います



diff --git a/Makefile b/Makefile
index 89ebc92..01a636c 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ clean-files := *.o *.ko *.mod.[co] *~ version.h
version.h:
revh="#define DRV_VERSION \"rev.`git rev-list HEAD | wc -l 2> /dev/null`\"\n#define DRV_RELDATE \"`git s
if [ -n "$$revh" ] ; then \
- echo "$$revh" > $@; \
+ echo -e "$$revh" > $@; \
else \
printf "#define DRV_VERSION \"$(REL_VERSION)\"\n#define DRV_RELDATE \"$(REL_DATE)\"\n" > $@; \
fi

185:login:Penguin
12/07/30 23:30:52.98 eNFnU5pF
>>184
さんきゅー
あとで直しときます
一応確認して上げてるんだけど環境の差がでるね

186:login:Penguin
12/07/31 00:54:55.05 E3QXLY8C
>>185
修正確認しました。的確な修正ですね。

ところで、
盛り上がってるPT3のドライバには直接関係ないんですが、
recpt1側のtssplitter_lite.hの中で宣言されてる
_splitbuf_tが

> typedef struct _splitbuf_t
> {
> int size;
> u_char buffer[1024*1024];
> } splitbuf_t;

で1MB固定なんですが、b25_decode()が返すdbufは1MBに収まる
保証はどこにもないのでサイズチェック&必要に応じてrealloc
しなきゃいけない気がするのですが、どなたかこの辺に詳しい方
いますでしょうか?

recpt1がコアを吐く原因を探しててここがちょ~怪しかったんで
reallocするようにしてからコア吐かないようになった気が…
ちゃんとgdbとかで調べればいいんでしょうが、面倒なので
おまじないとしてそれ以降realloc入れちゃってます。

187:login:Penguin
12/07/31 01:57:51.23 NepGwret
>>186
ずいぶん前に指摘されてた気がするけど、言われてみるとまだ直ってないね。
実際オーバーフローするのは頭の方でPAT/PMT/ECMが来ないときぐらいなんで、
もうちょっと大きめに確保しておくだけでほぼ問題ないような気もする。
32Mなら最悪ECMが来なくてもその前にb25がエラーを返してくれるね。
もちろん動的にバッファを増やす方が望ましいだろうけど。

188:login:Penguin
12/07/31 08:39:52.14 E3QXLY8C
>>187
やっぱりそうでしたか。おまじないは効いてたわけですねwww

初期サイズオーバーしたらreallocするようにするのが良いと思いますが、
コードの修正量も結構多いので、とりあえずはバッファを32MBにしちゃえば
良いってことですね。

recpt1のリポジトリで拾ってくれることを期待しましょう。

189:login:Penguin
12/07/31 23:22:24.57 xhlVOKuO
初期化失敗時のリトライ追加、不要なwaitの削除
の更新がなかなかいい!!

190:login:Penguin
12/08/01 01:13:38.39 2N9SXnKm
7月24日のチャンネル変更以降、キッズステーションの番組表が epgdumpr2 で
とれなくなりました。

# ND8→ND12 CS330 HD キッズステーション 1045.ontvjapan.com

xmldata.c を次のように変更してみたましたが、あいかわらず番組表をとることができません。
{ "キッズステーションHD", "1045.ontvjapan.com", 28864, 7, 330}

xmldata.c の変更方法がまずいのでしょうか?


191:login:Penguin
12/08/01 01:27:26.81 6V+7ze4s
>>190
epgdump.c も同じように変更した?

192:login:Penguin
12/08/01 01:46:13.85 2N9SXnKm
>>191
ありがとうございます。
epgdump.c も変更したらうまくいきました。

193:login:Penguin
12/08/01 18:33:11.23 Z9y2DrLQ
本日のチャンネル変更完了
次は9/1か

194:login:Penguin
12/08/01 20:38:13.87 3YOZx+Od
recpt1でPT3を使うのに、recpt1側のソースでいじる必要のあるところってありますか

195:login:Penguin
12/08/01 21:14:29.45 Hhuehbrx
pt1_dev.h

196:login:Penguin
12/08/01 21:48:50.93 e6qEG+Bj
PT3の不具合報告ないけど安定してるのかな?
まだ利用者すくないだけ?

197:login:Penguin
12/08/01 22:17:20.45 SftwNuU3
>>194
先駆者に感謝!
とりあえず、pt1_dev.hとrecpt1.hだな

URLリンク(hg.honeyplanet.jp)

>>196
俺はやっとFPGAアップデートする環境が揃いそうwww

198:pt1.oyama
12/08/01 23:24:14.37 YUFmbq2d
>>188
とりあえず修正してみました

199:login:Penguin
12/08/02 02:57:02.92 xpHg7+yK
>>198
乙、さすがエレガント!


ところで、PT3のドライバって、

> KERNEL=="pt3video*" GROUP="video", MODE="0660"

って0660のパーミッションでデバイスファイル作るから(PT2は0666ですよね)、
rootかvideoグループに所属してないとデバイス読み書きできない気がするけど
これってそういう意図でわざと変えたって理解で正しいですか?

200:login:Penguin
12/08/02 09:47:49.41 zzBp+5by
有志のみなさんありがと、PT3動作報告

Fedora10
Linux localhost 2.6.31.3-fc10.x86_64 #1 SMP Wed Jul 6 17:28:45 JST 2011 x86_64 x86_64 x86_64 GNU/Linux
ただし、 vzalloc は vmalloc & memset に変更

>>194
ln 張れば recpt1 を変更する必要はないですけど、
ln をどっかに書いとかないといけないので労力は変わらんか。


201:login:Penguin
12/08/02 16:39:34.39 xpHg7+yK
俺も今週末にはPT3の動作検証に本格参入したいのだけど…
とりあえず、最新バージョンをgithubからcheckoutした状態で
modprobeしたら、

> PT3: fail i2c run_code status 0x32

出ました。rmmod&再度modprobeしたら出ない。
初期化リトライコードは入ってる。
でも、まだ何かあるみたい。

Fedora17
Linux localhost.localdomain 3.4.6-2.fc17.x86_64 #1 SMP Thu Jul 19 22:54:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

202:login:Penguin
12/08/02 17:28:50.60 FKUuEQDI
Fedora16で
fail i2c run_code status 0x32
が出てもそのまま動く時と動かない時があるみたい

203:login:Penguin
12/08/02 18:31:16.11 B68Aps8m
>>199
最初の頃にテスト用に変えてそのまま忘れてました
特に意味はないです。実用しだすと不便なんで0666に戻します。

>>201-202
"fail i2c run_code status 0x32"はリトライ中のも表示されるので表示される=失敗じゃないです。
キャラクタデバイスできてればリトライで成功したって感じ。
分かりにくいので表示方法考えます。

204:login:Penguin
12/08/03 13:22:52.69 UONBEzyW
最近ドロップするようになってきた

205:login:Penguin
12/08/03 19:42:56.11 rO3lCFfv
PT2の新しいsdk来たね

206:login:Penguin
12/08/03 21:51:31.57 OHVbIAWc
今更PT2!?と思ったけどデジタル署名付けたのね

207:login:Penguin
12/08/05 05:10:48.43 RqrdZbN9
新規にPT3の環境を作っているんですが、
PT3は、GitHubのものを使うとして、
epgdumpは、どれを使うのがベストですか。
また、録画システムはどれがお勧めですか?
epgrec
foltia
rec10
torec
Chinachu


208:login:Penguin
12/08/05 08:36:42.46 41hzz0D/
>>207
お勧めはMythTV

209:login:Penguin
12/08/05 09:04:34.71 dpGxjtlL
>>207
枯れて安定してるのはepgrecなんだけど、iPhoneだと操作しにくいんだよな
スマホ向けにも画面が最適化されるのが欲しい
しかしLinuxerなら自分で実装せねば
そういや7月終わったけど、PT3対応予定のfoltiaどうなった

210:login:Penguin
12/08/05 10:56:17.93 l7mI07US
URLリンク(w3.quake3.jp)
こんなのがあってよさそう。

211:login:Penguin
12/08/05 11:00:20.24 x+jzNq5X
recpt1をpt3専用にコンパイルし直して評価してますが、
今のところ何も問題無いです。>開発者、乙!

一点だけ、気になった点
PT2だと録画開始時と終了時にsyslogにメッセージ吐いてて
終了時にはドロップ数とかオーバーフロー数とかわかって
何気に便利だったのでPT3でもあったらいいと思います。

Fedora17
Linux 3.5.0-2.fc17.x86_64 #1 SMP Mon Jul 30 14:48:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

212:login:Penguin
12/08/05 14:23:10.52 3a38bOUT
>>211
>今のところ何も問題無いです。>開発者、乙!
ありがとう

PT1,2は持ってないんで確認できないんだけど
開始時のメッセージってどんなのでしょう。
ソース読んでみたんだけどよくわからなかった。

終了時はPT1のようなドロップ数やオーバーフロー数は出せなくて
PT3側のエラーパケット数なら出せるんだけどそれでいいかな?

213:login:Penguin
12/08/05 15:37:22.37 3a38bOUT
>>209
foltia AL版ドライバが出るの期待してるんだけどどうなるんだろうね
まさか他力本願で対応予定とか言ってるわけじゃないだろうし
FPGAアップデートどうするのかとか興味わくよね

214:login:Penguin
12/08/05 16:02:14.35 uiL89qvX
今までが他力本願だったからgitのドライバがそのまま取り込まれるとと思いますよん

215:login:Penguin
12/08/05 16:34:00.59 x+jzNq5X
>>212
乙です。
PT3が十分安定してるのでPT2との2枚刺しでの運用に切り替えましたが
これまた安定稼働してます。PT3もっと買ってこようかなwww

PT2のsyslogメッセージは、

開始時:
> PT1:ISDB-S Wakeup
> used bs tuners on ffff8803e4a05000 = 1
> PT1:LNB on 0V

終了時:
> used bs tuners on ffff8803e4a05000 = 1
> PT1:LNB off
> (250:1)Drop=00000000:00000000:00000000:00000000
> PT1:ISDB-S Sleep

みたいな感じです。「ISDB-S」は地デジだと「ISDB-T」になります。
当然ハードが違うので出せる情報に違いはあると思うので、
内容は出せるものでいいと思います。動作確認的にはWakeupとか
Sleepの行だけでも十分重宝します。

216:login:Penguin
12/08/05 16:49:19.69 4V/ll1bL
私はそれがたくさん出て邪魔だったのでprintkコメントして出なくしてました

217:login:Penguin
12/08/05 17:11:04.48 3a38bOUT
>>212
さんきゅー

>>216
私もどちらかというと出て欲しくないのでモジュールパラメータで制御できるようにしてみます。
デフォルトは出ない方向で。

218:login:Penguin
12/08/05 19:29:54.87 3a38bOUT
githubへpushしました

モジュールパラメータ debug でメッセージの表示が切り替えられます。
0 : 出来るだけ表示しない
1 : 今までと同じ程度の表示
7 : デバッグ用などいろいろ表示

219:login:Penguin
12/08/05 21:11:31.42 JuO5mXyc
>>218
乙であります

220:login:Penguin
12/08/05 21:45:22.49 x+jzNq5X
>>218
乙です
至れり尽くせりですね

221:login:Penguin
12/08/06 14:22:59.43 hnqXQbDf
最近PT3手に入れたんだが、
FPGA回路更新って、Windows上でやるものなの?

222:login:Penguin
12/08/06 14:40:50.63 3jzZZ6g1
>>221
Yes。いまのところWindowsでしかできない
Linux版PT3ドライバはFPGA回路バージョン0x04必須


223:login:Penguin
12/08/06 15:18:28.72 hnqXQbDf
>>222
レスありがトン。
多少面倒だけど(Windows機のOSもSSDに入れなおそうと思っていて)
丁度いい機会だからやってみるよ。


224:login:Penguin
12/08/06 19:50:54.31 K7SWbMBB
PT3の最新ドライバでもkernel: dma buffer overflowが時々でるんだけど対処
法ってある?

225:login:Penguin
12/08/06 20:24:30.39 UDiHqdlA
>>218
debug=1で評価してると

>PT3:(248:3) error count 30

とかたま~に出ますね。これってどこまで深刻なんでしょう?
初期化が遅れて頭がエラーになったのか、途中が欠けたのかで
深刻度も違うように思えますよね。出るのは今のところ複数
TS録画してる時に限られているようです。

ちなみに、ハードは無駄にウルトラハイスペックですwww

226:login:Penguin
12/08/06 20:25:16.27 7f0INJsR
出た事無いなー
マシンとか環境を変えて試してみてはどうだろう

227:login:Penguin
12/08/06 21:42:51.80 zCNfoCBL
>>224
dma buffer overflowは実はオーバーフローするかもってメッセージなんで
オーバーフローしてない場合もあります。
読んでるバッファブロック(1ブロック188KBx17本)の1本前のブロック先頭がDMAで上書きされてた場合に出ます。
対処法はpt3_dma.cの46行目の1を0に変えるとバッファを大きくとるので出にくくなります。
デバッグしようと思ってるけど実害があまりないっぽくて放置中です

>>218
error countはPT3側(FPGA)がカウントアップしてる数字で
TSパケットのエラーフラグがたってるものをカウントアップしてるみたい。
ドライバ側で問題あるとするとチューニング周波数の計算ミスかなと思う半面
>>226さんのように出ない人は出ないっぽいので環境依存なのかなって気もします。
私の環境でも地上波は同時録画じゃなくてもたまに出るけどBSは出たことないです。
複数同時録画でなるのはチューナーが干渉しあってるのかもしれないですね
もともと放送波のエラーフラグが立ってるって事もあるのかな?

228:login:Penguin
12/08/06 23:00:44.75 co7y01Ts
>>227
乙です。
ID変わってるかもしれませんが225です。
error countはFPGAがカウントしてるんだとすると純粋に変調前のノイズの
影響ってのが一番怪しいですね。うちは地上波もBS/CSも共同受信だから、
余計なノイズが乗ってる可能性は否定できないです。まあ、しばらく
様子見てみます。

>>226
変える環境が無いので、とりあえずアンテナケーブルの引き回しを
変えてみましたwww

229:224
12/08/07 08:22:32.51 UfMmN7E0
>>227 ドライバ作者の方?サンクスです。 オラみたいなアホな子が質問しまくると大変でしょうから READMEに 小技情報追加した方が良いかも!

230:login:Penguin
12/08/07 22:46:48.14 YwVeqmqO
>>229
そういうヤツらに限って読まないから
どこかに同じこと書くんだけどなw

231:login:Penguin
12/08/08 01:18:38.72 bV/CHICt
頻度低いですがerror countは出ますね。
ただ、5分録画しても2時間録画しても出るのは最大30count前後。
録画中ずっと定常的に出てるわけではないっぽい。
出たからといってデコードもsplitも失敗しないし、ノイズも
乗らない。結論としては「気にすんな」ってことかも。

232:login:Penguin
12/08/08 12:49:09.13 bV/CHICt
うお、PT3でchecksignalしたら今までに見たこと無い

> error count 35438

が出た。直後にrecpt1で録画してもerror countはゼロ。
再度checksignalしたらまた

> error count 32038

checksignalとrecpt1て何が違うんですか?>詳しい人

233:login:Penguin
12/08/08 20:36:48.11 L9BJ5IF2
>>232
checksignalだとDMA転送しないのが原因ですね。
error countのリセットが、DMA転送するか、それようのレジスタに書き込むかなんで
現状のドライバだとリセットされないです。

チャンネル設定時にリセットするように変更しました。
ついでに"dma buffer overflow"が大雑把な判定であまり意味がないので
表示レベルをデバッグに変更しました
その他微調整


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch