/var/opinion - MythTV 出错
我想念我的 TiVo。我拥有最早生产的 TiVo 设备之一,我经历了各种硬件故障仍然让它保持运行,直到今天它仍然工作。我用一个 160GB 的硬盘替换了现有的硬盘,这给了我几乎无限的存储空间。然后我的电视坏了,所以我从 www.newegg.com 上淘到了一个超值的 HDTV。TiVo 可以与这台电视一起使用,但它并没有真正发挥它的优势。
所以,我决定做一些我多年来一直想做的事情。我正在 Linux 上构建一个 MythTV 盒子,它将用作多用途多媒体服务器,甚至可能接管我老化的通用存储和 IMAP 电子邮件服务器的工作。由于一些原因,我推迟了这个项目。我不想投资额外的硬件,而且从我读到的一切来看,让 MythTV 盒子工作起来非常耗时(读作:非常痛苦)。
我为 Ultimate Linux Box 那期做的所有测试给我留下了很多额外的硬件可以玩。所以这个问题对我来说已经解决了。我唯一需要购买的是电视调谐卡。我选择了 Hauppauge WinTV-PVR-500MCE,它基本上是将两个 WinTV-PVR-150 调谐器放在一张卡上。
WinTV-PVR-500 不支持 HDTV,但是 HDTV 频道也不多。所以计划是在 MythTV 盒子和我的支持 HDTV 的有线电视盒之间建立协同作用,以便我可以从两者中获得最佳效果。在大多数情况下,MythTV 盒子应该可以更改有线电视盒上的频道。
我做的第一件事是在我已经运行的 PC 上测试这张卡,具体来说是一个带有用于 socket AM2 AMD64 处理器的 ASUS M2N32-SLI 主板的盒子。当我在打开机箱安装 Hauppauge 卡时,我抓住机会安装了一些新的 DDR2 内存模块,我计划测试这些模块以提高速度。之后,PC 甚至无法启动到设置屏幕。
我读到过这款主板对内存很挑剔,这要归咎于 BIOS 问题,所以我使用了旧内存来下载并安装最新的 BIOS。这解决了内存问题,但是现在我拥有的每个 Linux 发行版都在启动时崩溃了。我遇到了 MP-BIOS “8254 timer not connected to IO-APIC” 错误,这个错误困扰着一些早期的 Linux 内核。虽然这可能是 Linux 内核问题,但更可能是新 BIOS 的问题。我从来没有运气好到 ASUS 修复 BIOS 错误,所以我希望内核开发人员找到一种方法来解决这个问题。无论如何,我在启动命令中添加了 noapic,现在 Linux 又可以启动了。
这时,我决定我不想再折腾 ASUS 盒子了,所以我用我计划用于 MythTV 的稍微旧一点但仍然强大的硬件构建了计算机。为 MythTV 定制的 Knoppix 发行版 KnoppMyth 几乎无法安装,而且即使安装了也无法工作。Kubuntu 6.06 安装得很干净,但是我犯了一个错误,使用了 vanilla 2.6.17 内核来添加 Hauppauge 驱动程序(它需要来自 dl.ivtvdriver.org 的 ivtv 驱动程序和来自 Hauppauge 站点的固件)。Vanilla 内核破坏了 Kubuntu 中的许多东西,而且 Hauppauge 驱动程序根本无法正确编译。
所以我只好使用现有的 Ubuntu/Kubuntu 内核。我找到了许多关于在 Ubuntu 5 上使 ivtv 驱动程序工作的操作指南网站,但没有关于 Ubuntu/Kubuntu 6 的。不幸的是,这些版本之间存在显着差异。最大的区别是这两个版本如何处理第三方固件。在试验了太长时间之后,我发现乱枪打鸟的方法解决了我的问题。我几乎到处都放了驱动程序模块和固件文件的副本,包括我的袜子抽屉。最后,模块加载了,/dev 目录现在填充了正确的设备。
在我睡觉之前,我还有很长的路要走,但是 MythTV 安装的其余部分看起来非常简单,至少在纸面上(或者我应该说“在像素上”)。然而,上述经验清楚地表明了我长期以来对 Linux 和 Linux 发行版的了解,但最近谈论得不够。几乎每个发行版都 fork 了 Linux 内核以及更多内容,以实现其针对 Linux 发行版的特定目标。我犹豫是否称之为坏事,即使当你尝试做一些像安装 MythTV 驱动程序之类的事情时,它往往会露出丑陋的一面,因为更新的操作指南说明几乎总是落后于新发行版的发布几个月。
这些发行版采取如此自由的做法是有原因的。基本的基础不够好。我知道,这些是挑衅的话。我将用这些引战的话题让你们悬念。下个月我将在这个话题上说更多。
Nicholas Petreley 是《Linux Journal》的总编辑,曾担任程序员、教师、分析师和顾问,从事 Linux 工作和写作已超过十年。