Настройка oscam.dvbapi 2026: полное руководство

Если ты уже поднял OScam, прописал ридер и клиент, но каналы всё равно не дешифруются — скорее всего, проблема именно в oscam.dvbapi 2026. Файл маленький, но критически влияет на то, как демон взаимодействует с DVB-подсистемой ресивера. Здесь разберём каждый параметр с реальными примерами, а не абстрактными описаниями.

Что такое oscam.dvbapi и как он работает в 2026

dvbapi — это модуль внутри OScam, который отвечает за локальное дешифрование непосредственно на ресивере. Демон получает ECM-запросы от DVB-устройства, отправляет их на ридер (локальный или сетевой), получает CW и возвращает его обратно через DVB API ядра Linux. Без этого модуля OScam работает как обычный прокси-сервер, но не дешифрует ничего локально.

Файл oscam.dvbapi управляет приоритетами CAID, фильтрацией провайдеров и маппингом. Он не включает модуль — это делает oscam.conf. Файл dvbapi просто говорит модулю: какой CAID ставить в приоритет, какие игнорировать, где добавить задержку.

Назначение файла dvbapi и связь с модулем dvbapi OScam

Модуль dvbapi в OScam общается с ядром Linux через два механизма: сокет camd.socket (локальный режим) или сетевой TCP-порт 2000 (DVBAPI_NETWORK). Первый вариант — когда OScam крутится прямо на ресивере. Второй — когда ресивер посылает PMT/ECM по сети на внешнюю машину с OScam.

Файл oscam.dvbapi читается один раз при старте модуля. Изменения без перезапуска демона не применяются.

Где лежит файл: /etc/tuxbox/config/oscam/ и /var/keys/

Путь зависит от образа и от того, с каким параметром -c запущен демон. Стандартные расположения:

  • OpenATV, OpenPLi: /etc/tuxbox/config/oscam/oscam.dvbapi
  • VTI: /etc/tuxbox/config/oscam.dvbapi (без подпапки)
  • Ручная установка: определяется параметром ConfigDir — проверяй через ps aux | grep oscam, ищи ключ -c /путь/к/конфигам
  • Некоторые сборки: /var/keys/oscam.dvbapi

Если OScam стартует без -c, он ищет конфиги в /etc/oscam/. Проверить активный путь можно в веб-интерфейсе на порту 8888: раздел Files → dvbapi.

Поддерживаемые режимы: DVBAPI_3, DVBAPI_NETWORK, протокол PMT

OScam поддерживает три варианта работы dvbapi:

  • DVBAPI v3 — классический режим через /dev/dvb/adapterX, прямое взаимодействие с DVB-стеком. Работает на большинстве Enigma2-боксов.
  • DVBAPI_NETWORK — ресивер (с плагином типа OpenWebif-dvbapi или встроенной поддержкой) посылает PMT по TCP на порт 2000 внешнему OScam. Полезно, когда OScam на NAS или роутере.
  • PMT-протокол — передача таблиц Program Map Table напрямую, без camd.socket. Используется в комбинации с pmt_mode 6 на современных образах.

Включение dvbapi в oscam.conf

Без секции [dvbapi] с enabled = 1 в oscam.conf файл oscam.dvbapi просто игнорируется. Это первое, что нужно проверить при чёрном экране. Вот рабочий пример конфигурации:

[dvbapi]
enabled         = 1
au              = 1
pmt_mode        = 6
request_mode    = 1
boxtype         = dreambox
user            = localuser

Секция [dvbapi]: enabled, au, pmt_mode, request_mode

Параметр au (Auto Update) включает автообновление ключей EMM. Для большинства задач ставь 1. Параметр pmt_mode — самый важный и самый проблемный. Значения от 0 до 6:

  • 0 — читает PMT через camd.socket, классика для старых боксов
  • 1 — читает PMT через файлы в /tmp/pmts/
  • 2 — комбинированный: сокет + файлы
  • 3 — только через сокет, без файлов. Хорошо работает на старых Dreambox DM800
  • 4 — dvbapi v3, прямое чтение PMT с DVB-устройства
  • 5 — как 4, но с поддержкой нескольких адаптеров
  • 6 — рекомендуется для современных Enigma2 (OpenATV 7.x, OpenPLi 9.x). Использует netlink-сокет ядра.

