OScam Conax: настройка reader и dvbapi на сервере

Главная Статьи OScam Conax: настройка reader и dvbapi на сервере

Дата публикации

05.06.2026

OScam Conax: настройка reader и dvbapi на сервере

Если вы добрались до этой статьи, значит OScam уже поднят, но каналы с Conax не открываются — или вообще молчат, или в логе мелькает что-то непонятное. OScam conax настройка отличается от работы с Viaccess или Irdeto несколькими нюансами, которые почти нигде нормально не объяснены. Разберём всё по порядку: от структуры CAID до пошагового алгоритма отладки по rc-кодам.

Что такое Conax и как OScam с ним работает

Conax — система условного доступа (CAS) норвежского происхождения, которая до сих пор активно используется на спутниковых и кабельных платформах. OScam опознаёт её по диапазону CAID и обрабатывает ECM/EMM-запросы стандартным образом. Понять схему важно, иначе будете искать проблему не там.

CAID Conax и диапазон 0x0Bxx

Conax работает в диапазоне CAID 0x0B000x0BFF. Чаще всего встречаются 0B00 и 0B01, реже 0B02, 0B03. Конкретный CAID зависит от оператора и платформы.

Точный CAID вашей карты видно в web-интерфейсе OScam (раздел Readers) сразу после инициализации карты, либо в oscam.log при старте. Можно также прочитать его с ресивера в меню информации о канале. Не угадывайте — смотрите в лог.

Локальная карта (reader) против сетевого источника (cccam/newcamd)

OScam умеет получать CW двумя принципиально разными способами. Первый — физическая смарт-карта вставлена в карторидер (USB или встроенный sci-интерфейс приставки). Второй — сетевой reader, когда OScam подключается к удалённому серверу по протоколу newcamd или cccam и просит его расшифровать ECM.

Конфиги для этих двух случаев в oscam.server выглядят совершенно по-разному. В первом случае вы указываете физическое устройство и частоту карты. Во втором — хост, порт и учётные данные. Многие путают их и смешивают параметры — это первый источник ошибок.

Цепочка ECM/EMM: ресивер → dvbapi → reader

Схема прохождения запроса такая: ресивер (Enigma2 или другой) ловит зашифрованный поток → передаёт ECM-запрос в OScam через интерфейс dvbapi → OScam выбирает подходящий reader по CAID и group → reader отдаёт CW обратно → ресивер расшифровывает картинку.

Если цепочка рвётся на любом из этих этапов, каналы не откроются. Понимание этой схемы сразу подсказывает, где копать: нет ECM в логе — проблема в dvbapi или ресивере; ECM есть, но нет CW — проблема в reader или правах доступа.

Настройка секции reader в oscam.server

Файл /etc/oscam/oscam.server — главное место, где описываются все источники расшифровки. Каждый reader — отдельная секция [reader]. Покажу рабочие шаблоны с построчным объяснением.

Reader для локальной карты Conax (protocol = mp35/smartreader/internal)

Вот базовый шаблон для физической Conax-карты в USB-карторидере:

[reader]
label         = conax_local
protocol      = mp35
device        = /dev/ttyUSB0
caid          = 0B00
detect        = cd
mhz           = 357
cardmhz       = 357
group         = 1
emmcache      = 1,3,31
saveemm-u     = 1
blockemm-unknown = 1

Для встроенного sci-ридера на приставке (Dreambox, Vu+) device меняется на sci0 или sci1, а protocol — на internal. Для SmartReader Plus используйте protocol = smartreader.

Если карточка определяется, но не инициализируется — первым делом меняйте cardmhz. Пробуйте значения 368, 600, 500. Некоторые карты Conax работают только на нестандартной частоте.

Reader для сетевого источника (protocol = cccam / newcamd)

Если карты локально нет и вы используете сетевой источник, секция выглядит иначе. Пример для newcamd:

[reader]
label         = conax_net
protocol      = newcamd
device        = 192.168.1.100,15000
user          = myuser
password      = mypassword
key           = 0102030405060708091011121314
caid          = 0B00
group         = 1

