Linux下PT2的使用

Linux的2.6以上版本已经支持PT2作为DVB设备,驱动名称earth_pt1,在多媒体电视目录下。

现在内核3.8.3,驱动工作比较稳定。

驱动自动查找后,会留下系统日志

和创建系统设备目录

/dev/dvb/adapter0

/dev/dvb/adapter1

/dev/dvb/adapter2

/dev/dvb/adapter3

0,2是BS/CS解调器

1,3是地上波(普通电视信号)解调器

每个设备目录下有

frontend0

demux0

dvr0

三个子设备,都是字符设备

频道搜索

编译scan2c进行频道搜索,由于日本各个区域的信号与频道是不同的,输出信息用于与解调程序对应

数据解调

编译tune将dvr0解调后的数据存回本地文件

视频解码

使用b25将视频解码

节目表解码

使用epgdump将节目表解码

错误处理

现象: 使用网上的tune和cat或dd conv=noerror下在解调数据会遇到 Value too large for defined data type,用kill中断dd进程,经常造成驱动设备无法释放

错误: Value too large for defined data type

解决: 通过对tune的改造,加入读写数据.用Ctrl-C或kill -INT可以结束tune进程

现象: b25的初始化错误,在新装系统执行b25时报错

错误: error - failed on B_CAS_CARD::init() : code=-3

解决: 重新b25编译,需要libpcsclite   

        b25执行时需要pcscd - IC卡daemon

错误: failed on ARIB_STD_B25::put() : code=-4

现象: 录制CS节目后进行b25转换报错

内容: 查code=-4是ARIB_STD_B25_ERROR_NO_PAT_IN_HEAD_16M,在16M数据块中仍无法找到PAT包

原因: 信号质量差,是因为同轴电缆设计或质量问题

解决: 换了一根连接到墙上插头的信号线