APP下载

DM500S之内置图片浏览功能的Gemini4.3.1版本(上)

2009-04-09

卫星电视与宽带多媒体 2009年5期
关键词:接收机字节机器

山 水

DM500S卫星接收机以其强大的网络多媒体功能,深受卫视发烧友的喜爱。特别是Gemini Project团队开发的Gemini 版本,携有DMM 公司的官方支持,其精美的界面菜单、不断更新的版本和功能繁多的插件,深受国内烧友喜爱。不过自从今年4月中旬的Gemini4.3.1版本的Time Bomb(定时炸弹)事件,使得国内卫视发烧友对新的Gemini版本心生恐惧,唯恐避之不及。

实际上,无需惊慌,只要了解它的反制之道,就会有解决之法。正如当你想要品尝河豚之鲜美,也要了解它的烹饪之步骤。下面就结合卫视论坛上的一些探讨,分两期谈谈Gemini4.3.1版本的反制原理、解锁方法以及图片浏览、邮件检查、RSS阅读/天气等网络多媒体功能。

Gemini4.3.1版本之定时炸弹事件

在今年4月15-18日期间,有不少烧友手中的DM500S接收机因刷入4.3.1版本的IMG软件而莫名其妙被锁死机器的情况,在电视上显示如图1画面。

“Warning- clone box detected -system stop contact your dealer- adios amigo!”其义为“警告-抄版(clone)机器被检测到,系统停止工作,请联系你的经销商-再见朋友!”约几秒钟后就全无显示了,面板灯不亮然后全部死机,遥控器无法使用,而且使用串口也无法刷写机器,烧友们称为“锁机”现象。这是Gemini团队与DMM 公司合作,对付DM500S抄版机所采取的一种手段,时称“定时炸弹”事件。

1. Gemini4.3.1 版本之锁机

实际上Gemini团队在Gemini4.3.0中,就加入了对正版DM500S的验证功能,使得很多不符合原厂MAC地址要求的DM500S接收机的蓝色面板(BP:Blue Panel)界面无法进入,当时也引起不小的风波。为了安抚民心,Gemini团队于是推出了针对DM500S的Gemini4.3.1版本,取消了这种验证功能,并为之发表了官方声明《The Gemini Project 4.3.1 DM500S MaxVar》,全文如下:

Our clone box recognition mechanism caused large waves in the last days and many opinions have been told to us. On the one hand there have been the enraged owners of clone, who had to install their addons manually now without Blue panel. Then there have been the people who simply did not understand Linux and the GPL and accused us of GPL-breach. Also a financial dependence or support from Dream Multimedia and or sponsors was subordinated to us.

On the other hand there have been over 1500 users of our forum who singned our explanation.

All in all our action was accepted very positively and we achieved our intended goal to give an impulse the owners of clone boxes. There have also been cases in which people who thought they owned a genuine Dreambox noticed because of this action that they are owners of a clone box. To our own surprise according to unconfirmed messages, now one of the manufacturer changed over to supply their own images.

Recapitulatory we note, it was never our intention to insert a waterproof recognition and to get in a Cat-and-mouse game between us and the box manufacturer. Our intension was to push a general discussion to create a consciousness on the clone and reproduction problem and to disasociate us from the clones, too. In the context of our possibilities as image developer we have used the one and only available possibility to make our point of view clear. As image-developer we have absolutly no influence on sponsors, dealers or Dream Multimedia. Our influence on the persons and companies involved in this relationship is very limited and lacked also on support from some places. In any case we get attention on our displeasure and we did not send newsletters of our sponsors containing information about clones. We will keep this in the future.

As we all are Dreambox fans we would like to say clearly, that it is in the exclusive responsibility of Dreammultimedia to proceed against clones. Only DMM has the possibilities (e.g. legal) which might be the only effective method against clones.

