我正在寻找在 OS X 上访问 DVB 数据的选项。最初我想支持 EyeTV DTT USB 设备,但从长远来看,我想支持一些流行的设备。我遇到的问题是没有控制此类设备的标准方法。
我所知道的所有使用它们的应用程序要么将驱动程序代码隐藏在应用程序中(例如 EyeTV 本身,它的所有驱动程序都完全在用户空间中实现,外部应用程序无法访问),或者它们使用看似已过时的MMInputFamily驱动程序(没有源代码不再可用,作者走了)。
我进行了一些研究,发现 Linux DVB 项目支持许多我想要支持的设备。进一步的研究表明,几年前曾尝试对 linux 实现进行抽象,以便可以在其他平台上重新编译它。这个想法是支持设备的努力应该集中起来,而做到这一点的最佳方法是使当前的开源实现在多个平台上工作:然而,最终似乎很少。
针对其他 *nix 类型平台编译 linux 驱动程序的想法也已在其他地方取得了一些成功。作者采用的方法在我链接的页面上有详细说明,它似乎在 OS X 上也可能可行。
无论如何,似乎有很多选择,但没有明确的赢家:
- 找到 MMInputFamily 驱动程序的源代码,尝试让它在 OS X 10.6 上运行并添加对我需要的设备的支持,参考 linux 源代码以获取指针。问题:源代码无处可寻,作者也无处可寻。此外,如果作者完全赞赏之前将 linux 驱动程序移植到 OS X 的努力,他似乎可能会走另一条路。
- 尝试以类似于我链接的 FreeBSD 项目的方式将 linux 驱动程序移植到 OS X。问题:这是非常底层的工作,如果可以避免,Apple不建议在这一层工作。
- 使用 OS X 的IOKit编写驱动程序:这是实现驱动程序的首选方法,但我必须从头开始做所有事情,显然不是一件小事。
如果可以的话,我真的很想使用 Linux 源代码,但我不确定这样的事情是否真的可行。有没有人对完成这项任务的最佳方式有任何建议或想法?