Переход с CCcam на OScam: полная настройка 2026

Миграция cccam to oscam — задача, которую откладывают годами, а потом делают за выходные. CCcam работал, не трогали. Потом апстрим обновился, добавил новые CAID, а твой демон не умеет с ними работать. Или просто надоели заморозки без внятного лога. Эта статья — пошаговый переход с минимальным простоем: берём рабочий CCcam.cfg, переписываем в формат OScam, проверяем одну линию, потом переносим остальные.

Никакой магии тут нет, но подводных камней достаточно. Главный — OScam разносит конфиг по нескольким файлам там, где CCcam держал всё в одном. Из-за этого люди путают oscam.server и oscam.user и застревают.

Почему переходят с CCcam на OScam

Если коротко: CCcam закрытый, давно заброшенный бинарник. Последний официальный релиз — 2.3.x, и с тех пор репозитория нет. Багфиксы? Только если найдёт неофициальный патч. OScam — открытый исходник, активный svn на streamboard.eu, коммиты идут регулярно.

Активная разработка и поддержка против заброшенного CCcam

OScam компилируется под конкретное железо и прошивку. Enigma2, OpenATV, VTi, Gemini — всё собирается с нужными флагами. CCcam распространяется как готовый бинарник под ARM, который не всегда корректно работает на новых SoC. На некоторых боксах типа Vu+ Solo 4K CCcam 2.3.28 просто падает без объяснений, а OScam там живёт нормально.

Гибкость: несколько протоколов в одном демоне

Это реально убойная фича. OScam умеет одновременно принимать клиентов по CCcam-протоколу, newcamd, camd35, mgcamd, cs357x, cs378x — и при этом сам подключаться к апстримам по любому из них. CCcam такого не умел от слова совсем: только свой протокол на выходе.

Практически это значит: если у тебя часть клиентов ходит по CCcam, а часть по newcamd — OScam закроет всё из одного демона. Не нужно держать два разных сервера.

Веб-интерфейс мониторинга и детальные логи

CCcam-логи — это боль. Там нет ни ECM time, ни внятного статуса ридеров. OScam на порту 8888 (настраивается через httpport в oscam.conf) отдаёт полноценный веб-интерфейс: видишь каждый ридер, его статус CONNECTED/CONNECTERROR, текущий ECM time, какие SID дешифруются прямо сейчас. При разборе проблем это экономит часы.

Поддержка современных CAS и эмуляции

OScam поддерживает Nagravision 3, Irdeto 2/3, BISS, PowerVu — и через softcam-эмуляцию умеет то, что CCcam вообще не мог. Если у тебя локальная карта и нужна эмуляция для дополнительных пакетов — в CCcam это был тупик, в OScam решается через cccwantemu = 1 в ридере.

Соответствие конфигов: CCcam.cfg против файлов OScam

Вот здесь большинство спотыкается при переходе cccam to oscam. CCcam хранит всё в одном файле /etc/CCcam.cfg: и апстримы, и локальные карты, и клиентов. OScam разбивает это на несколько файлов, у каждого своя роль.

Структура OScam: oscam.conf, oscam.server, oscam.user, oscam.services

oscam.conf — главный конфиг демона. Здесь глобальные настройки: пути логов, параметры веб-интерфейса, протокольные секции [cccam], [newcamd] с портами.

oscam.server — все источники, к которым ты подключаешься. Апстримные линии CCcam, newcamd, локальные карты через ридер-устройство. Это твои входящие CW.

oscam.user — клиенты, которые подключаются к тебе. Каждый аккаунт — блок [account] с логином, паролем, правами.

oscam.services — опционально, фильтрация по SID/CAID. Если нужно ограничить ридер или клиента конкретными каналами.

Где CCcam держит всё в одном файле

В CCcam.cfg строка C: — это подключение к апстриму (клиентская линия). Строка N: — то же самое, но по протоколу newcamd. F: — локальная карта, вставленная в ресивер. B: — блокировка CAID. Всё вперемешку в одном файле.

В OScam каждая из этих сущностей живёт в своём месте. Понял логику — дальше просто.

Таблица соответствия директив

CCcam.cfg директива Файл OScam Блок Ключевые параметры
C: host port user pass oscam.server [reader] protocol = cccam, device = host,port
N: host port deskey user pass oscam.server [reader] protocol = newcamd, key = DES
F: /dev/sci0 slot oscam.server [reader] protocol = internal, device = /dev/sci0
ACCOUNT user pass oscam.user [account] user =, pwd =, group =
B: caid ident oscam.server / oscam.user ident = caid =, ident = (с исключениями)

