Настройка OScam для Seca и Mediaguard: гайд 2026

Главная Статьи Настройка OScam для Seca и Mediaguard: гайд 2026

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

08.06.2026

Настройка OScam для Seca и Mediaguard: гайд 2026

Если вы гуглите "OScam seca mediaguard" — скорее всего, у вас та же история: ресивер подключён, OScam запущен, карта вставлена, но каналы молчат. ECM-запросы либо зависают с таймаутом, либо возвращают "not found", и непонятно, в каком именно месте конфига что-то сломалось. Эта статья разберёт конкретные параметры, конкретные файлы и реальные строки лога — без воды.

Что такое Seca и Mediaguard в контексте OScam

Начнём с того, что путает почти всех. Mediaguard — это торговое название системы условного доступа Seca (Security for Cable and terrestrial). Технически это одна и та же система. В OScam она проходит под семейством CAID 0100. Mediaguard 2 и Mediaguard 3 — это версии одного стандарта, и оба работают в том же диапазоне.

Отсюда первое правило: если вы ищете Mediaguard в настройках и не находите — ищите 0100. Именно это значение нужно прописывать в caid по всему конфигу.

Различие CAID: Seca (0100) и Mediaguard 2/3

Seca 1 использует CAID 0100, Mediaguard 2 — тоже 0100, Mediaguard 3 — аналогично. Разница между поколениями в основном в механизме шифрования и в том, что MG3 использует rotating CHID (Channel ID), из-за чего нужна дополнительная фильтрация. Но с точки зрения OScam — это всегда 0100.

Конкретный оператор внутри этого семейства идентифицируется по provider ID (provid). Например, один спутниковый пакет может иметь provid 000000, другой — 00C000. Без знания нужного provid фильтрация ECM не работает совсем.

Как OScam идентифицирует систему по CAID и provider ID

OScam работает с тройкой caid:provid:srvid. CAID — система шифрования, provid — оператор внутри системы, srvid — конкретный канал. Когда ресивер отправляет ECM-запрос, OScam проверяет эту тройку и решает, какой ридер использовать и разрешён ли доступ конкретному пользователю.

Если в конфиге указан только caid = 0100 без provid — OScam попробует отдать ECM любому ридеру с этим CAID. Это может сработать, а может привести к конфликту, если у вас несколько ридеров от разных операторов с одинаковым CAID 0100.

Где смотреть CAID и provid вашей карты или линии

Открываете веб-интерфейс OScam — по умолчанию это http://[ip-адрес]:8888. Переходите в раздел Readers, кликаете на нужный ридер, смотрите вкладку Entitlements. Там будут реальные значения CAID и provid, которые карта сообщила OScam при инициализации.

Именно эти значения нужно вставлять в ident. Не угадывать, не брать из интернета — смотреть в Entitlements своей конкретной карты. Provider ID у разных операторов с Seca разный.

Базовая настройка oscam.conf и веб-интерфейса

Файлы конфигурации OScam лежат в разных местах в зависимости от прошивки и способа установки. На Enigma2-боксах чаще всего это /etc/tuxbox/config/oscam/ или /var/etc/oscam/. На роутерах с OpenWrt — обычно /etc/oscam/. Если сомневаетесь — запустите ps aux | grep oscam и посмотрите на параметр -c в строке запуска.

Секция [global] и включение нужных протоколов

Минимальный рабочий [global] для Seca выглядит так:

[global]
logfile                = /tmp/oscam.log
loghistorysize         = 1024
maxlogsize             = 10000
nice                   = -1
WaitForCards           = 1
preferlocalcards       = 1
lb_mode                = 1
lb_save                = 300
ctimeout               = 3000

WaitForCards = 1 держит OScam запущенным, пока карта не инициализируется — без этого при медленном старте системы OScam может подняться раньше ридера и не увидеть карту. preferlocalcards = 1 говорит использовать локальную карту в первую очередь, только потом идти в сеть.

Секция [webif] и httpport для диагностики

Без веб-интерфейса диагностировать Seca/Mediaguard очень неудобно. Минимальная секция:

