Тест 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 прочитан, но не совпадает с ожидаемым для указанного CAIDinit 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/nokr— reload конфигов без перезапуска демона (очень полезно при тюнинге)v— версия OScam, дата сборки, включённые модулиd 255— включить максимальный debug на летуd 0— выключить debugq— выйти
Снятие статистики 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 или внешние мониторы.