Тест 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 для твоего аккаунта, это нужно решать с его администратором.
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.