For us as Gemini developer and operators of the IHAD this action is now finished. With the upcoming release 4.3.1 of the Gemini Project the clone recognition will be deactivated. We nevertheless ask everyone to use its influence to proceed against clones.

烧友摇滚壳兄帮忙翻译如下:

前些日子,我们的抄版机验证功能引起了轩然大波,反响很多。一方面有怒冲冲的抄版机主,其机器没有蓝色面板而不得不手动安装附件。有对Linux和GPL(通用性公开许可证)所知甚少者,有控告我们GPL违约行为者,也有Dream Multimedia的经济受益者,以及我们旗下的电视商们。另一方面,有超过1500个用户在我们的论坛上签名支持我们的行动。

我们的所作所为完全正当,达到了我们的预期目标--刺激抄版机的机主们。同时也让那些以为拥有正版Dreambox机器的人能认识到其实他们手里的机器是抄版的。而未经证实的消息也很让我们自己吃惊不小--现在有某家制造商换用了他们自己的IMG。

总而言之,加入验证功能并不是我们在和制造商之间玩猫捉老鼠的游戏。我们旨在发起一场普通讨论,以引起大家对抄版和仿造问题的关注,并与抄版划清界限。身为Gemini开发者,我们使用此验证功能不过是为了表明我们的立场。作为IMG开发者,我们确实无意对节目商、从业者或者Dream Multimedia有所影响。因此对涉及其中的公司和个人的影响十分有限,并且在有些地方也无法求证,至于有些事情造成大家的不满,以及未就有关抄版的控制信息通知我们的节目商,将来我们会避免此类情况发生。

既然大家都是Dreambox产品的爱好者,那我们乐意明白地告诉大家:Dream Multimedia将全力以赴继续打击抄版。只有DMM(Dream Multi Media公司的简称)才有能力(例如诉诸法律)有效地打击抄版。现在,作为Gemini开发者和IHAD皮肤的控制者,我们的行动结束了。在即将推出的Gemini4.3.1版本中会取消抄版验证功能,但我们仍然要求大家继续使用它来打击抄版。

其中的最后一句话暗藏玄机,透露了Gemini团队将在Gemini4.3.1中继续打击抄版,但当时并没有引起使用者的重视,直到之后的4月16日,Gemini4.3.1版本中的定时炸弹爆发,全球各地都有受害者,引起轩然大波,这才领略到Gemini团队的打击力道。

但依据卫视论坛反馈发现,并非所有的抄版机都受害,而且Gemini4.3.1版本推出也有一段时日,所以很明显是一场预谋的打击行为。根据俄罗斯卫视论坛上烧友的说法是:当bootloader的MAC全为00时,会激活定时炸弹(或称Clone Bomb:抄版炸弹),改写bootloader,导致整个机器不能工作。

2.什么是bootloader?

大家知道,一般的电脑启动后先是进入BIOS,通过BIOS进行一定的系统初始化后,再引导操作系统如Windows或Linux等。电脑中的这段引导加载程序由BIOS和位于硬盘主引导扇区(MBR)中的引导程序一起组成。BIOS的本质就是一段固件程序,在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。引导程序再将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。

数字卫星接收机属于一种嵌入式系统,如DM500S接收机构建于嵌入式32位PowerPC405型CPU之上,运行Linux操作系统。它们通常并没有像电脑中BIOS那样的固件程序,但也需要类似电脑中的引导装载程序,这就是bootloader(引导装载器),整个系统的加载启动任务就是由bootloader来完成。

在DM500S接收机中,当机器上电后,bootloader将首先接管系统,在进行一些最基本的上电自检后,bootloader将对系统的硬件进行初始化,如初始化SDRAM(U30、U31),因为操作系统是运行在SDRAM中的。如果操作系统的代码不是存放在FLASH中的,而是存放在硬盘、U盘、CF卡中的,如DM7000、DM7025接收机的MULTIBOOT多模式启动,bootloader还必须初始化好这些硬件设备。接下来,bootloader需要将操作系统的代码拷贝到主存储器的特定地址,最后bootloader将控制权交给操作系统,由操作系统完成接下来的工作。