Параметр request_mode: 0 — OScam сам опрашивает ридеры последовательно, 1 — параллельный запрос ко всем ридерам одновременно. При нескольких источниках ставь 1, иначе время ECM будет складываться.

Параметр boxtype: dreambox, dbox2, ipbox, qboxhd, pc

Значение boxtype определяет, как OScam взаимодействует с DVB-демоном ресивера. Для Enigma2-боксов (Vu+, Gigablue, Formuler, Edision и прочие) — всегда dreambox. Для PC с VDR или Kodi — pc. Неправильный boxtype — гарантированный чёрный экран, даже если всё остальное настроено верно.

Параметр user и привязка к ридеру

Параметр user указывает, какой пользователь из oscam.user используется для локального дешифрования. У этого пользователя должны быть прописаны нужные CAID в поле caid. Если поле пустое — пользователь имеет доступ ко всем CAID, что обычно нормально для локального дешифрования.

Синтаксис и приоритеты в файле oscam.dvbapi

Вот где большинство туториалов сдаются и пишут только про строки приоритета. Разберём все типы строк. Файл читается сверху вниз, первое совпадение побеждает — порядок имеет значение.

Строки P (priority), I (ignore), M (map), D (delay), L (length)

P — Priority. Устанавливает приоритет для CAID/провайдера/канала. OScam сначала попробует этот источник.

P: 0500:000000:0000:0000

I — Ignore. Полностью исключает CAID или конкретный ECMPID из обработки. Полезно для каналов с фейковыми ECMPID, которые заставляют OScam тратить время на бесполезные запросы.

I: 0100:000000:0000:0000

M — Map. Перекидывает CAID на другой. Например, если канал вещается с CAID 0x1234, а у тебя карта/линия на 0x0500 — можно замапить.

M: 1234:000000:0000:0000:0500:000000

D — Delay. Добавляет задержку в миллисекундах перед отправкой ECM. Нужно для каналов, которые быстро меняют ECMPID — без задержки OScam успевает отправить запрос на уже неактуальный PID.

D: 0500:000000:1234:0000:500

L — Length. Задаёт длину ECM для конкретного CAID. Используется редко, в основном для нестандартных карт.

L: 0500:000000:0000:0000:272

Формат CAID:ProviderID:SID:ECMPID

Каждая строка использует формат:

[тип]: CAID:ProviderID:SID:ECMPID

Все значения в hex. Нули означают wildcard — подходит любое значение. Примеры масок:

  • 0500:000000:0000:0000 — все каналы с CAID 0500, любой провайдер
  • 0500:020000:0000:0000 — CAID 0500, только провайдер 020000
  • 0500:020000:1234:0000 — конкретный канал SID 0x1234 у провайдера
  • 0500:020000:1234:0200 — конкретный ECMPID 0x0200 на конкретном канале

Примеры приоритета нужного CAID для конкретного канала

Допустим, транспондер несёт каналы с двумя CAID: 0x0500 (Viaccess) и 0x1800 (Nagravision). У тебя работает только линия на Viaccess. Без файла dvbapi OScam может попробовать Nagravision первым и потерять время. Решение:

# Приоритет Viaccess над Nagravision для всех каналов
P: 0500:000000:0000:0000
I: 1800:000000:0000:0000

# Для конкретного канала (SID 0x1A2B) — другой провайдер Viaccess
P: 0500:030000:1A2B:0000

Если на транспондере несколько провайдеров с одним CAID, и у тебя разные линии с разным качеством — прописывай конкретные ProviderID в порядке предпочтения:

P: 0500:020000:0000:0000
P: 0500:030000:0000:0000
P: 0500:000000:0000:0000

Первая строка — провайдер 020000 в приоритете. Если не сработает — попробует 030000. Последняя строка — фолбэк для всех остальных провайдеров с этим CAID.

