电信新的129套餐送天翼高清itv,附赠一台烽火hg680-j机顶盒。
机顶盒是安卓系统,被设置为专门用于播放电信的iptv。刚拿到手,并不会设置,发现只能有线连接。但是我们家的网只有书房有网络端口,接着无线路由。于是我打算利用旧的tplink-wr340+来做桥接。发现340g的桥接功能太老了,需要两台路由都支持才行,于是刷成tplink wa501g无线接入器的固件,利用ap client给机顶盒提供网络。但发现不能登录iptv。
然后我网上搜索了很多iptv如何设置的文章。大部分的文章都是针对光纤入户(FTTH)的,我了解了我家的网络是光纤入楼(FTTB),网线进户。不过其实差别并不大。
第二天工作人员来装机,说一定要机顶盒直接接网口进行拨号才能用,宽带和itv的账号是不同的,要同时上网和看iptv要再配交换机。他给我设置了下账号,拨号是tv+itv号码+@itv,密码默认111111。业务账号是itv号码,密码也是111111。网上说电信的iptv用了组播技术,效果好,就是一定要客户端直接pppoe连接。我把账号输在路由器里,用路由拨号连接后再接机顶盒,测试能够登录,但画面是黑的。tplink有出一台支持iptv的一体机,据说可以实现一台设备既提供宽带,又提供iptv。
接下来要研究如何让在客厅的机顶盒用无线的方式独自完成拨号来看iptv。具体的方法就是用一台无线路由器来做无线交换机,将信号转出来,然后机顶盒自己进行拨号。具体见下图:
拆机发现hg680自带了rtl8188etv的无线芯片,但默认界面不支持启动无线。但机器有串口,而且还焊好了针。使用usb转ttl工具可以在电脑上对hg680进行调试,这在网上已经有很多教程了。用杜邦线接上,tx和rx要交叉接,波特率是115200。连上后安装当贝桌面,就可以设置wifi了。机顶盒默认没有开adbd,在init.rc里有相关的服务代码,但是被注释掉了。利用android kitchen重新打包一下就行了。提取和刷入boot都是用dd命令。查看分区在/dev/block某个by-name的文件夹里。
连上wifi后发现无法利用自带的拨号设置进行连接。我懒得研究它自带的程序,找了下第三方安卓无线pppoe拨号程序,但需要root。虽然adb shell后直接就是root,但安装supersu一直没有成功。我转而打算直接运行命令。系统已经带了ppp模块,在/etc/ppp里有连接脚本和配置文件,可以直接用来拨号。
拨上后用ifconfig可以看到ppp0,但不能上网。参考网上关于安卓pppoe的文章,发现要设置路由,命令如下:
#ip route del default
#ip route add default dev ppp0
设置后发现还是不能上网,只能ping通ip地址,不能ping通域名,说明dns有问题。网上文章说要用setprop net.dns1 dns服务地址
来设置dns,但我设置后没有效果。最后是在无线交换机上的dhcp设置里设置dns为拨号获取的dns后成功的。
因为用终端输命令比较麻烦,我又编写了专门的安卓程序,利用adb shell可以获取root权限这一点运行设置命令。
折腾了半天,iptv的效果却并不十分让人满意。首先是频道少,然后因为被我用作无线交换机的路由器的无线速率只有54Mbps,而且隔了一堵墙,连接的速度不佳,测试最快只有4Mbps。我也懒得再专门买一台无线路由器了。另外,自带的程序还有当贝桌面会不断检测网络,提示网络未连接,并修改路由,导致不能连接。再有就是虽然我写了个安卓程序,但操作还是不友好,对于家人来说很麻烦。
现在机顶盒主要用来连接新的无线路由来当作网络盒子用了。运行各种tv应用,看网络电视也还是可以的。
更新
- iptv会拦截home键,使得进入iptv后不能调回当贝桌面。我发现查键盘后可以用alt+tab组合键切换出去。想通过修改键值用遥控器实现这一功能,但失败了。发现安卓的键值里有APP_SWITCH,但需要触摸操作,不能用按键切换。好在APP_SWITCH后跳出了iptv,home键就又可以用了。最后修改了遥控器一个按键的键值为APP_SWITCH,显示切换任务时再按首页键从iptv返回当贝。
- 手动修改boot.img,增加init.d支持,设置开机自启adb。这样可以解决应用启动adb会不响应的问题。
- 设置拨号应用开机自启,并运行一个检查连接状态的service,这样就可以较好地实现iptv的功能了。*