简单地说,bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,可以初始化CPU、内存等硬件设备,并将bootloader本身拷贝到RAM中运行、内核拷贝到RAM中调用等,以为最终调用操作系统内核或用户应用程序准备好正确的环境(图2)。

一旦bootloader出了问题,就如同电脑的BIOS芯片出了问题一样,导致系统不能正常工作,这时就需要刷写bootloader。在DM500S接收机中,bootloader存放在FLASH芯片TE28F640J3C(U20)中,因此最简单的方法就是将U20焊下,更换写好bootloader和IMG的FLASH芯片,这也是故障机返厂维修时所采用的方法(图3)。

被锁死的DM500S接收机的修复

对一般的烧友来讲,是没有条件采用上面这种方法的,那么对于这些被锁死的DM500S接收机,需要刷写bootloader。刷写bootloader的唯一方法是通过JTAG串口进行刷写,在DM500S主板上,有一个标有J61的16脚接口,未焊上插针,这就是JTAG串口,其引脚功能如图4所示。

1. JTAG接口

JTAG接口遵循是一种国际标准,该标准最初由JTAG(Joint Test Action Group:联合测试行动组)于1985年制定的一个检测PCB和IC芯片的标准,1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。通过这个标准,可对具有JTAG接口的CPU、DSP、CPLD、FPGA等高级芯片构成的硬件电路进行边界扫描(Boundary Scan)和故障检测。

JTAG接口主要有五个端口,详见表1。

JTAG接口基本原理是在器件内部定义一个TAP(Test Access Port:测试访问口),通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。这里所说的测试有两种,一种是用于测试芯片的电气特性,检测芯片是否有问题,一种用于Debug。只要TCK正常,就可通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的所有设备,如FLASH、RAM等。

在传统生产流程中,先是对芯片进行预编程,而后再装到板上;而采用JTAG接口则可实现ISP(In-System Programmable:在线可编程),器件先固定到电路板上,再用JTAG编程,从而加快生产流程;因此JTAG接口广泛应用在板级生产测试系统、研发仿真调试系统、软件加载系统上,绝大部分的数字卫星接收机电路主板上,都留有这一接口。

在卫星接收机正常的使用过程中,电路主板上的IC芯片执行其预定功能,就好像边界扫描电路不存在一样。只有当进行测试或在系统编程而激活设备的扫描逻辑时,数据可以传送到IC芯片中,并使用串行接口从IC芯片中读取出来。这样数据才可以用来激活设备核心,将信号从设备引线发送到PCB上,读出PCB的输入引线并读出设备输出。

2. DB-25并行接口

电脑上的并行接口,简称并口,最早是用于连接Centronics接口的打印机的,又称为打印口,其外观是一个25针双排母插座(DB-25)。随着后来如光驱、磁带机等并口设备的纷纷出现推出,生产厂商改进Centronics接口,并于1994推出了支持并口高速双向数据传输的IEEE 1284标准。

并口引脚功能如图5所示。

电脑并口是用并行通讯方式进行传输,所谓并行通讯是指有多条数据线传输,比如电脑并口一次能传送8位数据,对于一个字节的8位数据可以一次传送完毕,传输速度较快。不过信号在线路中传输时会产生衰减和延时,当传输距离较长时,将不能保证8位数据同时到达,会产生错误,所以并口不适合于长距离传输。

3. JTAG转接板

接收机的JTAG接口必须通过JTAG转接板,才能的和电脑的DB-25并口相接(图6)。

JTAG转接板电路很简单,就是通过高速的八路三态缓冲驱动74HC244芯片缓冲后,接到接收机JTAG接口。用于DM700/DM5600/DM500S接收机的JTAG转接板电路,如图7所示。

