2012年3月8日星期四

Upgrade IX828 via USB-To-TTL

不知道是不是觉得我比较无聊?某天一个朋友说他手上有一台某公司定制的高清播放器一台,问我能不能“破解”一下,所以。

经过一番搜索,我找到了该播放器的原型产品,中科智网出的智影IX828,2008年的老东西了。官方网站上有固件可下载(需注册),最新版是2010年4月1日的v1.67G。

拆开机器,如上图所示可以找到四个触点。断电的情况下,万能表可测得最左边一个触点跟视频高频头外侧之间的电阻为0。加电后,测得最右边的触点对地直流电压接近5v,中间两个触点的电压不记得了,3v左右吧。嗯,应该就是TTL了。经过后续测试得知,这四个触点从左到右分别是:GND、TX、RX、VCC。

在板子上焊上三根线并与TTL线相连,GND对GND,TX对RX,RX对TX。串口通讯参数中,波特率为38400(高了低了都是乱码),数据位为8,停止位为1,校验位、流控制都为none。(Windows下Putty和Tera Term都可用,只是Prolific的PL2303驱动v1.5.0版在Windows 7里有蓝屏的问题,所以我用Linux里的minicom。)

打开串口通讯软件并激活该窗口,按住PC键盘上的ESC键并为IX828加电,可中断启动过程并停留在boot loader中。通常情况下,嵌入式Linux的boot loader都提供了相当多的命令。绝大部分刷高清播放器的文章都会教你怎么在PC端建立一个TFTP服务器,怎么设置播放器的网卡等等。但我手上这台机器的boot loader显然是被阉过的,help命令提示Help is not available,config命令不能用,net等命令无反应。

好在,download命令还能用,所以可以从模拟串口直接发送固件过去。

在PC端执行如下命令:

gzip -9 IX828USBromfs.bin
uuencode IX828USBromfs.bin.gz IX828USBromfs.bin.gz > i.txt

然后在播放器端执行:

# 下面这句调整播放器端的波特率设置,执行完毕后PC端也要做同样的调整
config serial 115200
download serial romfs gz

接着回到PC端,调整波特率后执行:

cat i.txt > /dev/ttyUSB0

接近8M的东西,所以即使是115200的速率也会非常的慢。在传送完毕之前,给自己找点事情做吧。在传送完毕后,继续在播放器端执行:

flash romfs 1

基本上,就是这样了。接上电视重启之后发现,遥控器工作不正常,其他倒是都OK。如果要继续折腾的话,就要修改官方固件了。至于可不可行,以后再说吧。

没有评论 :