Расположение файлов: /etc/tuxbox/config/oscam/ или /var/etc/oscam/

Зависит от прошивки и способа установки. На классическом Enigma2 с DreamOS — /etc/tuxbox/config/oscam/. На OpenATV, OpenPLi, VTi — чаще /var/etc/oscam/. На некоторых прошивках конфиг лежит в /usr/keys/ — это старый вариант для плагина EMU.

Проверить просто: ps | grep oscam — в строке запуска будет ключ -c с путём к конфиг-директории. Или oscam --help покажет дефолтный путь компиляции.

Конвертация клиентской линии CCcam в reader OScam

Принцип миграции cccam to oscam такой: сначала переносим одну линию, проверяем что она живая через веб-интерфейс, и только потом переносим остальные. Не нужно конвертировать весь конфиг сразу, ловить непонятные ошибки и не знать, от какой строки они идут.

Пример: C: line → [reader] с protocol = cccam

Исходная строка в CCcam.cfg:

C: myserver.example.com 12000 myuser mypassword

Становится блоком в oscam.server:

[reader]
label         = upstream_cccam_01
protocol      = cccam
device        = myserver.example.com,12000
user          = myuser
password      = mypassword
cccversion    = 2.3.0
cccmaxhops    = 5
cccwantemu    = 0
inactivitytimeout = 30
reconnecttimeout  = 30
group         = 1
caid          = 0500,1810,0604

Поле label произвольное, только латиница без пробелов. group — ключевой параметр для связки с клиентами, об этом ниже.

Параметры cccversion, cccmaxhops, cccwantemu

cccversion — версия протокола CCcam, которую OScam объявляет апстриму при рукопожатии. По умолчанию ставят 2.3.0, но если апстрим ругается на CONNECTERROR — попробуй 2.2.1 или 2.1.4. Некоторые старые серверы не понимают версию выше 2.2.x.

cccmaxhops — максимальное число хопов (перепродаж) от карты до тебя. Чем больше хопов, тем выше ECM time. Ставь 5 как стартовое значение. Если апстрим честный — у тебя будет 1-2 хопа реально. Выше 8 — уже мусор, EC time будет 800ms+ и заморозки гарантированы.

cccwantemu = 1 — запрашивать у апстрима эмулированные CW. Для большинства реальных линий оставь 0. Нужно только если апстрим специально предоставляет эмуляцию для конкретных CAID.

group, caid, ident, services — управление тем, что отдаёт ридер

Параметр group — это связующее звено между ридерами и клиентами. Ридер с group = 1 будет доступен клиентам, у которых тоже есть group = 1 в oscam.user. Клиент с group = 2 не видит ридер с group = 1. Это главный механизм изоляции.

caid фильтрует по системе шифрования. Например, caid = 0500 — только Viaccess, 1810 — Nagravision 3. Если не указывать — ридер пробует все CAID, что неэффективно и замедляет работу.

inactivitytimeout = 30 и reconnecttimeout = 30 — OScam переподключится через 30 секунд если апстрим завис. В CCcam такого контроля не было вообще.

Проверка через веб-интерфейс: статус ENTITLEMENT и CONNECTED

После запуска OScam открой http://[ip-бокса]:8888. Вкладка Readers — там твой новый ридер. Статус должен быть CONNECTED. Если CONNECTERROR — проверяй cccversion, порт, логин/пароль, доступность хоста.

Кликни на имя ридера — увидишь вкладку ENTITLEMENT. Там список CAID и SID, которые отдаёт апстрим. Если список пустой при статусе CONNECTED — возможно, CAID не совпадают или апстрим ограничил права. Сравни с тем, что давал CCcam на том же апстриме.

Запусти канал, который точно дешифровался в CCcam. В oscam.log должна появиться строка вроде:

ECM upstream_cccam_01 found (120 ms) CW:...

120ms — нормально. 800ms — апстрим перегружен или много хопов. Буква E вместо found — ридер не смог дешифровать этот SID.

Настройка OScam как сервера для своих клиентов

Если к тебе подключаются клиенты — это настраивается в двух местах: oscam.conf задаёт протокол и порт, oscam.user описывает каждого клиента.

Блок [account] в oscam.user для каждого клиента

[account]
user          = client01
pwd           = secretpass
group         = 1
cccmaxhops    = 3
cccreshare    = 1
monlevel      = 0
au            = 1

group = 1 — клиент получает доступ к ридерам с group = 1. Если хочешь изолировать клиентов — давай разные группы и создавай ридеры под них. cccreshare — разрешить ли клиенту ре-шарить твои шары своим клиентам. Ставь 0 если не хочешь, чтобы линия расходилась дальше.