缓冲器74HC244放置在电脑和接收机之间,其1G、2G使能信号接地,缓冲器处于低电平的有效状态。升级时,电脑在升级程序的控制下,通过DB-25并口D0~D3、BUSY端口,向74HC244的2A1~2A4四路数据输入端输入系统程序,经过74HC244内部的缓冲器缓冲处理后,再由2Y1~2Y4数据输出端分别送到接收机JTAG接口HALT(即nTRST)、TMS、TCK和TDI端口上;同时JTAG的TDO端口,经74HC244的1A1这路缓冲器将所有JTAG测试指令和数据寄存器的串行数据送到DB-25并口BUSY(忙)端口上,向电脑反映接收机当前通讯状况。

根据上述电路制作好的JTAG转接板,如图8所示,可采用3V纽扣电池作为工作电源,用短接插针作电源开关。

也可以制作简易的JTAG转接线, 如图9所示。其中DB-25插头的18~25脚连接在一起并和J61的16脚直接相连,2、3、4、5、11脚通过5个100Ω电阻连接分别和11、9、7、3、1相连接。

4. JTAG接口刷机

由于DM500S接收机JTAG接口J61没有插针,只有焊点,我们需要将转接板的6根引线焊到这些焊点上(图10),然后将另外一端连接到电脑的打印机端口上。

再打开电脑,从网络http://blog.chinatv-net.com/mediablog/Uploadfiles/2008-9/92499143.rar上下载dreamboxbootloader刷机软件,经解压缩后,得到一个名为dreamboxbootloader的文件夹,解压缩后打开其jtagwin5xxx刷机文件夹下的jtag_windows刷机程序,出现【DreamFlash for Windows v0.1】界面(图11)。

点击“Connect”连接按钮,插上DM500S电源,出现图12界面,表示连接成功。

再根据自身接收机所采用的高频头型号,将相应的BIN文件复制到刷机文件夹里,并重命名为“blimg”,然后点击“Write”按钮就可以把blimg文件刷写到FLASH芯片中,此时界面下方会显示刷机进度条和百分比数值(图13)。

当弹出的界面显示“finished!”时,表示bootloader文件己经写入FLASH芯片中,按OK键,大功告成(图14)。

最后去掉JTAG转接线,重新通电,接收机面板绿灯亮就表明刷机成功,这时就可以再通过RS-232串口或Ethernet网口刷系统IMG了。

采用JTAG接口刷机,建议采用转接板,这样可以保护电脑的DB-25并口,并且容易刷机成功。在插拔DB-25并口前,需要关闭电脑电源,以防止电脑并口电路受损。另外,在电脑的BIOS系统里,应该将Parallel port Mode(并口模式)设置“ECP+EPP”或“AUTO”,并且点击“ 我的电脑”右键→【属性】→【硬件】→【设备管理器】→【端口(COM和LPT)】→【打印机端口(LPT1)】右键→【属性】→【端口设置】→点选“一定不要使用中断”(图15)。

对于高频头的BIN文件一定要选对,否则不能正常工作。采用ALPS品牌的BSBE1系列高频头(俗称A头),如BSBE1-701A、BSBE1-702A、BSBE1-706A(图16),选用“dm500-alps-boot”文件;采用PHILIPS品牌的SU1278/LH-2 高频头(俗称P头,图17),选用“dm500-philps-boot”文件。

实际上我们在维修时DM500S接收机时,也遇到类似的情况:如果机器的P头损坏,而手边只有A头,那么在不得已的情况下进行更换后,还必须将原来FLASH芯片的底层驱动通过JTAG接口刷写成“dm500-alps-boot”的BIN文件。否则,在使用时,接收机的寻星界面里虽有信号强度和信号质量显示,但始终无法锁定信号;如果从DM500S的系统信息里查看,高频头的型号仍然是“PHILIPS”,这就是bootloader里的高频头驱动文件不对所致。