Готовый шаблон файла oscam.dvbapi для типичной Enigma2-установки:

# Игнорировать фейковые CAID
I: 0000:000000:0000:0000

# Приоритет основного CAID
P: 0500:000000:0000:0000

# Задержка для каналов с быстрой сменой ECMPID
D: 0500:020000:0000:0000:300

# Игнорировать конкретный ECMPID, который всегда возвращает ошибку
I: 0500:020000:1234:01FF

Диагностика и устранение ошибок dvbapi

Чёрный экран после настройки — это нормальная часть процесса. Не паника, а методичная диагностика.

Чтение oscam.log и веб-интерфейса (порт 8888)

Первым делом открывай веб-интерфейс OScam: http://[IP_ресивера]:8888. Переходи в раздел Clients — ищи клиент с типом dvbapi. Если его нет, модуль не запустился.

В oscam.log (обычно /tmp/oscam.log или там же, где конфиги) ищи строки:

dvbapi: found /dev/dvb/adapter0/demux0
dvbapi: pmt_mode 6 active

Если видишь dvbapi: disabledenabled=1 в oscam.conf не стоит. Если вообще нет упоминания dvbapi при старте — OScam собран без поддержки модуля (такое бывает с некоторыми бинарями).

Ошибки: 'no stream found', 'cw not found', 'fatal error'

no stream found — OScam не видит DVB-адаптер. Проверь, что /dev/dvb/adapter0 существует: ls /dev/dvb/. Проверь права: ls -la /dev/dvb/adapter0/ — пользователь, под которым крутится OScam, должен иметь доступ к demux0 и dvr0.

cw not found — ECM-запрос дошёл до ридера, но ответа нет. Или CAID не поддерживается твоей линией, или линия упала. Смотри статус ридеров в веб-интерфейсе.

Конфликт с другим softcam — если на ресивере одновременно запущен CCcam или MGcamd, они могут захватить camd.socket первыми. OScam не получит PMT. Останавливай все другие softcam перед запуском OScam.

Несколько тюнеров — при наличии двух и более тюнеров (adapter0, adapter1) OScam должен обрабатывать DVB-устройства для каждого. В веб-интерфейсе раздел Services → DVB API покажет, сколько адаптеров захвачено. Если нужен маппинг конкретных адаптеров — используй параметр boxtype и проверяй mtab-маппинг через cat /proc/mounts.

Проверка через oscam status и dvbapi log level

Для детального лога dvbapi повысь уровень логирования в oscam.conf:

[global]
logfile         = /tmp/oscam.log
maxlogsize      = 512
loglevel        = 64

Значение 64 — это маска для dvbapi-событий. После перезапуска лог станет многословным, но ты увидишь каждый PMT-запрос, каждый ECM и каждый CW-ответ. Не держи loglevel=64 постоянно — лог растёт быстро.

Перезапуск демона:

# Enigma2 через init.d
/etc/init.d/oscam restart

# Если собрано с systemd
systemctl restart oscam

# Или убить и запустить вручную
killall oscam && sleep 2 && oscam -c /etc/tuxbox/config/oscam -b

После перезапуска переключи канал в Enigma2 — это заставит плеер заново отправить PMT в OScam.

Как выбрать источник линий для стабильного дешифрования

Настройка oscam.dvbapi 2026 сама по себе ничего не даст, если источник линий нестабилен. Качество источника видно прямо в логе OScam — никакие маркетинговые обещания не нужны.

Критерии оценки качества источника без привязки к именам

Смотри на время ECM в логе. Строка выглядит примерно так:

2026/06/10 14:23:01 c (ecm) [user] Succeeded (ecmtime=180ms)

Хорошее время ECM — до 300 мс. Нормальное — 300–800 мс, зрители иногда замечают небольшие фризы при переключении. Больше 1000 мс — проблема, и каналы с быстрым обновлением CW (каждые 10 секунд) начнут фризить постоянно.

Стабильность аптайма, время отклика ECM, поддержка нужных CAID