Для протокола cccam секция проще — нет параметра key, но добавляется pincode если нужен. Хост и порт в device указываются через запятую без пробелов. Это не очевидно из документации, но OScam именно так парсит строку.

Ключевые параметры: caid, detect, mhz, group, services

Параметр detect = cd указывает OScam следить за состоянием контакта карты (card detect). Если поставить none, ридер будет считать карту вставленной всегда — иногда помогает при глючных карторидерах, но маскирует реальные проблемы.

mhz — тактовая частота самого карторидера (интерфейса), cardmhz — частота, на которой работает карта. Для большинства Conax-карт оба значения 357. Но SmartReader USB работает на mhz = 357, а cardmhz нужно подбирать отдельно. Разница между этими двумя параметрами — источник половины проблем с инициализацией.

Параметр group — это числовой идентификатор группы reader. Он должен совпадать с group в секции пользователя в oscam.user. Без совпадения пользователь не увидит этот reader.

Привязка CAID 0Bxx и ident

Можно указать несколько CAID через запятую: caid = 0B00,0B01. Это нужно если карта поддерживает несколько идентификаторов или вы не уверены в точном значении.

Параметр ident позволяет ограничить обработку до конкретного провайдера: ident = 0B00:000000. Если не указан, reader отвечает на все ECM с подходящим CAID. Для большинства домашних установок ident можно не трогать.

Если у вас несколько reader с одинаковым CAID (например, локальный и сетевой как резервный), управляйте fallback через параметр cccmaxhops и lb_weight. OScam сам выберет быстрейший по встроенному балансировщику нагрузки.

Настройка dvbapi для приёма на ресивере

dvbapi — это интерфейс, через который OScam общается с ресивером. Без правильно настроенного dvbapi ресивер не будет отправлять ECM-запросы в OScam, и ни один reader не поможет.

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

В файле /etc/oscam/oscam.conf добавьте или отредактируйте секцию:

[dvbapi]
enabled       = 1
au            = 1
pmt_mode      = 6
request_mode  = 1
listen_port   = 9000
user          = dvbapi_user

enabled = 1 — очевидно. au = 1 включает передачу EMM через dvbapi, что нужно для автообновления Conax-карты. pmt_mode = 6 — режим работы с PMT-таблицами; для Enigma2 это стандарт, не меняйте без причины.

request_mode = 1 означает, что OScam будет ждать ответа от reader перед следующим запросом. Это важно для Conax — карта иногда медленнее отвечает, чем другие CAS. При request_mode = 0 можно получить шторм ECM-запросов.

Файл oscam.dvbapi: приоритеты и игнор CAID

Файл /etc/oscam/oscam.dvbapi управляет тем, какую систему кодирования OScam выбирает первой, когда на транспондере их несколько. Это критично: если на спутнике одновременно идут Conax и Viaccess, OScam без подсказки может пойти не туда.

Пример файла с приоритетом для Conax:

P: 0B00:000000
P: 0B01:000000
I: 0500:000000
I: 1800:000000

Строки P: — приоритет (Priority), I: — игнор (Ignore). OScam попробует сначала CAID 0B00, потом 0B01, и не будет трогать Viaccess (0500) и Nagravision (1800). Без этого файла порядок непредсказуем, и часто выбирается не та система.

Формат строки: P: CAID:ProviderID. ProviderID 000000 означает «любой провайдер с этим CAID».

boxtype и pmt_mode для Enigma2

Параметр boxtype в секции [dvbapi] указывает тип приставки. Для большинства Enigma2-боксов (Dreambox DM900, Vu+ Ultimo, OpenATV) ставьте boxtype = dreambox или не указывайте вовсе — OScam определит автоматически.

Если ресивер на Android или нестандартной платформе — используйте boxtype = pc с listen_port. В этом случае ресивер подключается к OScam по TCP, а не через локальный socket.

Параметр user и привязка к oscam.user