对于采用板载高频头的DM500S接收机(图18),由于刷机软件没有提供相应的高频头BIN文件,只有和提供接收机的经销商联系解决。

当采用JTAG简易转接线刷机时,对操作有严格的要求,应该注意以下几点:

(1)由于是采用简易的转接线,使得JTAG接口信号损失较大,因此在制作转接线要注意线长应该<10cm,否则启动软件后会发现非常难连接,出现图19的连接失败提示。

(2)该程序调用IO口读写的时序有点问题,会使得连接DM500S的JTAG口成功率比较低。为了解决这个问题,需要注意在点击“Connect”按钮时,需同时给DM500S通电。可是右手按住“Connect”按钮不放,左手插上接收机电源插头的同时,松开右手,完成同时加电动作。

(3)采用简易转接线易使得JTAG接口信号不稳定,如果已连接上,但一按“Write”按钮就断,软件界面就消失,或者进度条没有走完软件界面就消失了,那就重新操作,有时会需要操作很多次,才能完成刷机进度。

IMG定时炸弹的检测

当我们通过JTAG接口将bootloader刷写到接收机的FLASH芯片中,这时FLASH芯片中没有映像文件,还必须通过bootloader在系统上电后初始化某个特定的通信端口如RS-232串口、Ethernet网口从电脑下载内核映像文件(IMG)和系统备份文件(fw2),烧写到接收机FLASH(U20)中。若需对内核或文件系统升级,也是通过RS-232串口、网口重新烧写新的映像文件,直接覆盖原来的映像文件。

各种刷机方法下的文件、软件和接口要求如表2所示。

我们在选取IMG时,就需要注意该IMG有没有携带定时炸弹,俄罗斯烧友推出了一款针对DM500接收机IMG定时炸弹检测的小软件DM500 Clone Bomb checker,该软件是通过检测IMG中的/lib/modules/2.6.9/extra/head.ko驱动文件有没有被植入炸弹内核,来作为判断有无定时炸弹的依据。

软件可从http://blog.chinatv-net.com/mediablog/Uploadfiles/2008-9/95951849.rar网址下载,下载完成经解压缩后,点文件夹里的“dm500_clone_bomb_checker”程序,在弹出的界面中,填写好左边【Dreambox connection】区域接收机的IP地址、用户名和密码,点击右边的“Check DM500S”检测按钮。如果【Check Results】(检测结果)区域的指示灯显示绿色的话,表明该IMG的head.ko没有被植入定时炸弹(图20);如果是红色的,就是被植被入了head.ko(图21)。

目前所有的Gemini4.3.1、Gemini4.4.0版本都被植入了head.ko,其容量为固定的320916字节(图22),具有潜在的危险,但并不一定会爆发。只有当bootloader的地址不是00:09:34:XX:XX:XX 时,才有可能会激活定时炸弹,清除整个bootloader文件,使得抄版机遭到毁灭性的打击。

有用户询问,一些网站上供下载的Gemini 4.3.1版本号称无毒版或无炸弹版,是什么意思?实际上这是Gemini 4.3.1的阉割版,是用其它版本驱动文件head.ko内核替换了Gemini 4.3.1的驱动文件head.ko,从而避免了因320916字节的head.ko驱动搞死bootloader。不过由于驱动文件的更换,也相应地失去了新驱动文件所支持的图片浏览功能,所以说这是阉割版,没有实际意义。

修改DM500S接收机的bootloader MAC 地址

当你想要品尝河豚之鲜美,就要了解它的烹饪之步骤。当你想要体验Gemini 4.3.1版本内置的图片浏览功能时,也要知道它的趋利避害之道。上面已经谈到, Gemini4.3.1版本是将bootloader里的MAC地址的前3个字节“00:09:34……”开头的视为是正版机,前3个字节实际上就是厂家编号,后3个字节则为机器编号。只要是同一厂家生产的,前面3个字节都是一样的。