[webif]
httpport               = 8888
httpuser               = admin
httppwd                = yourpassword
httprefresh            = 10
httphideidleclients    = 0

Порт 8888 — стандартный. Если он занят или заблокирован — меняйте на любой свободный выше 1024. После изменения не забудьте рестартовать OScam командой killall -HUP oscam или через кнопку Restart в самом веб-интерфейсе.

Логирование: logfile и cachesize для отладки ECM

Без нормального лога вы слепой. Параметр logfile = /tmp/oscam.log пишет всё в файл. loghistorysize = 1024 хранит последние 1024 строки в памяти — они же отображаются в веб-интерфейсе на вкладке Logs.

Установите уровень логирования через oscam.conf или прямо в веб-интерфейсе: Server → Edit → Log Level. Для диагностики Seca ставьте уровень ECM или All временно — потом убирайте, чтобы не забивать диск.

Настройка oscam.server для Seca/Mediaguard

Файл oscam.server — это там, где описываются все источники ключей: локальные карты и удалённые линии. Именно здесь чаще всего ломается работа с OScam seca mediaguard, потому что параметров много и каждый влияет на результат.

Локальный ридер карты (device, caid = 0100)

Пример блока для локальной Seca-карты в USB-картридере:

[reader]
label                  = seca_local
protocol               = mp35
device                 = /dev/ttyUSB0
caid                   = 0100
detect                 = cd
mhz                    = 357
cardmhz                = 600
group                  = 1
ident                  = 0100:000000,0100:00C000

Если карта вставлена во внутренний слот ресивера — протокол меняется на internal, а device будет что-то вроде /dev/sci0 или /dev/sci1. Для PCIe-ридеров типа smargo — протокол smartreader.

Параметр detect, mhz и cardmhz для медленных Seca-карт

Вот что реально мало где описано. Seca-карты бывают капризными по частоте. Если карта не инициализируется или ATR не читается — проблема почти всегда в этих двух параметрах.

mhz — частота, на которой работает физический ридер (в единицах 10 кГц, то есть 357 = 3,57 МГц). cardmhz — частота, на которой OScam пытается общаться с картой. Стандарт ISO 7816 предполагает 3,57 МГц, но некоторые Seca-карты нормально работают только на 6,00 МГц (cardmhz = 600).

Если видите в логе card init failed или ATR not received — пробуйте комбинации:

  • mhz = 357, cardmhz = 357
  • mhz = 357, cardmhz = 600
  • mhz = 600, cardmhz = 600
  • mhz = 357, cardmhz = 368

Параметр detect управляет тем, как OScam определяет наличие карты. Значение cd (Carrier Detect) работает для большинства USB-ридеров. Для некоторых нужно rts. Если OScam не видит карту вообще — попробуйте поменять detect.

Шаринг по протоколу cccam/newcamd: указание CAID 0100

Для удалённой линии через CCcam:

[reader]
label                  = remote_seca_cccam
protocol               = cccam
device                 = server.example.com,12000
user                   = mylogin
password               = mypassword
caid                   = 0100
ident                  = 0100:000000
group                  = 2
cccversion             = 2.3.0
ccckeepalive           = 1

Для newcamd-линии структура похожая, только протокол newcamd и добавляется key (DES-ключ, 14 байт в hex). Порт обычно в диапазоне 10000–15000, уточняйте у источника линии.

ident и блокировка/разрешение конкретных provider ID

Параметр ident — критически важный для Seca. Формат: caid:provid, несколько через запятую. Если не указать ident вообще — ридер будет пытаться ответить на любой ECM с CAID 0100, включая запросы от операторов, которых в подписке нет. Это засоряет лог ошибками и замедляет работу.

Если у вас карта одного оператора, а линия даёт доступ к другому — укажите нужные provid явно. Смотреть правильные значения — в Entitlements веб-интерфейса после инициализации карты.

Настройка прав в oscam.user и фильтрация ECM

Вот классическая ловушка: ридер настроен, карта инициализировалась, в логе видно что OScam получил ATR и прочитал Entitlements — но каналы всё равно не открываются. Почти всегда виноват файл oscam.user.

