Помогите написать драйвер DVB для OS X - PullRequest
6 голосов
/ 30 января 2010

Я ищу варианты доступа к данным DVB в OS X. Изначально я хочу поддерживать USB-устройство EyeTV DTT, но в долгосрочной перспективе я бы хотел поддержать ряд популярных устройств. У меня проблема в том, что не существует стандартного способа управления такими устройствами.

Все известные мне приложения, которые их используют, либо скрывают код драйвера внутри приложения (например, сам EyeTV, все его драйверы полностью реализованы в пространстве пользователя и недоступны для внешних приложений), либо они используют, по-видимому, defunkt * Драйвер 1003 * MMInputFamily (исходный код больше недоступен, автор ушел в обход).

Я провел некоторое исследование и обнаружил, что ряд устройств, которые я хочу поддерживать, поддерживаются в проекте Linux DVB. Дальнейшие исследования показывают, что несколько лет назад была попытка абстрагировать реализацию linux, чтобы она могла потенциально перекомпилироваться на других платформах. Идея заключается в том, что усилия по поддержке устройств должны быть объединены, и лучший способ сделать это состоит в том, чтобы заставить текущую реализацию с открытым исходным кодом работать на нескольких платформах: однако, в конце концов, это, похоже, мало что дало.

Идея компиляции драйверов linux для других платформ * nix-типа также была взята на вооружение в других местах с некоторым успехом. Подход, использованный автором, подробно описан на странице, на которую я ссылался, он также потенциально может быть жизнеспособен и в OS X.

В любом случае, кажется, что есть несколько вариантов, но нет явного победителя:

  • Найдите исходный код для драйвера MMInputFamily, попробуйте заставить его работать на OS X 10.6 и добавьте поддержку для необходимых мне устройств, ссылаясь на исходный код linux для указателей. Проблема: исходный код нигде не найден, равно как и автор. Кроме того, кажется, что автор мог бы пойти другим путем, если бы он полностью оценил предыдущие усилия по переносу драйверов linux на OS X.
  • Попытка портировать драйверы linux на OS X способом, аналогичным проекту FreeBSD, который я связал. Проблема: это очень низкоуровневая работа, и работа на этом уровне не рекомендуется Apple, если ее можно избежать.
  • Напишите драйвер с OS X IOKit : это предпочтительный метод для реализации драйверов, но мне пришлось бы делать все с нуля, явно не маленькая работа.

Если бы я мог, я действительно хотел бы использовать исходный код Linux, но я не уверен, что такая вещь действительно жизнеспособна. У кого-нибудь есть какие-либо советы или идеи относительно лучшего способа выполнения этой задачи?

...