对于采用“00:09:34……” MAC地址的接收机,可以直接刷写Gemini 4.3.1版本。如何知道自己机器的MAC呢?可以从DM500S软硬件信息Ethernet MAC得知(图23)。

而在Gemini 4.3.1、Gemini4.4.0版本中隐藏了Ethernet MAC地址(图24)。

但可以通过【蓝色面板】→【系统信息】,在新增加的【网络信息】界面中查看(图25)。

Gemini4.3.1的IMG将前3个字节不是“00:09:34……”则视为盗版机,将可能会激活定时炸弹。对于这些MAC地址不是“00:09:34……”开头的机器,我们可以将它修改成该地址。

一般修改MAC地址所用的操作系统命令ifconfig,只能修改数据链接层(Data Link)的MAC地址,而对bootloader里的物理层的MAC地址没有任何影响,所以就算用ifconfig改了MAC地址,还是会受到攻击。这好比小偷为了逃避追缉,临时用了张假身份证一样,可以欺骗路人,但带到警察局进行身份核实,终将会被识破。在这里,IMG就好比警察局,抄版的接收机就好比小偷,而修改数据链接层的MAC地址就好比一张假身份证。

解决办法是把bootloader里的物理层的MAC地址改为“00:09:34……”开头的,卫视论坛上提供了通过JTAG接口、Ethernet网口两种修改方法,我们整理如下。

1. 通过JTAG接口修改

首先通过JTAG接口连接好接收机和电脑,再从http://blog.chinatv-net.com/mediablog/Uploadfiles/2008-9/95756965.rar下载一个Jtagdm500软件,解压完rar文件后,双击Jtagdm500应用程序,大概运行十分钟左右,就可以修改DM500S接收机的bootloader MAC 地址(图26)。

对于多个机器MAC地址的修改,可右键“烧录.bat”文件,在弹出的下拉菜单里选择“编辑”功能,修改命令行“00:09:34”后的机器编号,已适应不同MAC的需要(图27)。

2. 通过Ethernet网口修改

首先将DM500S连接到局域网中,然后下载dbmac文件,下载网址为:http://www.fs2you.com/files/81b57ab0-1b15-11dd-bb47-0014221f4662/,具体修改方法如下:

(1)用FTP将经解压缩后得到的dbmac8上传到DM500S的/tmp目录下。

(2)用Telnet登入DM500S,在/tmp目录下执行chmod 755 dbmac8。

(3)在/tmp目录下执行第一阶段命令 ./dbmac8 1 ,看到“Wait...”提示后等待执行成功。等待时不要作任何操作,特别是不要断电。执行成功后DM500S会自动重启进入第二阶段。

(4)DM500S重启完毕后,再重复第2个步骤。

(5)在/tmp目录下执行第二阶段命令 ./dbmac8 2 ,要求和上述一样。执行成功后会看到含“successfully”的信息,表明bootloader MAC地址修改成功,重启DM500S后新地址就生效了。

采用dbmac文件只是把代表厂家编号的前3个字节改成正版机的“00:09:34”,表示是DMM生产的,对于后面3个字节的机器编号,你原来是多少,现在还是多少,并没有改动。由于各个接收机的机器编号是不同的,所以修改完后每个机器的MAC地址都是不一样的。

通过上面介绍的解锁方法、预防措施,我们就可以放心地安装Gemini4.3.1版本,体验其图片浏览、邮件检查、RSS阅读/天气等网络多媒体功能,下期将详细地介绍这些特色功能,敬请关注。■

猜你喜欢

接收机字节机器
机器狗
机器狗
字节跳动瞄准教育等新业务
基于频率引导的ESM/ELINT接收机的设计与实现
神奇的独眼机器
DVB—S免费机刷机之五
人类进入“泽它时代”
CDMA系统中2-D RAKE接收机的性能研究
简单快速调星实践:近乎完美免外拉电源寻星法!