Протокол отдачи: cccam port в oscam.conf

В oscam.conf добавь секцию:

[cccam]
port          = 12000
version       = 2.3.0
reshare       = 1
minimizecards = 0
updateinterval = 240

Порт 12000 — распространённый выбор, но ничего магического в нём нет. Можешь поставить любой свободный выше 1024. Главное — открыть его в firewall и пробросить на роутере если клиенты внешние. ufw allow 12000/tcp или аналог для твоей системы.

Важный момент: если при тестировании OScam ты ещё не остановил CCcam, они будут конфликтовать на одном порту. Либо измени порт OScam на что-то другое (например, 12001) на время теста, либо останови CCcam. Порт не может слушаться двумя демонами одновременно.

newcamd: ключ DES, порт и caid в [newcamd]

[newcamd]
port          = 15000@0500:000000
key           = 0102030405060708091011121314

Формат порта: номер@CAID:ident. Можно задать несколько портов для разных CAID. Ключ DES — 28 hex-символов, должен совпадать у клиента и сервера. Клиент с N: строкой в своём CCcam.cfg подключается к этому порту.

Так работает смешанная конфигурация: одни клиенты ходят на порт 12000 по CCcam-протоколу, другие — на 15000 по newcamd. OScam обслуживает оба потока одновременно без каких-либо проблем.

Ограничение через group, caid, sid

Хочешь дать клиенту только Viaccess, но не Nagravision? В блок [account] добавь caid = 0500. Хочешь ограничить конкретными каналами — создай файл oscam.services с блоком сервисов и укажи его через services =. Это гораздо гибче, чем система блокировок в CCcam.

Запуск, логи и проверка работоспособности

Минимальный oscam.conf для старта — секция [global] с путём к логу и секция [webif] для веб-интерфейса:

[global]
logfile       = /var/log/oscam/oscam.log
maxlogsize    = 1000
debug         = 0

[webif]
httpport      = 8888
httpuser      = admin
httppwd       = adminpass
httpallowed   = 127.0.0.1,192.168.1.0-192.168.1.255

Запуск демона и автозагрузка на Enigma2

Вручную: /usr/bin/oscam -c /var/etc/oscam -b (флаг -b — фон). На Enigma2 с установленным через плагин OScam: Settings → Plugins → OScam → Start. Автозапуск добавляется через init.d скрипт, который обычно создаётся при установке плагина автоматически.

Проверить что запустился: ps | grep oscam должен вернуть строку с процессом. Если нет — смотри oscam.log на ошибки запуска, обычно это неверный путь к конфигу или синтаксическая ошибка в файле.

Чтение oscam.log: ecm time, decode, CW

Успешное декодирование выглядит так:

2026/05/30 14:23:45 c (client01) ECM upstream_cccam_01 found (85 ms)

Неудача:

2026/05/30 14:23:45 c (client01) ECM not found (all readers)

85ms ECM time — хорошо, канал будет без заморозок. 300ms — пограничное значение, иногда будут фризы. 600ms+ — линия не тянет, ищи другой ридер или снижай cccmaxhops. ECM time выше 1500ms почти гарантированно даёт постоянные черные экраны.

Веб-интерфейс: вкладки Readers, Users, Status

Readers — статус каждого ридера, текущий ECM time, число успешных/неуспешных дешифровок за сессию. Users — кто подключён, что смотрит, ECM time для каждого клиента. Status — общая картина: сколько всего ECM запросов, процент успешных, активные потоки.

Если ридер постоянно переходит между CONNECTED и CONNECTERROR — апстрим нестабилен или неверно настроен inactivitytimeout. Попробуй увеличить до 60.

Контроль ECM time и процента дешифровки

Для включения подробного лога в oscam.conf: debug = 64 (только ECM) или debug = 255 (всё). Но debug = 255 на постоянной основе — плохая идея: лог разрастётся до сотен мегабайт за час. Включай для диагностики, потом возвращай debug = 0.

Как выбрать качественный источник шар

Технически OScam настроен, но качество работы напрямую зависит от того, что подключено через oscam.server. Плохой источник никакая настройка не спасёт.

Критерии: стабильный uptime, низкий ECM time, малое число хопов

Реальный uptime смотри не по заявлению провайдера, а по своему oscam.log: считай сколько раз ридер переходил в CONNECTERROR за сутки. Нормальный источник — 1-2 переподключения в сутки максимум, обычно вообще ноль. Если счётчик reconnects в веб-интерфейсе за день двузначный — источник нестабилен.

ECM time должен быть стабильно низким, не скачущим. Средний 80-150ms при стабильном пике до 250ms — хорошо. Если средний 400ms — либо апстрим перегружен, либо слишком много хопов до реальной карты.

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