Значение user в секции [dvbapi] — это имя пользователя из /etc/oscam/oscam.user, от имени которого dvbapi делает запросы. Этот пользователь должен существовать и иметь доступ к нужной группе reader.

Права доступа, EMM и автообновление (AU)

Без правильно настроенных прав пользователь (будь то dvbapi или сетевой клиент) просто не получит CW, даже если reader работает идеально. Conax также требует корректной настройки EMM — иначе подписка перестанет работать через несколько дней после последнего обновления ключей.

Секция oscam.user: au, group, caid

Минимальная рабочая секция пользователя в /etc/oscam/oscam.user:

[account]
user          = dvbapi_user
password      = secret
group         = 1
au            = conax_local
caid          = 0B00

group = 1 должен совпадать с group = 1 в reader. Если не совпадает — user не видит reader, и в логе будет not found даже при живой карте. Это самая частая ошибка при первичной настройке.

au = conax_local — метка reader, через который будут проходить EMM-пакеты для этого пользователя. Если AU не нужен — оставьте пустым или удалите строку.

Включение обработки EMM (saveemm, emmcache)

EMM (Entitlement Management Message) — это пакеты, через которые оператор обновляет права на карте. Для Conax это критически важно: без EMM карта через какое-то время «забудет» ключи и перестанет открывать каналы.

В секции [reader] включите:

emmcache       = 1,3,31
saveemm-u      = 1
saveemm-s      = 1
blockemm-unknown = 1

emmcache = 1,3,31 — кеш EMM: включён, до 3 попыток записи, 31 день хранения. saveemm-u и saveemm-s разрешают сохранение уникальных и общих EMM. blockemm-unknown = 1 блокирует неизвестные EMM — снижает нагрузку на карту без потери нужных пакетов.

Автообновление ключей и продление подписки на карте

Conax использует EMM как для обновления ключей дешифрования (периодически, раз в несколько часов/дней), так и для продления подписки (в зависимости от оператора). Без AU оба процесса не работают.

После включения AU в oscam.user и oscam.conf в логе должны появляться строки вида EMM write OK для вашего reader. Если их нет — проверьте, что au = 1 в секции [dvbapi] и что метка reader в au пользователя совпадает с label в oscam.server.

Карты с pairing (привязкой к конкретному ресиверу) — отдельная история. Такие карты выдают CW только при наличии корректного pairing-ключа. Если у вас именно такая карта, OScam нужно настроить с указанием pairing-данных, иначе CW будет приходить некорректным и картинки не будет.

Диагностика по логам и решение типовых ошибок

Хорошая новость: OScam логирует почти всё. Плохая — логи многословны и с непривычки сложно читаются. Вот что искать в первую очередь.

Чтение oscam.log: ecm, cw, rc-коды

Каждый ECM-запрос в логе заканчивается rc-кодом. Вот основные:

rc-код Значение Что делать
found CW получен успешно Всё работает
not found Reader не смог расшифровать Проверить права, CAID, group
timeout Reader не ответил вовремя Увеличить ctimeout, проверить cardmhz
key CW взят из SoftCam.Key Карта не используется
rejected Reader отклонил запрос Нет прав на канал / неверный ident
sleeping Reader отдыхает (sleep mode) Уменьшить inactivity таймаут

Для просмотра логов в реальном времени: tail -f /var/log/oscam/oscam.log | grep -i "ecm\|cw\|rc". Это даст поток только нужных строк без шума.

Ошибка 'card not found' / карта не инициализируется

Если в логе при старте нет строки с card system found для вашего reader — карта не инициализировалась. Причины по частоте:

  • Неверный cardmhz — попробуйте 357, 368, 600, 500 по очереди
  • Устройство /dev/ttyUSB0 занято другим процессом — проверьте lsof /dev/ttyUSB0
  • Нет прав на устройство — ls -la /dev/ttyUSB0 должен показывать группу dialout, пользователь oscam должен быть в этой группе
  • Неверный protocol для вашего карторидера

