OScam: настройка AU (автообновление ключей)

Главная Статьи OScam: настройка AU (автообновление ключей)

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

04.06.2026

OScam: настройка AU (автообновление ключей)

Если базовое расшифрование у тебя уже работает, а ключи обновляются только вручную — скорее всего, проблема в конфигурации AU. OScam au автообновление — одна из тех вещей, которые выглядят просто на бумаге, но ломаются на десяти разных уровнях. Разберём по порядку: что это вообще такое, как настроить и почему может не работать.

Что такое AU (автообновление) в OScam и зачем оно нужно

AU — это обработка EMM-пакетов (Entitlement Management Messages), которые провайдер шлёт в потоке для обновления прав на смарткарте или ридере. Без AU карта рано или поздно теряет актуальные ключи, и расшифрование останавливается. С AU — карта «слушает» поток и обновляется сама.

Разница между ECM и EMM

ECM (Entitlement Control Message) — это короткие пакеты, которые несут зашифрованный control word для расшифровки конкретного канала прямо сейчас. OScam обрабатывает их постоянно, это и есть кардшаринг в чистом виде.

EMM — другое. Эти пакеты обновляют права и ключи непосредственно на карте. Они приходят реже, адресованы конкретной карте (по её серийному номеру или группе) и должны быть записаны в EEPROM. Если ECM не работает — нет картинки. Если EMM не работают — ключи устаревают через какое-то время.

Local AU против Network AU

Local AU — карта физически вставлена в ридер на твоей машине (PCSC, smartreader, internal в ресивере). OScam сам тянет EMM из потока и пишет их в карту. Это надёжный и прямой способ.

Network AU — EMM передаются клиенту по сети через протокол (newcamd, cccam). Сервер, у которого есть физическая карта, получает EMM и перенаправляет их клиенту. Работает хуже: не все протоколы передают EMM корректно, многие серверы их фильтруют.

Когда AU вообще не требуется

При работе через CCcam-пиринг как клиент — AU тебе не нужен. Физическая карта находится у сервера, он её и обновляет. Твоя задача — получить расшифрованный control word по ECM. Включать AU на клиентской стороне, где карты нет, бессмысленно и только создаёт путаницу в логах.

Настройка AU в oscam.server (reader)

Вся конфигурация ридера живёт в /etc/oscam/oscam.server или /var/etc/oscam.server в зависимости от дистрибутива. Именно здесь включается AU для конкретной карты.

Параметр auprovid и caid

В секции [reader] параметр auprovid задаёт идентификатор провайдера, EMM которого нужно обрабатывать. Без него OScam может не понять, чьи именно EMM принимать. caid — тип условного доступа карты (например, 0x0500 для Viaccess, 0x0100 для Seca, 0x1800 для Nagravision).

Значения caid и provid смотри в логе при старте OScam — там при инициализации ридера выводится полная информация о карте. Либо открой webif на порту 8888, перейди в раздел Readers и кликни на конкретный ридер.

Флаг disableserverfilter и EMM-фильтры

Параметры blockemm-u, blockemm-s, blockemm-g, blockemm-unknown блокируют соответствующие типы EMM (unique, shared, global, unknown). По умолчанию в некоторых сборках они включены — и это первая причина, почему AU не работает у большинства. Проверь явно.

disableserverfilter = 1 отключает фильтрацию EMM по серверным правилам. Иногда это помогает, когда EMM доходят до OScam, но фильтруются раньше записи в карту.

saveemm-unknown и логирование EMM

saveemm-unknown = 1 сохраняет EMM неизвестного типа в файл для последующего анализа. Используй это при диагностике — сможешь посмотреть, что вообще приходит. Файл создаётся рядом с конфигом или по пути из savedir.

Пример секции [reader] для локальной карты

[reader]
label         = mycard
protocol      = pcsc
device        = 0
caid          = 0x0500
auprovid      = 040E00
ident         = 0500:040E00
group         = 1
emmcache      = 1,3,15
blockemm-u    = 0
blockemm-s    = 0
blockemm-g    = 0
blockemm-unknown = 0
saveemm-unknown  = 0
autospeed     = 1

