OScam EMU: пошаговая настройка на русском (2026)
Если вы впервые столкнулись с OScam EMU и не понимаете, почему каналы остаются чёрными несмотря на вроде бы правильные конфиги — эта статья для вас. Здесь собрана oscam emu настройка пошагово на русском: от структуры каталогов до диагностики зависших ECM. Без воды, с реальными примерами конфигов и путями файлов.
Что такое OScam EMU и чем он отличается от обычного OScam
OScam в базовой версии — это сервер условного доступа (CAS), который принимает и раздаёт CW-ключи по сети через протоколы newcamd, cccam, cs378x и другие. Ему нужна либо смарт-карта, либо подключение к внешнему серверу, который эту карту держит. Сам он ничего не декодирует.
OScam-EMU — это форк с патчем, добавляющим внутренний reader типа emu. Этот reader умеет декодировать ECM-запросы локально, без карты и без сетевого соединения, используя ключи из файла SoftCam.Key. Грубо говоря: обычный OScam — маршрутизатор CW, EMU-сборка — ещё и локальный декодер.
Внутренний эмулятор (Stream Relay / EMU reader)
В коде EMU-форка появляется модуль Emulator (иногда называемый Stream Relay). Он регистрируется как обычный reader внутри OScam, но вместо обращения к карте или серверу — смотрит в базу ключей на диске. Для остальной системы это прозрачно: reader отвечает на ECM как любой другой.
Чем EMU-сборка отличается от стандартного OScam
Стандартный бинарник OScam не знает протокола emu. Если попытаться создать reader с protocol = emu в обычной сборке — он просто не запустится или выдаст ошибку в логе. EMU-сборка добавляет этот протокол как нативный модуль. Проверить наличие модуля можно командой oscam -V — в выводе должна быть строка with EMU.
Какие CAS поддерживает эмуляция
Эмулятор работает только с системами, чьи алгоритмы декодирования известны и реализованы в коде. На 2026 год это: BISS/BISS2 (caid 2600/2610), PowerVU (0E00), Tandberg (1010), DRE (4AE1), Nagra (1801 — частично), Viaccess (0500 — ограниченно). Widevine, Irdeto последних поколений, Sky NDS — нет.
BISS — самый надёжный вариант: статичный ключ, не меняется, работает всегда если ключ правильный. PowerVU и Nagra сложнее — ключи периодически обновляются через EMM, и без корректного au = 1 через некоторое время картинка пропадёт.
Когда EMU работает без сервера, а когда нужен reader
Для BISS-каналов с открытыми или известными ключами — EMU полностью автономен. Добавил ключ в SoftCam.Key, перезагрузил reader, смотришь. Для платных пакетов с динамическим CAS — нужен сетевой reader (cccam, newcamd) или физическая карта. EMU здесь не поможет: он не умеет «взламывать» системы на лету.
Установка OScam EMU: сборка, бинарник и структура каталогов
Первый шаг любой настройки — убедиться, что у вас вообще EMU-сборка, а не стандартная. Это звучит очевидно, но процентов 40 вопросов на форумах — именно об этом. Человек скачал первый попавшийся бинарник, настроил EMU reader, ничего не работает.
Выбор готового бинарника под архитектуру
Архитектуры бывают разные: mipsel — старые ресиверы Dreambox 800/8000, arm (armv7) — Vu+ Duo2, Solo4K и масса китайских приставок, aarch64 — современные 64-битные ресиверы (Vu+ Uno 4K SE, Formuler), x86_64 — PC/VirtualBox. Перепутать arm и aarch64 — демон молча не стартует, никаких сообщений об ошибке не будет.
При выборе бинарника смотрите на: дату сборки (актуальность важна для поддержки новых форматов ключей), наличие строки with EMU в описании, открытый changelog. Если changelog закрыт — не берите.
Стандартные пути: /etc/tuxbox/config/ и /usr/keys/
На Enigma2-ресиверах конфиги OScam обычно лежат в /etc/tuxbox/config/oscam-emu/ или просто в /etc/tuxbox/config/. На некоторых дистрибутивах (OpenATV, OpenPLi) путь может быть /etc/oscam/. Файлы ключей традиционно хранятся в /usr/keys/SoftCam.Key — это стандарт де-факто для большинства softcam на Enigma2.
На PC/сервере под Linux конфиги кладут в /etc/oscam/, а ключи — куда удобно, путь потом прописывается вручную. Об этом ниже.
Права на запуск и проверка версии
Бинарник должен быть исполняемым: chmod 755 /usr/bin/oscam. Проверка версии:
oscam -V 2>&1 | grep -i emu
Должно вернуть строку с with EMU. Если пусто — либо не та сборка, либо бинарник для другой архитектуры и просто не запускается. Проверьте: file /usr/bin/oscam — покажет, под какую архитектуру собран.
Webif доступен по адресу http://IP_ресивера:8888 после запуска. Там же, во вкладке About, видно список скомпилированных модулей — ищите строку Emulator.
Автозапуск через init.d / systemd / enigma2
На Enigma2 — скрипт в /etc/init.d/oscam, обычно уже идёт в комплекте с плагином. На systemd-системах создайте unit-файл в /etc/systemd/system/oscam.service с ExecStart=/usr/bin/oscam -c /etc/oscam и включите его командой systemctl enable oscam. Важно: убедитесь, что другой softcam (CCcam, mgcamd) не запускается параллельно — это частая причина конфликта DVB API.
Настройка конфигов: oscam.conf, oscam.server и oscam.user
Вот здесь большинство инструкций дают голые блоки конфигов без объяснений. Я постараюсь не просто показать параметры, но и рассказать, что именно каждый из них делает — иначе при первой же нестандартной ситуации вы застрянете снова.
oscam.conf: секции [global], [webif] и [emu]
Минимальный рабочий oscam.conf:
[global]
logfile = /tmp/oscam.log
loghistorysize = 4096
maxlogsize = 1024
pidfile = /var/run/oscam.pid
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
httphideidleclients = 1
[dvbapi]
enabled = 1
user = dvbapi
au = 1
boxtype = dreambox
mode = 0
[emu]
key_database_path = /usr/keys/
Секция [emu] — специфична для EMU-сборки и в стандартном OScam отсутствует. Параметр key_database_path говорит демону, где искать SoftCam.Key. Если не указать — ищет в каталоге конфигов.
Параметр boxtype в [dvbapi] влияет на то, как OScam общается с демультиплексором. Для Dreambox — dreambox, для Vu+ и большинства Enigma2 — dreambox тоже работает, но некоторые прошивки требуют enigma2 или generic. Если картинка не идёт — попробуйте поменять именно этот параметр.
oscam.server: создание reader с protocol = emu
Файл oscam.server — место, где описываются все источники CW. EMU reader выглядит так:
[reader]
label = emulator
protocol = emu
device = emulator
caid = 2600,2610,0E00,1010,4AE1,0500,1801
group = 1
emmcache = 1,3,2,1
lb_weight = 100
Параметр protocol = emu — ключевой. Именно он превращает запись в EMU reader, а не обычный сетевой. Без EMU-сборки OScam его не распознает.
caid — список систем кодирования, которые этот reader будет обрабатывать. Если канал использует caid, которого здесь нет — reader его проигнорирует, ECM уйдёт дальше по цепочке или вернёт not found.
emmcache = 1,3,2,1 — включает кэш EMM-сообщений. Для BISS-каналов без обновления ключей это несущественно, для PowerVU — важно.
oscam.user: пользователь и привязка group
[account]
user = dvbapi
pwd =
group = 1
au = 1
uniq = 0
Пользователь dvbapi — технический, используется DVB API-подключением. group = 1 должен совпадать с группой в reader. Если группы не совпадают — клиент не видит reader, и в логах появится rejected.
au = 1 в секции пользователя разрешает получение EMM-обновлений через этого клиента. Без этого ключи от PowerVU и подобных систем устареют через время.
Параметры key_database_path и SoftCam.Key
OScam EMU ищет ключи в нескольких местах по приоритету: сначала по пути из key_database_path, потом в каталоге конфигов, потом в /usr/keys/. Лучше всегда явно указывать путь в секции [emu] — меньше неожиданностей.
Важный момент: файл должен быть доступен для чтения пользователю, от которого запущен OScam. Если права выставлены только для root (-rw------- root root), а демон работает под другим пользователем — он файл просто не увидит.
Включение DVB API для приставок
Параметр mode в секции [dvbapi] определяет способ связи с Enigma2. Значение 0 — автоопределение, 1 — через сокет, 2 — через PMT файлы. В большинстве случаев mode = 0 или mode = 1 работает нормально. Если OScam стартует, webif открывается, но ни один канал не декодируется — смените mode.
Ключи эмуляции: SoftCam.Key, constant.cw и обновление BISS
Файл SoftCam.Key — база данных ключей для EMU. Формат строк различается в зависимости от типа CAS. Ошибка хотя бы в одном символе — ключ не читается, канал не открывается.
Формат строк SoftCam.Key
BISS (caid 2600):
F 1A2B 00 1122334455667788
Здесь: F — тип BISS, 1A2B — SID канала в hex, 00 — индекс ключа, 1122334455667788 — 8-байтный ключ (16 hex-символов).
PowerVU (caid 0E00):
P 001122 00 0102030405060708090A0B0C0D0E0F10
Nagra (caid 1801):
N 001122 00 0102030405060708
Строки чувствительны к регистру и пробелам. Лишний пробел в конце строки не вызовет ошибку, но неправильный разделитель — вызовет. Лучше проверять файл в hex-редакторе, если ключ «не видится».
Где OScam ищет файл ключей
Как уже упоминалось: путь из key_database_path имеет приоритет. Если параметр не задан — демон ищет в папке конфигов, потом в /usr/keys/. На Enigma2-ресиверах традиционный путь /usr/keys/SoftCam.Key работает без дополнительных настроек, если директория существует.
Ручное добавление BISS-ключа для конкретного канала
SID канала можно узнать в webif OScam — при попытке декодирования он отображается в логе ECM-запросов. Или через плагин на ресивере вроде ServiceInfo. Добавляете строку в SoftCam.Key, сохраняете файл, жмёте «Reload» в webif (вкладка Readers → кнопка Reload для reader emulator). Перезапускать весь OScam не нужно.
Автообновление ключей через au и EMM
Для систем с обновляемыми ключами (PowerVU, отдельные Nagra-каналы) нужно: au = 1 в секции reader и au = 1 в секции пользователя. OScam будет перехватывать EMM-пакеты из потока и обновлять ключи автоматически.
Но есть нюанс: если на ресивере сбито системное время — EMM с временными метками будут отбракованы как устаревшие. Симптом: первые минуты после запуска всё работает (используется последний сохранённый ключ), потом картинка пропадает. Проверьте date на ресивере и синхронизацию NTP.
Перезагрузка ключей без перезапуска
Webif → вкладка Readers → найдите строку с reader emulator → кнопка в столбце Action (иконка обновления). Либо через HTTP API: http://IP:8888/oscamapi.html?part=readreader&label=emulator. Это не перезапускает демон и не рвёт активные соединения.
Проверка, логи и отладка: почему каналы остаются чёрными
«ECM found, экран чёрный» — это, пожалуй, самый частый вопрос. И почти нигде нормально не разобран. Давайте по порядку.
Включение детальных логов
В oscam.conf секция [global]:
logfile = /tmp/oscam.log
loghistorysize = 4096
maxlogsize = 2048
Уровень отладки меняется в webif (вкладка Config → Log → поле Debug) или флагом при запуске: oscam -d 65535 -c /etc/oscam. Значение 65535 — максимум, выдаёт всё включая EMM-трафик. Для обычной диагностики достаточно 255.
Чтение oscam.log: ECM, found/not found, CW
Строка успешного декодирования выглядит примерно так:
2026/01/15 14:23:01 c (dvbapi) found (44 ms) by emulator
Строка провала:
2026/01/15 14:23:01 c (dvbapi) not found (15 ms)
Если видите not found — либо нет ключа для этого SID/caid, либо caid канала не входит в список reader, либо формат ключа неверный. Посмотрите на caid в запросе — он указан в той же строке лога.
Статус в webif: вкладки Readers, Clients, Status
Вкладка Readers — видно, активен ли reader emulator, сколько ECM обработал, какой процент успешных. Если статус ERROR — ищите опечатку в protocol или device в oscam.server. Чаще всего пишут protokol или device = emu вместо device = emulator.
Вкладка Clients — показывает DVB API-клиента. Если его нет в списке вообще — OScam не видит Enigma2/демультиплексор, проблема в [dvbapi] секции или конфликт с другим softcam.
Команда oscam -d и проверка DVB API подключения
Запустите OScam в foreground с логом в консоль:
oscam -d 255 -c /etc/oscam -f
В выводе сразу после старта должна быть строка вида dvbapi: opened device /dev/dvb/adapter0/demux0. Если её нет — DVB API не подключился. Причины: нет прав на /dev/dvb/, другой процесс держит устройство, неверный mode.
Типовые ошибки и их симптомы
- Параллельно запущен CCcam или mgcamd — они первыми захватывают DVB API, OScam не получает ECM вообще. Решение: остановить все softcam кроме OScam,
killall mgcamd; killall CCcam. - caid не совпадает — в reader прописан 2600, а канал идёт по 2610. В логе виден реальный caid запроса — добавьте его в список.
- Нет au, ключ устарел — первые часы работает, потом нет. Включите au = 1 для EMM-систем.
- Неверный ключ в SoftCam.Key — ECM found (значит ключ нашёлся), но CW неверный, декодирование не работает. Проверьте ключ посимвольно.
- Права только для чтения на /usr/keys/ — au не может записать обновлённый ключ. Сделайте файл доступным для записи:
chmod 644 /usr/keys/SoftCam.Key.
Как выбрать провайдера/источник, если EMU недостаточно
Когда локальной эмуляции не хватает и нужен внешний reader
EMU покрывает только каналы с известными ключами и поддерживаемыми CAS. Всё, что работает на современных динамических системах (полноценный Nagra, Irdeto, Viaccess последних версий) — EMU не возьмёт. Здесь нужен сетевой reader: cccam, newcamd, cs378x.
Критерии оценки источника без привязки к именам
На что смотреть при выборе внешнего источника: время ответа ECM (хорошо — до 300 мс, плохо — больше 800 мс), аптайм (меньше 99% — уже проблема для просмотра в прямом эфире), список поддерживаемых caid (убедитесь, что ваши каналы там есть), прозрачность условий подключения. Признак нестабильного источника — периодические фризы каждые 30-60 секунд: это означает, что ECM timeout на стороне сервера.
Признаки нестабильного источника
В логе OScam это выглядит как чередование found (280 ms) и timeout. Или постоянный found, но пинг в webif скачет от 100 до 2000 мс. Если видите в Clients периодические реконнекты — источник не держит соединение.
Локальный приоритет: emu reader выше сетевого
В oscam.server можно настроить так, чтобы OScam сначала пробовал EMU, и только если тот не нашёл ключ — обращался к сетевому reader. Для этого используется load balancer:
[reader]
label = emulator
protocol = emu
device = emulator
caid = 2600,2610,0E00
group = 1
lb_weight = 1000
[reader]
label = network_reader
protocol = cccam
device = server.example.com:12000
user = myuser
password = mypass
group = 1
lb_weight = 100
Больший lb_weight у EMU reader означает приоритет. Дополнительно в oscam.conf в секции [global] можно задать lb_mode = 1 (weighted random) или lb_mode = 5 (best latency). Для случая «сначала локальный» лучше подходит lb_mode = 1 с большим весом у EMU.
Такая конфигурация снижает нагрузку на сетевой источник и скорость ответа для каналов, которые EMU умеет декодировать — oscam emu настройка пошагово на русском всегда подразумевает этот шаг как финальный.
Частые вопросы
Как проверить, что моя сборка OScam поддерживает EMU?
Выполните в терминале oscam -V 2>&1 | grep -i emu. Если строка пустая — поддержки EMU нет. Альтернативно откройте webif → вкладка About: в списке скомпилированных модулей должен присутствовать Emulator. Нет строки — нужна другая сборка под вашу архитектуру (mipsel/arm/aarch64/x86_64).
Где OScam EMU ищет файл SoftCam.Key?
По умолчанию в каталоге конфигов OScam и в /usr/keys/. Явно задать путь можно параметром key_database_path = /usr/keys/ в секции [emu] файла oscam.conf. После любой правки SoftCam.Key нужно нажать Reload в webif (вкладка Readers) — перезапускать демон не требуется.
Почему ECM показывает 'found', но картинка всё равно чёрная?
OScam нашёл CW-ключ и отдал его, но DVB API не передал ключ в демультиплексор. Причины: параллельно запущен другой softcam (CCcam, mgcamd), который перехватил вывод; неверный boxtype в секции [dvbapi]; канал использует динамический CAS, где найденный «ключ» — устаревший кэш. Первым делом остановите все softcam кроме OScam и проверьте снова.
Нужен ли au = 1 для работы EMU?
Для статичных BISS-каналов — нет. Ключ берётся из SoftCam.Key и не меняется. Для систем с обновляемыми ключами по EMM (PowerVU, частично Nagra, DRE) — au = 1 обязателен как в секции reader, так и в секции пользователя oscam.user. Без него первые часы всё работает на закэшированном ключе, потом картинка пропадает.
Можно ли использовать OScam EMU и сетевую шару одновременно?
Да, именно так и рекомендуется. Создайте EMU reader и сетевой reader (cccam/newcamd) в oscam.server, оба в одной группе. Через lb_weight задайте EMU reader более высокий приоритет (например, 1000 против 100 у сетевого). OScam будет сначала пробовать локальную эмуляцию, и только при not found — обращаться к серверу.
Какой порт у веб-интерфейса OScam по умолчанию?
Порт 8888 — задаётся параметром httpport = 8888 в секции [webif] файла oscam.conf. Можно сменить на любой свободный. Обязательно задайте httpuser и httppwd — открытый webif без авторизации доступен всем в сети. Для дополнительной защиты используйте httpallowed = 127.0.0.1,192.168.1.0/24 для ограничения доступа по IP.
Если после всех этих шагов что-то всё ещё не работает — собирайте лог с debug = 255 и смотрите конкретные строки ECM-запросов: в них есть caid, SID и результат. Это всегда точнее любых догадок. Надеюсь, oscam emu настройка пошагово на русском в этом виде реально помогла разобраться, а не просто добавила ещё одну вкладку с нечитаемым конфигом.