/

Global Active Device в OScam: настройка и ошибки

Главная Статьи Global Active Device в OScam: настройка и ошибки

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

04.06.2026

Global Active Device в OScam: настройка и ошибки

Если вы видите в логах OScam строку вроде global active device и не понимаете, норма это или сигнал о проблеме — вы не одни. Эта запись появляется при инициализации карторидера и сама по себе не ошибка. Но в связке с другими сообщениями она может указывать на конфигурационный сбой, из-за которого каналы не открываются. Разберём по порядку.

Что означает «global active device» в контексте OScam/CCcam

Строка global active device — это статусное обозначение из стека драйверов OScam, относящееся к глобальному состоянию устройства чтения. Она появляется при опросе карторидера через PCSC, Phoenix или SmartReader API и сообщает, что ядро OScam зафиксировало устройство как активное на уровне системы.

Здесь важно сразу разграничить два понятия, которые часто путают. Device — это физический или виртуальный карторидер: например, /dev/ttyUSB0 для Phoenix-ридера или идентификатор PCSC-контекста вроде PCSC:0. Reader — логическая запись в файле oscam.server, которая ссылается на этот device и содержит параметры карты (caid, ident, частоты).

Откуда берётся это сообщение в логах

Сообщение генерируется при старте reader-потока и при повторной инициализации после переподключения карты. Найти его можно в oscam.log при debuglevel 4 и выше. В веб-интерфейсе OScam (по умолчанию http://serverip:8888) оно отражается во вкладке Readers рядом со статусом конкретного ридера.

На прошивках Enigma2 лог-файл нередко лежит не там, где ожидаешь. Типовые пути: /tmp/oscam.log, /var/log/oscam.log или /hdd/oscam.log — зависит от дистрибутива (OpenPLi, OpenATV, VTi). Проверьте параметр logfile в секции [global] файла oscam.conf.

Связь со статусом reader и состоянием карты

После того как устройство помечено как active, OScam пробует прочитать ATR карты. Если карта отвечает корректно — reader переходит в состояние CARD OK и начинает обрабатывать ECM-запросы. Если ATR не читается — в логе появится что-то вроде card initialisation error и reader зависнет в петле повторных попыток.

Именно в этот промежуток — между фиксацией device как active и успешным чтением ATR — большинство пользователей и начинают диагностику. Сам факт появления статуса global active device в логе говорит о том, что OScam «видит» устройство на уровне ОС. Это уже хорошо.

Чем «active» отличается от «error» и «off»

active — устройство определено, ридер работает, карта (возможно) вставлена. error — инициализация провалилась: нет ответа ATR, неверная частота, права доступа. off — ридер явно отключён в конфиге (параметр enabled = 0) или физически не обнаружен при старте.

Так что если вы видите active и каналы всё равно не открываются — проблема не в самом статусе, а в чём-то между ридером и декодированием ECM. Именно об этом дальше.

Где искать причину: логи, конфиги и веб-интерфейс

Конфиги OScam, как правило, живут в /etc/tuxbox/config/oscam/ или /var/keys/. На некоторых сборках Enigma2 путь нестандартный — встречал /usr/keys/ и /media/hdd/oscam/. Основные файлы: oscam.conf, oscam.server, oscam.user. Для CCcam — /var/etc/CCcam.cfg.

Включение детального лога (debuglevel)

По умолчанию детализация слишком низкая, чтобы увидеть инициализацию устройства. Открываете oscam.conf, находите секцию [global] и выставляете:

[global]
logfile = /var/log/oscam.log
debuglevel = 65535

Значение 65535 включает все категории сразу. Если лог заваливается лишним, используйте точечные значения: 4 — reader-события, 8 — ATR и протокол карты. После изменения перезапустите OScam и смотрите живой поток:

tail -f /var/log/oscam.log

Веб-интерфейс на порту 8888 тоже полезен — вкладка Readers показывает текущий статус и счётчики ECM в реальном времени без необходимости копаться в текстовом логе.

Проверка секции [reader] в oscam.server

Типичная секция для Phoenix-карторидера выглядит так:

[reader]
label         = local_card
protocol      = mp35
device        = /dev/ttyUSB0
caid          = 0500
ident         = 0500:032830
group         = 1
mhz           = 357
cardmhz       = 357
detect        = cd

Параметр device — главная точка отказа. Для PCSC-ридера вместо /dev/ttyUSB0 пишется PCSC:0 (или PCSC:1 для второго устройства). Это часто пропускают, путая два формата.

Ещё одна ловушка: USB-карторидер после перезагрузки может получить имя /dev/ttyUSB1 вместо /dev/ttyUSB0. Фиксируется через udev-правило в /etc/udev/rules.d/99-oscam.rules с привязкой по idVendor/idProduct. Это избавляет от головной боли раз и навсегда.

Диагностика устройства через oscam Status и список ECM

Вкладка Status в веб-интерфейсе показывает время ответа на каждый ECM-запрос. Если поле ecm time прыгает выше 1000 мс или видны ошибки No reply — проблема явно на стороне карты или соединения. Нормальный ecm time для локальной карты — до 150–200 мс. Для удалённого источника — до 300–400 мс.

Типичные ошибки и их устранение

Разберём по схеме: симптом — что проверить — как исправить.

Карторидер не определяется (device not found)

Запускаете:

dmesg | grep tty

Если строки с ttyUSB0 нет — ядро не видит устройство. Причины: нет питания по USB, нет нужного модуля ядра (cp210x, ftdi_sio, ch341), физически не воткнуто. Если строка есть, но OScam не стартует — права доступа. Быстрое решение:

chmod 666 /dev/ttyUSB0

Или добавить пользователя oscam в группу dialout. На Enigma2-боксах oscam часто запускается от root, поэтому проблема с правами встречается реже, но на Raspberry Pi с Raspbian — регулярно.

Карта инициализируется, но ECM не проходят

Здесь самое частое — несовпадение caid и ident между oscam.server и oscam.user. В oscam.user секция [account] должна содержать те же идентификаторы, что прописаны в reader:

[account]
user    = client1
pwd     = pass123
group   = 1
caid    = 0500
ident   = 0500:032830

Группы (group) reader и account должны совпадать. Если reader в группе 1, а пользователь в группе 2 — ECM просто не маршрутизируются. Это тихая ошибка, которая не выдаёт внятного сообщения в логе.

Дополнительно: если несколько reader-секций с одинаковым caid — OScam выбирает по приоритету через параметр ridx (или по порядку в файле). Конфликт приоритетов можно поймать, включив debuglevel = 4 и наблюдая, на какой ридер уходят запросы.

Неверная частота mhz/cardmhz и сбои ATR

Параметр mhz — тактовая частота карторидера (в единицах 10 кГц, то есть 357 = 3,57 МГц). cardmhz — частота карты. Типовые рабочие значения: 357, 368, 400, 600. Некоторые карты отказываются инициализироваться при стандартных 357 и требуют 368 или 600.

Признак проблемы — в логе card initialisation error или просто зависшее состояние после фиксации global active device. Перебирайте cardmhz по одному, перезапуская OScam после каждого изменения. Если карта старая или проблемная, попробуйте также deprecated = 1 в секции reader — это включает старый режим работы с картой.

Конфликт прав доступа к /dev/ устройству

На некоторых системах oscam запускается от непривилегированного пользователя, а устройство принадлежит группе dialout. Проверьте:

ls -la /dev/ttyUSB0

Если там crw-rw---- 1 root dialout — добавьте oscam-пользователя в dialout через usermod -aG dialout oscam и перезапустите демон. Без этого reader будет виден системе как active, но открыть устройство OScam не сможет.

Правильная конфигурация совместного доступа к карте

Настройка раздачи карты — это когда локальная карта в вашем ридере отдаётся клиентам через протокол CCcam или Newcamd. Вот минимально рабочая конфигурация.

Минимальный рабочий [reader] для локальной карты

[reader]
label         = mycard
protocol      = mp35
device        = /dev/ttyUSB0
caid          = 1802
ident         = 1802:000000
group         = 1
mhz           = 357
cardmhz       = 357
detect        = cd
nagra_read    = 0

Параметр detect = cd означает, что присутствие карты определяется по CD-линии (Card Detect). Если ваш ридер не поддерживает CD — используйте rts или уберите параметр совсем.

Раздача карты по протоколу CCcam (C-line)

В oscam.conf секция для CCcam-сервера:

[cccam]
port          = 12000
reshare       = 1
stealth       = 1

Порт по умолчанию — TCP 12000. В CCcam.cfg директива: SERVER LISTEN PORT : 12000. Клиент подключается через C-line в своём конфиге:

C: yourserver.example 12000 username password

Обязательно проверьте файрвол. На многих Enigma2-боксах iptables по умолчанию закрывает входящие. Команда для временного открытия:

iptables -A INPUT -p tcp --dport 12000 -j ACCEPT

Для постоянного — добавьте правило в /etc/iptables.rules или аналогичный файл вашего дистрибутива. За NAT-прокинутым портом — не забудьте про port forwarding на роутере.

В oscam.user для каждого CCcam-клиента:

[account]
user          = client1
pwd           = secretpass
group         = 1
caid          = 1802
ident         = 1802:000000

Параметры безопасности и ограничение нагрузки на карту

Физическая карта обрабатывает один ECM-запрос примерно за 100–200 мс. При 10 клиентах с активным зэппингом запросы начинают накапливаться, ecm time растёт, и клиенты видят freeze. Ограничение через cccmaxhops = 1 запрещает клиентам ретранслировать карту дальше. Параметр cccreshare = 0 в oscam.user для конкретного аккаунта запрещает ему пошаривать карту своим клиентам.

Дополнительно можно ограничить список допустимых CAID/SID через ecmwhitelist, что защищает от паразитных запросов. Параметр sleepsend = 1 отправляет keep-alive пакеты клиентам в паузах, предотвращая дисконнекты при долгом просмотре одного канала.

Реальный предел для одной карты — зависит от карты и пакета, но из практики: больше 5–7 одновременно активных клиентов на одну физическую карту — уже зона риска.

Как выбрать надёжный источник карты (без конкретных имён)

Если своей карты нет и вы подключаетесь к удалённому источнику через C-line, вот на что реально смотреть.

Критерии стабильного аптайма и низкого пинга

Первое — географическая близость сервера. Это напрямую влияет на ecm time: при пинге 10 мс запрос обрабатывается за 200–300 мс, при пинге 150 мс — уже за 500+ мс, что заметно на быстрых переключениях каналов. Тестируйте пинг до сервера обычным ping hostname до подписки.

Второе — аптайм. Попросите тестовый доступ на 24–48 часов и смотрите не только на то, работает ли сейчас, но и на количество реконнектов в логе за этот период. Строки disconnected и reconnecting в oscam.log — ваши маяки.

Поддержка нужных caid и пакетов

Убедитесь, что источник реально раздаёт нужный CAID с нужным provid. В логе OScam при успешном подключении видно, какие CAID доступны через данный ридер. Если caid/ident в oscam.server не совпадает с тем, что реально раздаётся — ECM просто некуда отправлять, и каналы не откроются даже при живом соединении.

На что смотреть в тестовый период

В веб-интерфейсе OScam откройте вкладку Status и смотрите ecm time в реальном времени. Хороший источник: стабильные 200–400 мс, единицы ошибок за вечер. Плохой: скачки от 200 до 2000 мс, регулярные No reply, счётчик ошибок растёт быстрее счётчика успехов. Смотрите на соотношение — не на абсолютные цифры.

Параметр fallback = 1 в oscam.server переводит этот ридер в резервный режим — OScam обращается к нему только если основной не ответил. Полезно для схемы основная карта + резервный удалённый источник.

«Global active device» — это ошибка или нормальный статус?

Сам по себе статус active — это норма. Он означает, что OScam определил устройство и ридер запущен. Проблемой это становится только если рядом идут ошибки: card initialisation error, No reply, ECM error. Смотрите на совокупность строк в логе вокруг этого сообщения, а не на него изолированно.

В каком файле и где искать настройки устройства в OScam?

Настройки ридера — в файле oscam.server, секция [reader], параметр device. Типовые пути к конфигам: /etc/tuxbox/config/oscam/, /var/keys/, реже /usr/keys/ или /media/hdd/oscam/. Для CCcam — /var/etc/CCcam.cfg.

Как включить подробный лог, чтобы увидеть инициализацию устройства?

В oscam.conf, секция [global]: выставьте debuglevel = 65535 для всех категорий. Для точечной отладки ридера: debuglevel = 4 (reader-события) или 8 (ATR/протокол). Живой лог: tail -f /var/log/oscam.log. Статус ридеров в реальном времени — вкладка Readers в веб-интерфейсе на порту 8888.

Какой порт используется для раздачи карты по CCcam?

По умолчанию TCP 12000. В OScam задаётся в oscam.conf секция [cccam], параметр port = 12000. В CCcam.cfg: директива SERVER LISTEN PORT : 12000. Обязательно проверьте iptables — порт должен быть открыт: iptables -A INPUT -p tcp --dport 12000 -j ACCEPT.

Карта определяется, но каналы не открываются — почему?

Первым делом проверьте совпадение caid и ident в oscam.server и oscam.user, а также совпадение групп (group). Несовпадение — самая частая причина тихого отказа. Дальше: значения mhz/cardmhz (попробуйте 368 или 400 если 357 не работает), наличие нужного provid, ecm time и счётчик ошибок во вкладке Status.

Сколько клиентов выдержит одна оригинальная карта?

Зависит от карты и активности клиентов, но на практике больше 5–7 одновременно зэппящих клиентов на одну физическую карту — уже риск фризов и No reply. Ограничивайте через cccmaxhops = 1, cccreshare = 0 в аккаунтах клиентов и ecmwhitelist для фильтрации паразитных запросов.

О статье

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