Для internal-ридера в ресивере (OpenPLi, OpenATV) protocol = internal, а device обычно /dev/sci0 или /dev/sci1. После обновления прошивки ресивера этот путь может сброситься — проверь обязательно, особенно если AU внезапно перестал работать после апдейта.

Счётчики ee_emm, ge_emm, gg_emm в статусе ридера показывают количество обработанных EMM типов unique/shared/global. Если все три нули при живом потоке — EMM не доходят или блокируются.

Включение AU для сетевых клиентов (oscam.user)

Если карта на сервере и нужно передавать EMM сетевому клиенту, настройка делается в /etc/oscam/oscam.user.

Параметр au в секции [account]

В секции [account] параметр au указывает, через какой ридер клиент получает AU. Имя ридера должно точно совпадать с label в oscam.server.

[account]
user     = clientuser
pwd      = clientpass
group    = 1,2
au       = mycard
caid     = 0500

au = 1 против au = имя_ридера

au = 1 означает «использовать любой подходящий ридер автоматически». Удобно, но непредсказуемо при нескольких ридерах с одинаковым caid. Лучше указывать конкретное имя — так меньше неожиданностей и проще диагностировать.

Кстати, если у тебя два ридера с одним caid, и AU включён на обоих — могут возникнуть конфликты: одна и та же EMM записывается дважды или ридеры мешают друг другу. OScam это не всегда обрабатывает чисто. Лучше назначить AU только одному ридеру на каждый caid.

Протоколы newcamd/cccam и передача EMM

Newcamd умеет передавать EMM клиенту — это его сильная сторона. CCcam с EMM работает хуже: протокол изначально не проектировался под передачу обновлений, и многие реализации их попросту дропают. Если нужен надёжный network AU — смотри в сторону newcamd или cs378x (camd35 over TCP).

Ещё момент: даже если протокол поддерживает EMM, сервер должен их не фильтровать на своей стороне. Часто именно серверная фильтрация — причина, почему OScam au автообновление не работает у клиентов при внешне корректной конфигурации.

Диагностика: почему AU не работает

Начни с webif. Открой браузер, зайди на http://<ip-сервера>:8888 (порт задаётся параметром httpport в oscam.conf, по умолчанию 8888). Перейди в Readers — там увидишь колонки EMM: written, skipped, blocked, error.

Проверка через веб-интерфейс (порт 8888) и счётчики EMM

Если written = 0 при ненулевом skipped или blocked — EMM до карты не доходят. Если все нули — EMM вообще не принимаются. Если error растёт — карта получает EMM, но отклоняет их.

Это три совершенно разные ситуации с разными причинами. Не путай их.

Чтение oscam.log: written/skipped/blocked EMM

Включи детальное логирование. В /etc/oscam/oscam.conf:

[global]
logfile   = /var/log/oscam/oscam.log
loglevel  = 64

loglevel = 64 включает EMM-отладку. После перезапуска:

tail -f /var/log/oscam/oscam.log | grep -i emm

Смотри, что пишет лог: приходят ли EMM, фильтруются ли, какой тип (U/S/G), принимает ли их карта.

Проблема с EMM-фильтрами и blockemm

Самая частая причина нулевого written — выставлены blockemm-u = 1 или blockemm-s = 1. OScam просто выбрасывает входящие EMM до попытки записи в карту. Проверь все четыре параметра: blockemm-u, blockemm-s, blockemm-g, blockemm-unknown. Все должны быть = 0 при включённом AU.

Ещё вариант — неверный caid или auprovid. EMM фильтруются по этим значениям: если не совпадают с тем, что пишет карта при инициализации — они будут отброшены как «не для этой карты».

Права карты и срок действия подписки

Бывает и такое: EMM приходят, OScam их принимает, карта получает — но отклоняет. Счётчик error в webif растёт. Это либо истёкшая подписка (карта знает, что её права закончились, и не принимает обновления), либо неверный boxkey — ключ ридера, который нужен некоторым системам (Nagravision, например) для работы с картой.