Параметр caid и ident на уровне пользователя

Каждый клиент, который подключается к вашему OScam (будь то ваш же ресивер или внешний пользователь), описывается в oscam.user. И там тоже нужно разрешить CAID и provid:

[account]
user                   = client1
pwd                    = password123
caid                   = 0100
ident                  = 0100:000000,0100:00C000
group                  = 1
au                     = 1

Если caid в [account] не указан или указан другой — OScam отклонит ECM-запрос по Seca ещё до того, как он дойдёт до ридера. Это именно то, почему "ридер работает, а каналы не открываются".

chid и srvid: тонкая фильтрация каналов Mediaguard

Для Mediaguard 3 с rotating CHID ситуация сложнее. MG3 периодически меняет Channel ID для защиты от несанкционированного доступа. Если вы используете жёсткую фильтрацию по chid в oscam.services, каналы будут "отваливаться" после смены CHID.

Решение: либо не фиксировать chid вообще, либо настроить обновление через AU (Auto Update) с параметром au = 1 у пользователя. Параметр srvid в oscam.services позволяет разрешить или запретить конкретные каналы по их ID — удобно, если нужно отдавать только часть пакета.

group для связки reader и user

Параметр group — это мост между ридерами и пользователями. Ридер с group = 1 обслуживает только пользователей с group = 1. Если группы не совпадают — пользователь не получит ECM от этого ридера, даже если CAID и ident настроены правильно.

При нескольких ридерах (локальная карта в group 1, удалённая линия в group 2) можно дать пользователю обе группы: group = 1,2. OScam будет опрашивать оба источника согласно настройкам load balancing.

Диагностика и устранение проблем с Seca/Mediaguard

Чтение лога OScam — это навык. После того как вы его поймёте, большинство проблем с OScam seca mediaguard диагностируются за минуту. Открываете /tmp/oscam.log или вкладку Logs в веб-интерфейсе и смотрите на строки ECM.

Чтение лога: ECM, found/not found, таймауты

Типичные строки лога и что они означают:

2026/03/15 14:22:01 client1 (0100&000000:1234): ECM seca - found (129 ms) by seca_local

Это хорошо. ECM получен, ключ найден за 129 мс, ридер seca_local ответил.

2026/03/15 14:22:05 client1 (0100&000000:1234): ECM seca - not found (382 ms)

"Not found" — ридер ответил, но ключа нет. Чаще всего это значит, что подписка карты не включает этот provid или канал. Проверяйте Entitlements карты — если нужного provid там нет, карта не покрывает этот пакет и никакая настройка не поможет.

2026/03/15 14:22:10 client1 (0100&000000:1234): ECM seca - timeout (3000 ms)

Таймаут — ридер не успел ответить за отведённое время. Это сетевая задержка (для удалённых линий), перегруженный сервер или слишком низкий ctimeout.

Ошибка 'card init failed' и неверный ATR

Если в логе видите:

card init failed, ATR not received

или

ATR: not supported

— карта физически не отвечает на частоте ридера. Первое действие: менять cardmhz. Попробуйте 357, 368, 600 по очереди. Второе — проверить физику: кабель ридера, состояние контактов карты, попробовать другой USB-порт.

Также бывает, что detect = cd не работает с конкретным ридером. Попробуйте detect = rts или даже detect = dsr. Это не связано с частотой, но влияет на то, увидит ли OScam карту вообще.

Проблема дублирующихся CAID и приоритет ридеров (lb_priority)

Типичная ситуация на смешанном сервере: есть локальная Seca-карта (group 1) и удалённая CCcam-линия, которая тоже даёт CAID 0100 (group 2), но от другого оператора с другим provid. OScam получает ECM и не знает, к кому идти первым.

Решается через load balancing. В [global] ставите lb_mode = 1 — OScam учитывает время ответа и сам выбирает лучший ридер. Параметр lb_priority позволяет задать принудительный приоритет через oscam.services или caidvaluetab в oscam.conf.

Пример caidvaluetab для принудительного приоритета локальной карты по CAID 0100:

[global]
caidvaluetab           = 0100:10

