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包
原因: 信号质量差,是因为同轴电缆设计或质量问题
解决: 换了一根连接到墙上插头的信号线