Boxkey проверь особо тщательно. Если он указан неверно, карта будет отклонять EMM без каких-либо внятных сообщений об ошибке. Нужное значение — в документации к конкретной системе условного доступа или в логе при корректной инициализации карты.

Тонкая настройка и оптимизация AU

Когда AU заработал — не расслабляйся. Агрессивная запись EMM реально изнашивает EEPROM карты. У большинства карт ресурс записи ячеек памяти ограничен. Это не теория — это реальная проблема при OScam au автообновление без ограничений.

emmcache для снижения нагрузки на карту

Параметр emmcache в oscam.conf контролирует кэширование обработанных EMM. Формат: caid,count,time,type.

[global]
emmcache = 1,3,15

Здесь: включено (1), хранить до 3 одинаковых EMM (3), в течение 15 минут (15). Повторная одинаковая EMM в этом окне не записывается в карту. Это снижает нагрузку кратно — провайдеры часто шлют одни и те же EMM несколько раз подряд.

Без emmcache OScam пишет каждую EMM в карту отдельно. При активном потоке это десятки записей в час — карта деградирует заметно быстрее.

saveemm для анализа и резервного обновления

saveemm = 1 в секции ридера сохраняет все входящие EMM в файл. Полезно для двух вещей: диагностика (можно посмотреть, что реально приходит) и резервное обновление — если карта временно недоступна, можно потом воспроизвести EMM из дампа.

Путь файла задаётся через savedir в oscam.conf. По умолчанию — рядом с конфигами. Файл растёт быстро при активном потоке, следи за местом на диске.

Интервал reset и reader refresh

Параметр resetcycle задаёт количество ошибок до принудительного сброса ридера. Иногда при зависшем AU помогает resetcycle = 10 — ридер перечитывает карту и AU возобновляется. Но это костыль, а не решение: если AU стабильно не работает без reset — ищи причину в конфиге.

readtiers при старте показывает доступные тиры карты. Если тир с нужным caid не отображается — карта либо не инициализировалась корректно, либо подписка действительно закончилась.

Нужен ли AU при работе через CCcam-пиринг?

Нет. При шаринге обновляет карту тот, у кого она физически вставлена в ридер. Клиент получает только ECM-расшифровки. Включать AU на клиентской стороне без карты бессмысленно — OScam просто не найдёт, куда писать EMM.

Где в OScam указывается, какой ридер обновляет клиента?

В файле /etc/oscam/oscam.user, параметр au = имя_ридера в секции [account]. Значение должно точно совпадать с label в oscam.server. Можно указать au = 1 для автовыбора ридера, но при нескольких ридерах с одним caid лучше назначать явно.

Почему счётчик EMM written равен нулю?

Причин несколько: включены blockemm-u/s/g/unknown, неверный caid или auprovid, карта без прав, истёкшая подписка, неверный boxkey, ридер не в режиме AU. Начни с webif — смотри колонки skipped и blocked, потом включи loglevel = 64 и читай лог с grep по «emm».

Как посмотреть, доходят ли EMM до ридера?

Открой webif по адресу http://<ip>:8888, перейди в Readers. Колонки EMM ok/written/skipped/blocked показывают состояние в реальном времени. Для детальной картины: tail -f /var/log/oscam/oscam.log | grep -i emm при включённом loglevel = 64.

Опасно ли частое автообновление для карты?

Да. EEPROM смарткарты имеет ограниченный ресурс записи. При активном потоке без emmcache карта может получать десятки одинаковых EMM в час. Настрой emmcache = 1,3,15 в oscam.conf и при необходимости блокируй shared/global EMM, если unique достаточно для обновления.

Какой caid и provid указывать для AU?

Те, что реально принадлежат твоей карте. Смотри в логе OScam при старте ридера — там выводится полная информация о карте: caid, провайдеры, серийный номер. Либо открой webif, Readers → кликни на ридер → Reader Info. Не угадывай — ставь то, что видишь в логе.

О статье

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