Чем выше значение — тем выше приоритет. Локальная карта получает 10, удалённая линия по умолчанию имеет 0.

Таймауты ECM и параметр ctimeout

По умолчанию ctimeout = 500 мс. Для локальных карт этого достаточно. Для удалённых линий, особенно если сервер находится в другой стране — нет. Пинг 80–120 мс плюс время обработки на сервере = уже за гранью 500 мс.

Поднимайте ctimeout до 3000–5000 мс для удалённых источников. Это не замедляет переключение каналов при рабочей линии — OScam отвечает сразу после получения ключа, таймаут только верхняя граница ожидания.

При нескольких источниках с одинаковым CAID 0100 включайте lb_mode = 1 — это автоматически переключает на более быстрый ридер при таймаутах, снижая фризы на каналах.

Сложные случаи, которые обычно не описывают

Карта Seca с несколькими provider ID — частый источник путаницы. Карта может иметь Entitlements для четырёх provid, а подписка активна только на два из них. OScam попытается использовать карту для всех четырёх и будет получать "not found" по двум из них. В логах это выглядит как периодические ошибки, хотя в целом всё "работает". Решение: прописывать в ident только те provid, которые реально оплачены.

Ресивер с двумя слотами — отдельная история. OScam при старте иногда путает /dev/sci0 и /dev/sci1, особенно если карты вставляются в разное время. Явно прописывайте device в каждом блоке [reader] и не надейтесь на автоопределение. Параметр detect здесь тоже критичен — при неверном значении OScam может считать, что карта не вставлена, даже если она физически есть.

Конфликт двух ридеров с одинаковым CAID 0100 от разных операторов в одном профиле решается через oscam.services: создаёте отдельный сервис для каждого оператора с нужным srvid и привязываете к конкретному ридеру через группы.

Частые вопросы

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

Карта инициализировалась (ATR прочитан, Entitlements видны), но в oscam.user не разрешён caid = 0100 или нужный provider ID. Откройте веб-интерфейс, перейдите в Readers → Entitlements — посмотрите, какие provid реально выдаёт карта. Потом сравните с тем, что прописано в секции [account] файла oscam.user. Скорее всего, они не совпадают.

Какой CAID использовать для Mediaguard в OScam?

Mediaguard — это система Seca, семейство CAID 0100. Mediaguard 2 и Mediaguard 3 оба используют этот диапазон. Конкретный provider ID зависит от оператора — смотрите на вкладке Readers → Entitlements после инициализации карты. Не берите provid из интернета — у разных операторов они разные.

Что делать при ошибке 'card init failed' с Seca-картой?

В 90% случаев — неверная частота. Пробуйте последовательно: cardmhz = 600, потом 368, потом 357. Также проверьте detect = cd или rts в зависимости от типа ридера. Если ничего не помогает — проблема физическая: плохой контакт, повреждённый кабель ридера или неисправный USB-конвертер.

Почему ECM по Seca возвращает timeout, хотя линия рабочая?

Сетевая задержка превышает значение ctimeout. Поднимите ctimeout в [global] до 3000–5000 мс. Проверьте пинг до сервера — если больше 200 мс, таймауты будут постоянными. При нескольких источниках с CAID 0100 включите lb_mode = 1, чтобы OScam автоматически переключался на более быстрый ридер.

Как настроить приоритет, если несколько ридеров отдают CAID 0100?

Используйте load balancing: lb_mode = 1 в [global] и caidvaluetab = 0100:10 для повышения приоритета нужного ридера. Если нужна жёсткая привязка — создайте отдельные сервисы в oscam.services с явным указанием ридера через параметр группы. Это снижает фризы и правильно распределяет ECM между источниками.

Где находятся файлы конфигурации OScam?

Зависит от прошивки и способа установки. Enigma2: чаще всего /etc/tuxbox/config/oscam/ или /var/etc/oscam/. OpenWrt: /etc/oscam/. Чтобы узнать точно — запустите ps aux | grep oscam и найдите параметр -c в строке процесса. Там будет абсолютный путь к директории с конфигами.

О статье

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