Linux 的魅力: MediaMVP 内幕作为一款 MP3 和 MPEG 播放器,Hauppauge MediaMVP 使您能够通过电视机播放数字媒体。它是一种目标明确的嵌入式设备,也是在微型硬件上的简洁 Linux® 实现的最佳例子。 除了 Hauppage MediaMVP 以外,我确实还见过更小的嵌入式 Linux 系统,但 Hauppage MediaMVP 是最小的非手持设备,它也是市面上最便宜的 Linux 系统之一。MediaMVP 在某些方面与 TiVo 非常相似:它纯粹以应用为目的,仅执行特定功能。但与 TiVo 不同的是,它没有竭力阻止用户加载他们自己的软件,毫无疑问,很多用户已经那样做了。(关于我对 TiVo 的深入探讨,请阅读我早先在 Linux 的魅力 这一专栏中撰写的文章 “TiVo 揭密”。 本文探讨了 Hauppage 提供的 “标准” 安装,还介绍了 MediaMVP Media Center(MVPMC)项目,此项目为该系统开发定制的用户环境。 [警告:按本文介绍的方法或其他任何方法修改 MediaMVP 都可能导致其无法使用,并且很可能不在厂商的担保范围内。修改风险自担。—— 编辑]MVP 是一项特别精简的小发明。从某种程度上来说,它的板载硬件甚至比 Kuro Box 还要少(关于 Kuro Box 的文章见 参考资料 部分),没有以太网,也没有足够的闪存来容纳一个内核。(实际上,对内核加以调整后可以放到 MVP 中,但他们没有这样做。)处理器是一个 STBx25xx 系列的机顶控制器,它以一个 PowerPC® 405 内核为中心构造。这种机器具有 32MB 的 RAM 和一个以太网控制器。某些版本还提供了无线功能,我所用的版本只是在母板上有一束焊接式接头,可能还有一个 CardBus 插槽。我在一个论坛中发现了一篇参考文章(见 参考资料),适于想要连接串口的用户阅读,因此这种功能也是可用的。还有一个 IR 端口,Linux 内核可通过 /dev/rawir 使用它。 STB 处理器不是普通的 PPC405,它具有内置的硬件 MPEG 解码支持,它是此类产品的绝配,使系统能够传输大量视频音频,而无需极高的处理器速度。简言之,看过所有那些关于 PowerPC 系统的市场宣传材料后,您知道了这种系统有着非比寻常的成本节约效果,而且易于修改,能够满足特定业务市场,而这就是一个具体的例子。处理器的额定速度是 252 MHz。 从硬件设计可以清楚地了解,这是一种定位明确的设备,很可能这正是该系统成本低于 Kuro Box (更不用说普通的计算机了)的原因。 在外部,MediaMVP 的功能只是搜索服务器。简化此系统的方法之一就是省略了通常要为内核和根文件系统使用的大容量闪存,这个机顶盒通过网络引导。为了避免与已有网络引导服务器发生冲突,MediaMVP 使用了非标准端口号。随产品打包发布的软件是一个仅适用于 Windows 的服务器,它结合了网络引导和流媒体服务。机顶盒在引导时会从服务器获取配置信息和名为 dongle.bin 的文件。该文件包含许多内容,有一个引导装入程序、一个 ramdisk 映像和一个内核。通过一个小小的 Perl 脚本即可轻松提取出这一切。 默认安装非常简单,只需轻松与基于 Windows 的服务器程序会话即可。如您所想,磁盘上的配置比较有趣。让人出乎意料的是,您会发现系统中包含一个 BusyBox 安装(V 0.60.5)。(参考资料 中提供了一个链接,可获得关于 BusyBox 的更多信息。)整个 ramdisk 包含略超过 2MB 的文件:其中 686KB 用于 BusyBox、1191KB 用于 MediaMVP 的 userland 软件、436KB 用于内核模块,还有一些小的配置文件。与 Tivo 精细复杂的安装相比,此安装更加简捷。 安装文件非常小,完全可以完整地重新生成这些文件。/etc/inittab 文件简直是一个简洁方面的奇迹:
serial_proxy 程序是一段在端口 4000 上运行 netcat 的袖珍脚本。它被注释掉了,无论怎么样,发布版中已删除了 nc 二进制文件。rcS 脚本处理启动任务,auto-dongle 脚本只是运行 mpeg 解码程序。解码程序若停止会自动重新启动,看起来这是这种环境中的合理选择,在桌面系统中,您可能希望关闭发生错误的服务或发出警告,但在嵌入式设备中,这不是真正的重点。 rcS 脚本形式如下所示,补充了注释掉的位:
与 inittab 文件一样,这些文件需要调整一个未出现的配置选项,这里没有普通的 netsh.sh,只安装了 auto-netsh.sh 脚本。auto-netsh.sh 脚本调整一些内核联网参数,配置 loopback 接口,并启动一个 DHCP 客户机。 尽管我的测试系统没有无线卡,但至少已经提供了无线联网的支持,“mediamvp” 二进制代码(fpage 和 mpgdec 符号连接的目标)中包含大量字符串,表示 NWID 设置和其他 802.11 术语。这可能必须用到 MediaMVP 的支持无线功能的版本中的声明。在我所看到的设备中,至少已部分地实现了无线支持。顺便说明一下,mediamvp 二进制文件并非一直是与 BusyBox 分开的,在非常早期的版本中,它们都是同一个二进制文件。有些人一直很关心这个问题,但如今 mpgdec 代码已不再发布,而 BusyBox 是以 GPL 为依据的代码。 上一篇:Linux下的硬件驱动——USB设备(上) 下一篇:Zaurus 引领嵌入式 Linux 更多相关文章
|
推荐文章
精彩文章
|