Тест OScam: проверка работы сервера и карт в 2026

Настроил OScam, запустил — и что дальше? Многие на этом и останавливаются, думая что раз демон стартовал без ошибок, значит всё работает. Это не так. Нормальный oscam test — это минимум пять разных проверок: жив ли процесс, читаются ли карты, отвечают ли пиры, приходят ли ECM-запросы от клиента и за какое время они обрабатываются. Пропустишь хоть одну — получишь фризы в прайм-тайм и не поймёшь почему.

Эта статья — пошаговая методика диагностики. От простого (запущен ли демон) к сложному (анализ ECM-статистики через monitor port).

Что такое тест OScam и зачем он нужен

OScam — это не монолит, а набор компонентов. Каждый может работать или не работать независимо. Поэтому oscam test — это не одна команда, а последовательность проверок, охватывающих весь путь от карты до клиента.

Какие компоненты OScam нужно проверить

Основных компонентов пять:

  • Демон — запущен ли процесс oscam, не упал ли он сразу после старта
  • Ридеры — определяет ли OScam смарт-карту, читает ли ATR, инициализирует ли CAID
  • Пиры — установлено ли TCP-соединение с CCcam/newcamd-серверами, получены ли карты
  • Клиенты — подключаются ли ресиверы или softcam-эмуляторы, получают ли CW
  • ECM-цикл — реальные запросы на расшифровку, время ответа, статусы found/not found

Когда обязательно проводить полный тест

Есть четыре ситуации, когда быстрой проверкой "веб-интерфейс открылся — значит норм" не обойтись:

  • После первичной установки OScam на новый хост
  • После изменений в oscam.server — добавил пира, поменял протокол
  • После смены провайдера или карты
  • При жалобах на фризы, зависания на каналах, "карта есть но не открывает"

Разница между быстрой проверкой и полной диагностикой

Быстрая проверка — это ps aux | grep oscam и открытый веб-интерфейс. Займёт 30 секунд. Полная диагностика — это анализ логов, проверка ATR карты, тест connectivity до пиров, мониторинг ECM-запросов в реальном времени. Занимает 15-20 минут, но зато после неё ты точно знаешь что работает, а что нет.

Проверка статуса демона OScam

Начинаем с самого базового — жив ли процесс вообще.

Команды ps, systemctl и pidof для проверки процесса

Три команды, которые нужно знать:

ps aux | grep oscam
systemctl status oscam
pidof oscam

Если pidof oscam возвращает пустую строку — демон не запущен. Если systemctl status oscam показывает Active: failed — смотри journalctl, там будет причина. Чаще всего это ошибка в конфиге или занятый порт.

Типичные пути к конфигам OScam, в зависимости от платформы:

  • /usr/local/etc/oscam/ — стандартная компиляция из исходников
  • /var/etc/.oscam/ — некоторые дистрибутивы для Enigma2
  • /etc/tuxbox/config/oscam/ — embedded-приставки на Enigma2
  • /etc/oscam/ — пакетные установки через apt/opkg

Проверка логов через journalctl и /var/log/oscam.log

Если OScam запущен через systemd:

journalctl -u oscam -n 100 --no-pager

Если логирование настроено в файл — смотри /var/log/oscam.log или тот путь, что указан в конфиге. Ключевые строки при нормальном старте: oscam started, reader initialized, webif listening on port XXXX.

Уровни отладки в oscam.conf (debug 0-255)

В секции [global] файла oscam.conf:

[global]
logfile = /var/log/oscam.log
maxlogsize = 500
debug = 64

Параметр debug — это битовая маска. Значения: 0 = ничего, 1 = ошибки, 2 = события, 4 = ридеры, 8 = клиенты, 16 = ECM/EMM, 64 = веб-интерфейс, 255 = всё. Для диагностики ECM-проблем удобно ставить 16 или 48. После теста — обязательно верни на 0 или 1, иначе логи заполнят диск за несколько часов на нагруженном сервере.

Тестирование через web-интерфейс OScam

Веб-интерфейс — главный инструмент для oscam test в повседневной диагностике. Показывает состояние всей системы в реальном времени.

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

Минимальный конфиг секции [webif]:

[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httpallowed = 127.0.0.1,192.168.1.0/24
httprefresh = 5

По умолчанию порт 8888, но можно поменять на любой незанятый. Параметр httpallowed — список IP или подсетей, которым разрешён доступ. Если веб не открывается — первым делом проверяй именно его. Частая ошибка: сервер на 10.0.0.x, а в httpallowed только 192.168.1.0/24.

Раздел Status — состояние ридеров и клиентов

После входа на http://server:8888 переходи в Status. Здесь видны все активные соединения: какие клиенты подключены, с каких IP, сколько ECM-запросов отправили, какое среднее время ответа. Если клиентов нет — либо ресивер не настроен, либо firewall блокирует порт.

Раздел Readers — проверка карт и ECM-статистики

Самый информативный раздел. Для каждого ридера видно:

  • Status — CONNECTED / NOT CONNECTED / CARDOK / CARDERROR
  • CAID — идентификатор условного доступа карты (например, 0x0500 для Viaccess, 0x0919 для Nagravision)
  • Cards — количество карт, полученных от пира (для сетевых ридеров)
  • ECM time — среднее время расшифровки в миллисекундах
  • ECM ok/nok — счётчик успешных и неуспешных запросов
  • Idle — сколько секунд назад был последний ECM-запрос

Если видишь cards: 0 у сетевого ридера при статусе CONNECTED — это не значит что соединение не работает. Это значит что пир не передал список карт. Подробнее в разделе о диагностике.

Раздел Log Live — реальное время событий

Log Live — это стриминг лога прямо в браузере. Видишь каждый ECM-запрос, каждое подключение клиента, каждую ошибку инициализации. При диагностике фризов — тюни канал на ресивере и смотри что появляется в Log Live. Если запрос есть, но статус not found — проблема в карте или подписке. Если запроса нет вообще — проблема в соединении клиента с OScam.

Проверка работы локальных карт и ридеров

Если используешь физическую смарт-карту — нужно убедиться что ОС её видит ещё до того, как OScam начнёт с ней работать.

Команды для проверки smartcard через pcsc_scan и cardinfo

Для USB-ридеров (Smargo SmartReader, Phoenix, Infinity)::

lsusb | grep -i card
pcsc_scan

pcsc_scan — утилита из пакета pcscd. Если карта вставлена и ридер определён, увидишь ATR вида 3B 9F 21 0E 49.... Если видишь "waiting for card to be inserted" — карта не читается на уровне ОС, OScam тут вообще не причём.

Для встроенных ридеров (CI-слоты, внутренние ридеры приставок):

ls -la /dev/sci0 /dev/sci1

Тест ATR карты и определение CAID

OScam при инициализации ридера выводит ATR в лог. Строка выглядит примерно так:

reader MYCARD: ATR: 3B 9F 21 0E 49 60 35 FB 00 00 4E 61 67 72 61 2E
reader MYCARD: CAID: 0x0919, Prov: 000000

Если ATR есть, но CAID не определился — OScam не поддерживает эту карту или нужен дополнительный параметр caid в oscam.server для принудительного указания.

Проверка прав доступа к /dev/sci0 и USB-ридерам

Классическая проблема — OScam запущен под пользователем oscam или nobody, а устройство принадлежит группе dialout или uucp:

ls -la /dev/ttyUSB0
# crw-rw---- 1 root dialout 188, 0 ...

usermod -a -G dialout oscam

После добавления пользователя в группу — перезапустить OScam. Без этого в логе будет ERROR: cannot open /dev/ttyUSB0: Permission denied.

Анализ ошибок инициализации в логе

Что означают типичные ошибки инициализации:

  • card not detected — карта физически не определена или ридер не виден ОС
  • wrong ATR — ATR прочитан, но не совпадает с ожидаемым для указанного CAID
  • init error — ATR есть, CAID определён, но инициализация провайдера провалилась (неверный boxkey или rsakey)
  • unsupported caid — эта версия OScam не скомпилирована с поддержкой данного провайдера

Тест соединения с пирами (CCcam/newcamd/cs378x)

Сетевые ридеры — самая частая точка отказа. Соединение может выглядеть живым, но не давать карт.

Проверка connectivity через telnet и nc

Перед тем как разбираться в конфигах OScam — проверь что хост и порт вообще доступны:

nc -zv peer.example.com 12000
telnet peer.example.com 12000

Если nc говорит Connection refused или timed out — проблема на уровне сети или firewall'а пира. OScam тут ничего не сделает. Если соединение устанавливается, но OScam не видит карты — читай дальше.

Анализ строки connected/disconnected в логе

При правильной настройке и успешном соединении с CCcam-пиром в логе появится:

reader PEER1: connected to peer.example.com:12000 (CCcam 2.3.2)
reader PEER1: received 47 cards from peer

Если вместо этого видишь циклические connection failed, retry in 30s — проверяй логин/пароль в oscam.server и соответствие протокола (CCcam vs newcamd vs cs378x).

Что означает no matching reader

Это сообщение появляется в Log Live когда клиент запрашивает ECM с определённым CAID, а ни один ридер не может его обработать. Причины: пир не передал карты с нужным CAID, или ограничения reshare на его стороне не позволяют передавать этот CAID дальше.

Проверка обмена картами по протоколу CCcam

В разделе Readers веб-интерфейса у каждого сетевого ридера есть ссылка на список полученных карт. Кликни на имя ридера — увидишь полный список CAID:ProvID с количеством hop. Hop 1 = карта напрямую у пира, Hop 2 = пир получил её от своего пира. Обычно reshare ограничен hop 1-2, проверяй параметры reshare в confoig-е.

ECM-тест: проверка реального открытия каналов

ECM (Entitlement Control Message) — это запрос на расшифровку Control Word. Не путать с EMM (Entitlement Management Message) — EMM управляет подпиской на карте, это совсем другая история. ECM-тест — это самая реалистичная проверка, потому что имитирует реальный просмотр канала.

Что такое ECM и почему время важно

Ресивер или softcam каждые несколько секунд отправляет ECM-запрос — зашифрованный пакет, из которого нужно извлечь CW (Control Word) для расшифровки видеопотока. OScam принимает запрос, передаёт в ридер (карту или пира), получает CW и отдаёт обратно клиенту. Весь цикл должен уложиться быстрее чем сменится ключ на канале — обычно каждые 10-30 секунд, но на некоторых CAID быстрее.

Нормальные значения ECM time для разных CAID

Конкретные цифры из практики:

  • Локальная карта (любой CAID) — 200-600ms, стабильно
  • Через пира по локальной сети — 150-400ms
  • Через пира по интернету — 400-1200ms в зависимости от пинга и загрузки
  • Nagravision 3 (0x0919) — может быть 600-900ms даже локально из-за криптографии
  • Свыше 1500-2000ms — жди фризов, особенно на HD и UHD каналах

Как смотреть ECM-запросы в Log Live

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

client MYBOX: ECM CAID 0500 provid 042600 srvid 0ABC — found (342ms) by reader LOCAL_CARD

Здесь: CAID 0500 = Viaccess, provid = провайдер, srvid = ID канала, 342ms = время расшифровки, found = успешно. Если видишь поток found с нормальным временем — всё работает.

Признаки проблем: timeout, not found, rejected

  • found — всё хорошо, CW доставлен клиенту
  • not found — ни один ридер не смог расшифровать. Карта не имеет нужного провайдера, подписка истекла, или CAID не совпадает
  • timeout — пир не ответил вовремя. Сетевые потери, пир перегружен или недоступен
  • rejected — запрос отклонён по правилам. Проверяй ограничения в oscam.user: группы, maxecm, временны́е окна

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

Сервер запущен, но web-интерфейс недоступен

Три причины в порядке частоты: IP не в httpallowed, firewall блокирует порт 8888, OScam не запущен с поддержкой webif (нужна компиляция с --enable-webif). Проверка:

ss -tlnp | grep 8888
curl -v http://127.0.0.1:8888

Если порт не слушается — OScam либо не запущен, либо скомпилирован без webif.

Ридер online, но ECM time = 0 или N/A

ECM time 0 означает что не было ни одного запроса с момента старта. Карта инициализирована, но клиент ничего не запрашивал — скорее всего ресивер не тюнит нужный канал или не настроен на OScam. Проверь настройки softcam на ресивере и порт CS протокола.

Клиент подключается, но каналы не открываются

Смотри на статусы ECM в логе. Если not found — несовпадение CAID или провайдера. Проверь в oscam.user секцию клиента: параметры caid и ident должны совпадать с тем что запрашивается. Если rejected — проверь группы: клиент должен быть в той же группе что и ридер.

Cards: 0 у пира при наличии соединения

Соединение установлено, но пир не прислал карты. Причины: на стороне пира отключён reshare для твоего аккаунта, reshare hop = 0, или у пира в данный момент нет активных карт. Также может быть что CWS_KEEPALIVE пакеты не проходят и соединение "висит мертвым". В oscam.server попробуй добавить:

keepalive = 1
reconnecttimeout = 30

Высокий ECM time и фризы на каналах

Если время стабильно высокое (1500ms+) — причины: большой пинг до пира, пир перегружен слишком большим числом клиентов, плохое качество карты у пира. Проверь ping peer.example.com — если пинг 50ms, а ECM time 1200ms, значит проблема на стороне пира. Если проблема только в прайм-тайм — пир банально перегружен, ищи другого.

Расширенный тест через CLI и monitor port

Веб-интерфейс удобен, но для автоматизации и серверной диагностики без GUI — monitor port через telnet.

Подключение к OScam через telnet localhost monitor_port

Настройка в oscam.conf:

[monitor]
port = 8010
monitoraccess = 127.0.0.1

Подключение:

telnet 127.0.0.1 8010

Полезные команды: status, reload, version, debug

После подключения доступны текстовые команды:

  • s — полный статус: ридеры, клиенты, счётчики ECM ok/nok
  • r — reload конфигов без перезапуска демона (очень полезно при тюнинге)
  • v — версия OScam, дата сборки, включённые модули
  • d 255 — включить максимальный debug на лету
  • d 0 — выключить debug
  • q — выйти

Снятие статистики nok/ok за период

Простой bash-скрипт для мониторинга качества работы через oscam test — парсинг лога и алерт при деградации:

#!/bin/bash
LOGFILE="/var/log/oscam.log"
NOK_COUNT=$(grep -c "not found\|timeout" "$LOGFILE" | tail -n 100)
OK_COUNT=$(grep -c "found" "$LOGFILE" | tail -n 100)

if [ "$NOK_COUNT" -gt 20 ]; then
  echo "ALERT: OScam high error rate — NOK=$NOK_COUNT OK=$OK_COUNT" | mail -s "OScam Alert" [email protected]
fi

Автоматизация тестов через scripts и cron

Добавь в crontab проверку раз в 5 минут:

*/5 * * * * /usr/local/bin/oscam_check.sh >> /var/log/oscam_monitor.log 2>&1

Параметр lb_min_ecmcount в oscam.conf контролирует минимальное количество ECM-запросов до начала работы loadbalancer-статистики. По умолчанию 5 — можно поставить 10-20 для более стабильных данных при выборе лучшего ридера.

И ещё один момент для тех кто запускает OScam в Docker: пути к /dev/sci0 нужно пробрасывать через --device, а логи смотреть через docker logs oscam или volume-mount. Несколько экземпляров OScam на одном хосте — каждый должен иметь свой httpport, port в [monitor], свой pid-файл и свою директорию конфигов. Иначе они будут конфликтовать при старте.

FAQ

Как быстро проверить что OScam запущен и работает?

Запусти ps aux | grep oscam или systemctl status oscam — убедись что процесс жив. Потом открой веб-интерфейс на httpport (по умолчанию 8888) и посмотри раздел Status. Там должны быть ридеры со статусом CARDOK или CONNECTED. Если ридеры есть и зелёные — базовый oscam test пройден.

Какое нормальное ECM time считается хорошим?

Для локальной карты — 200-600ms. Через пира по интернету — 400-1200ms. Свыше 1500-2000ms жди фризов при переключении каналов и на HD/UHD потоках. Если ECM time прыгает от 200 до 1800ms — нестабильное соединение с пиром, смотри на потери пакетов.

Почему ридер показывает online, но cards: 0?

Карта инициализирована (ATR прочитан), но авторизация не прошла — провайдер не вернул список entitlements. Для Viaccess проверь ident в oscam.server. Для NDS/Nagravision — rsakey и boxkey. Для сетевого пира — решает его сторона, у него может быть reshare = 0 для твоего аккаунта.

Как протестировать OScam без подключения клиента?

Через веб-интерфейс видишь статус ридеров и полученные карты. Через CLI команду s в monitor port — общий статус процессов. Но реальный ECM-тест — только при запросе от клиента. Можно использовать softcam-эмулятор (например, запустить его на том же хосте) для генерации ECM без физического ресивера.

Что означает not found в логе при ECM-запросе?

Ни один ридер не смог расшифровать запрос. Либо у карты нет нужного provider ID для этого канала, либо подписка истекла, либо CAID не совпадает. Посмотри в Readers список CAID:ProvID — и сравни с тем что запрашивает клиент в Log Live. Если провайдеры не совпадают — карта просто не подходит для этого канала.

Как включить детальные логи для диагностики?

В oscam.conf в секции [global] выставь logfile = /var/log/oscam.log и debug = 255 для максимальной детализации. После теста обязательно верни debug = 0 — на нагруженном сервере при debug 255 лог растёт со скоростью нескольких мегабайт в минуту.

Можно ли протестировать пира без своих локальных карт?

Да. В oscam.server создай reader с protocol = cccam (или newcamd, cs378x), укажи host/port/user/password. После подключения в разделе Readers веб-интерфейса увидишь список карт, полученных от пира. Если cards: 0 — пир не делает reshare для твоего аккаунта, это нужно решать с его администратором.

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

Даже самая стабильная линия 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 или внешние мониторы.