Аптайм ридера виден в веб-интерфейсе OScam: раздел Readers, колонка Connected. Если ридер переподключается чаще раза в сутки — источник нестабильный.

Поддержка нужного CAID — проверяй сразу при тесте. В разделе Readers → Info видны CAID, которые сервер отдаёт. Если нужного CAID нет в списке — источник для твоего пакета не подходит, сколько бы каналов он ни заявлял.

Хороший источник также показывает минимальный разброс времени ECM. Если среднее 200 мс, но иногда прыгает до 3000 мс — это признак перегруженного сервера или нестабильного апстрима.

Признаки ненадёжного источника

В логе OScam это выглядит так: cw not found на каналах, которые должны работать. Или reader disconnected с последующим reader reconnected каждые несколько минут.

Ещё признак — хаотичные времена ECM: 100 мс, потом 2500 мс, потом 80 мс, потом таймаут. Это говорит о проблемах на стороне сервера: очереди, перегрузка, нестабильная карта.

Фризы каждые 10–30 секунд при стабильном подключении к серверу — скорее всего, сервер не успевает обновлять CW вовремя. Проверяй ecmtime в логе на момент фриза.

Где находится файл oscam.dvbapi на ресивере?

Зависит от образа и параметра запуска демона. На OpenATV и OpenPLi — обычно /etc/tuxbox/config/oscam/oscam.dvbapi. На VTI — /etc/tuxbox/config/oscam.dvbapi. Некоторые сборки используют /var/keys/oscam.dvbapi. Чтобы найти точный путь, выполни ps aux | grep oscam и посмотри на параметр -c — это и есть директория конфигов. Если параметра нет, OScam ищет в /etc/oscam/.

Почему OScam не дешифрует каналы после настройки dvbapi?

Чаще всего одна из этих причин: нет enabled = 1 в секции [dvbapi] файла oscam.conf, неправильный boxtype (для Enigma2 должен быть dreambox), неверный pmt_mode, или параллельно запущен другой softcam (CCcam, MGcamd), который захватил camd.socket. Также проверь в логе, что CAID канала совпадает с тем, что поддерживает твоя линия. Перезапусти демон и переключи канал после перезапуска.

Чем отличается локальный dvbapi от сетевого режима?

Локальный режим — OScam работает прямо на ресивере и взаимодействует с DVB-стеком через camd.socket или прямое обращение к /dev/dvb/. Сетевой режим (DVBAPI_NETWORK) — ресивер посылает PMT и ECM по TCP на порт 2000 на внешнюю машину, где крутится OScam. Локальный режим быстрее и проще, сетевой нужен когда OScam физически на другом устройстве (NAS, роутер, сервер).

Как задать приоритет нужного CAID для конкретного канала?

Используй строку P: в файле oscam.dvbapi. Формат: P: CAID:ProviderID:SID:ECMPID, всё в hex, нули = wildcard. Пример: P: 0500:020000:1A2B:0000 — приоритет CAID 0500, провайдер 020000, канал SID 0x1A2B. Строки читаются сверху вниз, первое совпадение побеждает. Ставь более специфичные правила выше общих.

Какой pmt_mode выбрать в 2026?

Для современных образов Enigma2 (OpenATV 7.x, OpenPLi 9.x, VTI 14+) начинай с pmt_mode = 6 — он использует netlink и лучше работает с новыми ядрами. Если не работает, пробуй pmt_mode = 4. Для старых Dreambox DM800/DM7025 — pmt_mode = 3. Определять рабочее значение лучше по логу: после запуска с loglevel = 64 должна появиться строка с активным pmt_mode и найденными адаптерами.

Нужно ли перезапускать OScam после правки oscam.dvbapi?

Да. Файл oscam.dvbapi читается только при старте модуля dvbapi. Правки без перезапуска не применяются. Перезапусти через /etc/init.d/oscam restart или systemctl restart oscam, затем переключи канал в плеере — это заставит ресивер заново отправить PMT и начать новую сессию дешифрования с обновлёнными настройками.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.