Настройка mgcamd 1.26: конфиг и параметры
Если вы уже установили эмулятор на ресивер и теперь смотрите на пустой экран — эта статья для вас. Здесь разобран mgcamd 1.26 config полностью: какие файлы нужны, где они должны лежать, как правильно заполнить каждую строку и что делать, когда коннект есть, а каналы всё равно не открываются.
Я прошёл через всё это на Vu+ Duo2 с OpenATV 6.4, так что примеры будут конкретные, не абстрактные.
Какие файлы конфигурации нужны для mgcamd 1.26
mgcamd не использует единый конфигурационный файл. Вместо этого он читает несколько файлов из фиксированного каталога — и если файл отсутствует или лежит не там, эмулятор либо запускается с дефолтами, либо вообще не стартует нормально.
Расположение файлов: /usr/keys/ и /var/keys/
Стандартный путь на большинстве Enigma2-образов — /usr/keys/. Но некоторые сборки (особенно старые VTi и часть PLi-образов) читают из /var/keys/. Это классическая ловушка: файлы положены в одно место, эмулятор смотрит в другое.
Чтобы не гадать, проверьте лог запуска. После старта mgcamd пишет что-то вроде:
mgcamd reading config from /usr/keys/
Если хотите убедиться на уровне системы — strace -e trace=open,openat mgcamd 2>&1 | grep keys покажет, какие пути реально открываются. Права на каталог: chmod 755 /usr/keys/, на файлы: chmod 644.
Назначение mg_cfg, newcamd.list, priority.list, ignore.list
| Файл | Обязателен | Назначение |
|---|---|---|
| mg_cfg | Нет (дефолты) | Основные параметры эмулятора: таймауты, кэш, EMM, логирование |
| newcamd.list | Да | Список CWS-серверов для подключения по протоколу newcamd |
| priority.list | Нет | Приоритет опроса серверов/карт по caid и provid |
| ignore.list | Нет | Блокировка ECM-запросов на определённые caid |
Без newcamd.list запускать эмулятор бессмысленно — подключаться просто некуда. Все остальные файлы влияют на скорость и стабильность, но без них mgcamd хотя бы стартует.
Файлы SoftCam.Key и AutoRoll.Key
Эти файлы нужны не для newcamd-соединения, а для локального декодирования FTA-каналов с открытыми ключами. SoftCam.Key содержит статические ключи (Biss, Viaccess и другие). AutoRoll.Key — для автоматического обновления Irdeto autoroll. Если у вас чисто серверная схема (newcamd-линия), эти файлы опциональны.
Важный момент: SoftCam.Key должен быть в LF-формате, не CRLF. Если файл создан или отредактирован в Windows через Блокнот, mgcamd может прочитать его как пустой или с мусорными строками. Проверяйте через file SoftCam.Key — должно быть "ASCII text", не "ASCII text, with CRLF".
Настройка newcamd.list: подключение к серверу
Это главный файл для подключения. Одна строка — один сервер. Ошибка в любом поле — и либо LOGIN FAILED, либо вообще нет коннекта.
Синтаксис строки CWS: host port user pass key
Строка выглядит так:
CWS = hostname.example.com 15000 myuser mypassword 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Разбор по полям:
- CWS — ключевое слово, обязательно
- hostname.example.com — хост или IP сервера
- 15000 — порт (диапазон 12000–15000, конкретный — смотрите в данных подключения)
- myuser / mypassword — логин и пароль, выдаются вместе с линией
- 01 02 ... 14 — 14-байтный DES-ключ
Домен лучше IP-адреса, если у провайдера сервера динамический адрес. Прописать IP вместо домена — и после первой смены адреса на стороне сервера всё падает. Домен резолвится автоматически при каждом переподключении.
14-байтный DES-ключ (deskey) и его формат
Это не произвольная строка — это именно 14 hex-байт через пробел, которые задаёт сторона сервера. Ключ должен совпадать байт в байт. Две типичных проблемы:
- Скопирован с лишним пробелом в начале или конце строки
- Буквы в верхнем регистре вместо нижнего (или наоборот — зависит от реализации)
При ошибке в deskey логин может технически пройти (TCP-соединение установлено), но обмен ECM будет ломаным — ресивер получает мусор вместо контрольных слов. Внешне это выглядит как "коннект есть, но каналы не открываются".
Всегда копируйте deskey из источника целиком, избегайте ручного ввода.
Несколько серверов и порядок перебора
В newcamd.list можно прописать несколько CWS-строк:
CWS = primary.example.com 15000 user1 pass1 01 02 03 04 05 06 07 08 09 10 11 12 13 14 CWS = backup.example.com 13000 user2 pass2 01 02 03 04 05 06 07 08 09 10 11 12 13 14
mgcamd подключается к ним последовательно, начиная с первой строки. Если основной сервер не отвечает в течение таймаута из mg_cfg, эмулятор переходит к следующему. Таймаут переключения по умолчанию — около 5 секунд, но это зашивается в mg_cfg.
Если основная линия "умерла", а резервная не прописана — ресивер просто зависает на чёрном экране и ждёт. Лучше всегда иметь хотя бы одну запасную строку.
Параметры CWS_KEEPALIVE и CWS_INCOMING_PORT
CWS_KEEPALIVE — интервал keepalive-пинга для поддержания соединения. Если сервер разрывает неактивные соединения (firewall с idle timeout), уменьшите значение до 30–60 секунд.
CWS_INCOMING_PORT задаёт локальный порт, на котором mgcamd слушает входящие newcamd-соединения — актуально, если используете mgcamd как сервер для других клиентов. Для обычного клиентского использования этот параметр не нужен.
Разбор mg_cfg: ключевые параметры
Вот где большинство людей застревают. mg_cfg не выглядит как обычный конфиг с понятными ключами — он использует hex-значения по позициям. Скопировать чужой и надеяться, что заработает — плохая стратегия.
Секции конфига и формат hex-значений
Файл разделён на секции, каждая начинается с буквы и двоеточия. Значения — hex-числа, разделённые пробелами. Пример минимального рабочего mg_cfg для версии 1.26:
M: { 01 00 }
C: { 0A 05 }
G: { 00 }
L: { 01 }
Каждая позиция внутри фигурных скобок — отдельный параметр. Нет подписей — только позиция и значение.
M: и C: — таймауты и кэш
| Секция | Позиция | Значение | Описание |
|---|---|---|---|
| M: | 0 | 01 | Уровень отладки (00 — выкл, 01 — базовый, FF — полный) |
| M: | 1 | 00 | EMM-обработка (00 — выкл, 01 — вкл) |
| C: | 0 | 0A | Таймаут ECM в секундах (0A = 10 сек) |
| C: | 1 | 05 | Размер ECM-кэша (05 = 5 записей) |
Таймаут ECM — критичный параметр. Слишком большой (больше 10 секунд) — ресивер долго ждёт ответа, экран черный. Слишком маленький (меньше 3 секунд) — эмулятор считает запрос неудачным раньше, чем сервер успел ответить.
G: (gbox/share) и работа с emm
Секция G: управляет gbox-протоколом и share-настройками. Для чистой newcamd-схемы достаточно G: { 00 } — отключить всё лишнее. Если включить EMM (секция M:, позиция 1 = 01), эмулятор начнёт передавать EMM-данные серверу для обновления карты. Нужно ли это — зависит от того, что поддерживает ваша линия. Для большинства newcamd-провайдеров EMM не нужен и только создаёт трафик.
Логирование: уровень и вывод в файл
Секция L: управляет логированием. L: { 01 } — вывод в syslog. L: { 03 } — вывод в файл /tmp/mgcamd.log. При диагностике лучше выставить полный дебаг:
M: { FF 00 }
L: { 03 }
После диагностики верните M: { 01 00 } — иначе лог разрастётся быстро.
И главное предупреждение: mg_cfg от версии 1.38 или от Gbox-сборок не совместим с 1.26. Формат позиций менялся между ревизиями. Скопировать чужой mg_cfg без понимания — значит получить непредсказуемое поведение. Используйте конфиг именно для своей версии и проверяйте каждый параметр.
priority.list, ignore.list и ускорение переключения каналов
Многие настраивают эти файлы в последнюю очередь или вообще игнорируют. Это ошибка, если у вас несколько CWS-строк или один транспондер с несколькими провайдерами.
Формат caid:provid в priority.list
Синтаксис простой:
P: 0500:000000 P: 0604:000000 P: 1830:000000
Каждая строка — caid и provid через двоеточие. mgcamd опрашивает серверы в том порядке, в котором они перечислены в priority.list. Строка выше в файле — выше приоритет. Если нужный caid стоит третьим в списке, ресивер опросит двух "неправильных" перед тем, как добраться до рабочего — это реальные секунды ожидания при переключении.
caid и provid конкретного канала можно посмотреть в плагине Service Info на Enigma2 (кнопка Info → вкладка PIDs) или через dvbsnoop.
Когда нужен ignore.list
Если у вас на транспондере идут каналы с caid, которого нет на вашей линии, — mgcamd будет слать ECM-запросы на все серверы и ждать таймаута по каждому. Это тормозит всё. ignore.list блокирует эти запросы на уровне эмулятора:
I: 0100:000000 I: 0263:000000
Формат тот же, что и в priority.list, только с I:. Добавляйте сюда caid, которых на вашей линии точно нет — и скорость отклика заметно вырастет.
Снижение времени отклика ECM
Практический сценарий: транспондер несёт три пакета с разными caid — 0500, 0604 и 1830. Ваша линия работает только с 0500. Без priority.list и ignore.list эмулятор тратит время на запросы к 0604 и 1830, каждый из которых идёт до таймаута. С правильно настроенными файлами:
- priority.list:
P: 0500:000000— стоит первым - ignore.list:
I: 0604:000000иI: 1830:000000
Время переключения канала падает с 4–8 секунд до 1–2. Это не маркетинг — я замерял на том же ресивере до и после.
Диагностика: почему не открываются каналы
Разберём по шагам. Не "проверьте всё подряд", а конкретный алгоритм.
Чтение лога mgcamd и коды состояния CWS
Сначала включите полный дебаг в mg_cfg (M: { FF 00 }, L: { 03 }) и перезапустите эмулятор. Смотрите /tmp/mgcamd.log или tail -f /tmp/mgcamd.log.
Что искать:
CWS connectedилиCONNECTED— TCP-соединение установленоLOGIN OK— логин прошёл, всё нормально до этой точкиLOGIN FAILED— неверный логин, пароль или deskeycard not found— коннект есть, но нужной карты/провайдера на линии нетECM timeout— сервер не ответил вовремя
Разница между "нет коннекта" и "коннект есть, но нет dcw" — принципиальная. В первом случае проблема в сети, пароле или deskey. Во втором — линия рабочая, но не содержит карту для нужного канала или caid не совпадает.
Проверка соединения: telnet/nc на порт сервера
Прежде чем копаться в конфигах, убедитесь, что порт вообще доступен:
nc -zv hostname.example.com 15000
Если Connection refused или таймаут — проблема на уровне сети или сервер недоступен. Конфиги здесь ни при чём. Если соединение открывается, но LOGIN FAILED — смотрите логин, пароль и deskey.
На некоторых образах Enigma2 nc нет — установите через opkg install netcat или используйте telnet hostname.example.com 15000.
Ошибка 'card not found' и неверный caid
Это самая частая причина "коннект есть, каналы не открываются". Логин прошёл, но DCW (контрольные слова) не приходят.
Проверочный алгоритм:
- Узнайте реальный caid канала через Service Info на ресивере
- Сверьте с тем, что поддерживает ваша линия (уточните у провайдера линии)
- Проверьте priority.list — возможно, нужный caid там отсутствует или в ignore.list
Частая ошибка: канал вещает в Viaccess (caid 0500), а линия выдаёт только Irdeto (0604). Никакие правки конфига не помогут — нужна другая линия.
Конфликт нескольких cam одновременно
Если на ресивере одновременно запущены CCcam и mgcamd — они конкурируют за ECM-запросы и порты. Внешне это может выглядеть как случайное открытие каналов или бесконечное ожидание.
Проверьте запущенные cam:
ps | grep -E 'mgcamd|cccam|oscam'
Оставьте только один активным. Если нужны оба — разведите роли: один как локальный клиент (mgcamd), второй как сервер (OScam), и подключите mgcamd к локальному OScam через 127.0.0.1. Но для базовой настройки это лишнее — отключите всё, кроме mgcamd.
Один нюанс про mgcamd 1.26 config при работе с несколькими cam: локальный порт CWS_INCOMING_PORT не должен совпадать с портом, который слушает другой эмулятор. Конфликт портов — ещё один источник молчаливых сбоев.
Где должны лежать файлы конфигурации mgcamd 1.26?
Стандартный путь — /usr/keys/ на большинстве Enigma2-образов. Часть сборок (VTi, некоторые PLi) использует /var/keys/. Точный путь проверяется по логу запуска — mgcamd пишет, откуда читает конфиг. Если файлы положены не туда, эмулятор просто не увидит их и стартует с дефолтами.
Почему mgcamd подключается к серверу, но каналы не открываются?
Скорее всего, логин прошёл, но на линии нет нужной карты или провайдера. Проверьте реальный caid канала через Service Info, сверьте с тем, что поддерживает ваша линия. Также проверьте priority.list — нужный caid должен там быть, а не в ignore.list. Это не проблема сети, а несоответствие карт.
Что означает 14-байтный ключ в newcamd.list?
Это DES-ключ протокола newcamd (deskey) — 14 hex-байт через пробел. Он задаётся на стороне сервера и должен совпадать побайтово с тем, что у вас в строке CWS. Ошибка в одном байте — LOGIN FAILED или мусор в обмене ECM. Копируйте ключ целиком, не вводите вручную.
Чем mg_cfg отличается между версиями mgcamd?
Формат hex-позиций менялся между ревизиями 1.x. Конфиг от 1.38 или Gbox-сборок не совместим с 1.26 — параметры могут стоять на других позициях или иметь другой смысл. Нельзя слепо копировать чужой mg_cfg без проверки версии, под которую он написан.
Можно ли запускать mgcamd 1.26 вместе с OScam или CCcam?
Технически да, но возможен конфликт за ECM-запросы и порты. Лучше не запускать два cam параллельно без чёткого разделения ролей. Рабочая схема: OScam как сервер на отдельном порту, mgcamd подключается к нему через 127.0.0.1. Для первоначальной настройки оставьте только mgcamd и разберитесь с ним.
Какой порт указывать в строке CWS?
Порт задаёт сторона сервера — конкретное значение берётся из данных подключения к вашей линии. Типичный диапазон 12000–15000, но это не правило. Доступность порта проверяется через nc -zv hostname port или telnet hostname port. Если порт недоступен — проблема не в конфиге, а в сети или сервере.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.