После перезагрузки приставки встроенный sci-ридер иногда не переинициализируется автоматически. Добавьте в конфиг reader параметр autorestart = 1 — OScam будет перезапускать reader при потере карты.

ECM есть, но CW не приходит (rejected, timeout)

timeout без других ошибок — скорее всего слишком медленная карта или неверный cardmhz. Добавьте в [reader] параметр ctimeout = 3500 (миллисекунды) и посмотрите, изменится ли ситуация.

rejected означает, что карта ответила, но ответ некорректный. Типичные причины: карта не имеет прав на данный канал (нет активной подписки), или это канал с pairing и карта не привязана к данному ресиверу.

Если ECM-запросы идут, но всегда уходят не в тот reader — смотрите настройку oscam.dvbapi. Возможно, на транспондере конфликт CAID и OScam выбирает не Conax, а другую систему.

Web-интерфейс (httpd) для мониторинга reader и статуса карты

OScam поставляется с встроенным web-интерфейсом. Включить его в oscam.conf:

[webif]
httpport      = 8888
httpuser      = admin
httppwd       = admin
httprefresh   = 10

После перезапуска открывайте http://адрес_устройства:8888. В разделе Readers видно статус каждой карты: card inserted, серийный номер, поддерживаемые CAID и провайдеры, счётчики ECM и EMM. Это на порядок удобнее, чем читать сырой лог.

В разделе ECM History видна история всех запросов с rc-кодами и временем ответа. Если reader стабильно отвечает за 200–400 мс — всё хорошо. Больше 1000 мс — что-то не так с частотой карты или физическим соединением.

На этом, собственно, OScam conax настройка в основных сценариях закрыта. Большинство проблем укладываются в пять-шесть причин, которые мы разобрали. Если что-то не работает после всех проверок — включайте loglevel = 7 в oscam.conf и читайте debug-вывод: там уже будет явно написано, что именно не нравится OScam.

Какой CAID указывать для Conax в oscam.server?

Conax использует диапазон 0x0Bxx — чаще всего это 0B00 или 0B01. Точный CAID вашей карты виден в oscam.log при старте ридера или в web-интерфейсе (httpd, порт 8888) в разделе Readers. В параметре caid можно указать несколько значений через запятую: caid = 0B00,0B01.

Какое значение mhz и cardmhz ставить для карты Conax?

Стандартные рабочие значения — mhz = 357 и cardmhz = 357. Если карта не инициализируется, перебирайте cardmhz: 368, 500, 600. Для SmartReader Plus значение cardmhz может отличаться от mhz — это нормально и зависит от конкретного ридера.

Почему OScam видит карту, но каналы Conax не открываются?

Проверьте по порядку: 1) приоритет CAID в oscam.dvbapi — Conax должен стоять первым если на транспондере несколько систем; 2) group в reader совпадает с group в oscam.user; 3) rc-код в логе — rejected означает проблему с правами на карте, timeout — проблему со скоростью. Активная подписка на карте — само собой разумеется.

Нужно ли включать AU (автообновление) для Conax?

Да, если карта продлевается через эфир по EMM — а большинство Conax-карт именно так и работают. Без AU подписка не продлевается и через некоторое время каналы перестанут открываться. В oscam.user задайте au = метка_reader, в oscam.conf в секции [dvbapi] поставьте au = 1.

Как настроить приём Conax по сети, а не с локальной картой?

Создайте reader с protocol = newcamd или protocol = cccam. Для newcamd укажите device = хост,порт, user, password и key (14-байтовый ключ). Для cccam — те же поля без key. Привяжите нужный CAID через caid = 0B00. Локальный карторидер при этом не нужен.

Как проверить, что карта Conax инициализировалась корректно?

В oscam.log при старте ищите строку с именем вашего reader и текстом card system found или card detected, там же будет серийный номер карты и список CAID. Удобнее смотреть через web-интерфейс (порт 8888) — раздел Readers покажет статус card inserted, подписки и счётчики в реальном времени.

О статье

  • Практические советы и инструкции
  • Материалы по спутниковому ТВ
  • Поддержка и помощь 24/7