Перед подключением уточни, какие именно CAID предоставляет источник. Canal Digitaal — CAID 0500, Sky — 0963/09C4, Tivusat — 0500 с определёнными ident. Если тебе нужен конкретный пакет, а источник работает только по другому CAID — он тебе не подойдёт, даже если стабильный.

Смотри в ENTITLEMENT через веб-интерфейс OScam — там видно, что реально отдаёт подключённый ридер, без гадания.

Прозрачность по протоколам и лимитам reshare

Хороший источник чётко указывает: какой протокол (CCcam/newcamd), порт, ограничения по reshare и числу одновременных подключений. Если тебе дают линию без явного запрета reshare, это не значит что reshare разрешён — за него могут забанить без предупреждения.

Про cccreshare и cccmaxhops: если ты ресейлишь шары дальше с большим числом хопов — апстрим это видит. Линия с cccmaxhops = 1 у апстрима не пустит тебя дальше одного хопа физически. Не пытайся обходить — бан по IP быстрый и часто постоянный.

Признаки нестабильного источника

Частые freeze на конкретных каналах при нормальном ECM time у остальных — признак перепродажи линий с разными CAID от разных карт. Часть карт работает, часть нет.

Высокое число хопов (8+) в ENTITLEMENT — линия прошла через много перепродавцов. ECM time будет плохой, и вся цепочка рассыпается при малейшей нестабильности в середине. Такие линии дешевле, но в реальной работе создают больше проблем, чем экономят денег.

Если ECM time нормальный, но канал всё равно замерзает — проблема может быть не в линии, а в cccmaxhops на стороне OScam. Увеличь до 8-10, перезапусти и проверь.

Итог по переходу

Полный переход cccam to oscam занимает час-два при наличии рабочего конфига. Главное — не конвертировать всё сразу, а делать по одной линии с проверкой через веб-интерфейс. После того как убедился что OScam стабильно держит все ридеры — CCcam можно отключать насовсем. Возврата обычно не хочется: логи, веб-мониторинг и гибкость по протоколам делают своё дело.

Можно ли использовать существующий CCcam.cfg напрямую в OScam?

Нет, форматы несовместимы. OScam не читает CCcam.cfg — он использует свой набор файлов: oscam.conf, oscam.server, oscam.user. Строки C:, N:, F: из CCcam нужно вручную переписать в блоки [reader] с параметром protocol =. Логика та же, синтаксис другой. Прямого импорта или автоконвертера нет.

Чем oscam.server отличается от oscam.user?

oscam.server — это апстримы и карты, к которым подключаешься ты (исходящие соединения). oscam.user — это клиенты, которые подключаются к тебе (входящие аккаунты). Это главная точка путаницы при миграции cccam to oscam: CCcam держал всё в одном файле, OScam разделяет по роли. Если ты сделал блок в неправильном файле — или апстрим не подключится, или клиент не авторизуется.

Какой порт использовать для протокола CCcam в OScam?

Порт задаётся в секции [cccam] файла oscam.conf параметром port. Стандартно используют 12000, но это не фиксированное значение — подойдёт любой свободный порт выше 1024. Порт нужно открыть в firewall (ufw allow 12000/tcp) и пробросить на роутере, если клиенты подключаются извне.

Что делать, если ридер показывает CONNECTERROR?

Последовательность проверки: 1) телнет на порт апстрима (telnet host 12000) — доступен ли хост вообще; 2) проверить логин/пароль; 3) попробовать другую cccversion (2.2.1 вместо 2.3.0); 4) проверить firewall на своей стороне. Смотри oscam.log с debug = 64 — там будет конкретная причина: timeout, auth failed, wrong protocol.

Высокий ECM time после перехода — в чём причина?

Первое что проверяем: cccmaxhops в ридере. Поставь 3-4 и посмотри изменится ли. Если нет — апстрим сам по себе медленный: проверь ECM time через ENTITLEMENT в веб-интерфейсе, там видно среднее по ридеру. Также влияет порядок ридеров: OScam пробует их последовательно, если приоритетный ридер медленный — все ECM будут идти через него. Настрой caid и ident в ридерах чтобы запросы шли сразу к нужному.

Можно ли одновременно отдавать шары по CCcam и newcamd?

Да, и это одно из ключевых преимуществ OScam перед CCcam. Активируй обе секции в oscam.conf: [cccam] с одним портом и [newcamd] с другим. Клиенты в oscam.user подключаются к нужному порту по своему протоколу — OScam разруливает всё внутри. Никаких дополнительных демонов не нужно.

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.