/

DiSEqC для кардшаринга: настройка OScam/CCcam

Главная Статьи DiSEqC для кардшаринга: настройка OScam/CCcam

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

04.06.2026

DiSEqC для кардшаринга: настройка OScam/CCcam под мультифид

Если у тебя уже работает OScam или CCcam, антенны подключены через DiSEqC-переключатель, но часть каналов не открывается или фризит — скорее всего, проблема именно в связке между физической коммутацией сигнала и логикой распределения ECM-запросов. DiSEqC переключатель для кардшаринга — это не просто железо на мачте, это точка, где аппаратная и программная части должны работать синхронно. И здесь легко накосячить.

В этом материале — конкретные конфиги, реальные пути к файлам и алгоритм диагностики. Без воды.

Зачем DiSEqC важен именно для кардшаринга

Сервер шаринга — OScam или CCcam — понятия не имеет, куда смотрит твоя антенна в данный момент. Он работает только с тремя числами: caid:provid:ECMpid. Получил запрос — отдал ключ. Всё. Переключение спутника происходит на уровне тюнера по команде Enigma2, и сервер шаринга в этом процессе никак не участвует.

Проблема возникает, когда один и тот же caid вещает с нескольких спутников — например, провайдер раздаёт один пакет на двух орбитальных позициях. Ресивер запросил ключ, стоя не на той позиции, DiSEqC ещё не переключился или переключился в неверный порт — и ты получаешь либо timeout, либо чёрный экран.

Чем отличается простой приём от мультифида с шарингом

При обычном просмотре FTA-каналов DiSEqC ошибки почти не заметны — Enigma2 переключается, сигнал есть, канал открылся. С шарингом добавляется третье звено: ECM-запрос должен уйти к нужному ридеру именно в тот момент, когда тюнер уже стоит на правильном спутнике. Если коммутация не завершилась — запрос уйдёт без сигнала, ответ придёт, но расшифровать нечего.

Это критично для мультифидов, где Hotbird (13°E), Astra (19.2°E), Amos (4°W) и ещё пара позиций крутятся через один переключатель. Каждое переключение — это физическая задержка 100–300 мс, и она имеет значение.

DiSEqC 1.0, 1.1, 1.2 и Unicable — что выбрать

DiSEqC 1.0 держит до 4 позиций (порты A, B, C, D). Для большинства мультифидов этого достаточно. DiSEqC 1.1 расширяет список до 16 позиций через uncommitted-команды — нужен при каскаде переключателей. DiSEqC 1.2 и USALS — для моторизованных антенн, и здесь с шарингом отдельная история: время поворота мотора легко превышает 2–3 секунды, тогда как ECM timeout по умолчанию в OScam стоит 3000–5000 мс. Угадай, что произойдёт при зиг-заге между двумя позициями.

Unicable (SCR, EN 50494) — это другая архитектура: несколько ресиверов по одному кабелю на разных частотах. Тут есть нюанс при шаринге: два ридера, одновременно запрашивающих ECM на одной SCR-частоте, заблокируют друг друга. Нужно либо разделять по частотным слотам, либо не пускать параллельные запросы через один тюнер.

Связь позиции спутника и caid/provider

Каждый спутниковый провайдер имеет уникальный provid. Например, Viasat на разных позициях использует разные provid даже при совпадающем caid. Но бывает и обратное — один и тот же caid:provid на двух орбитах. В таком случае OScam или CCcam не знают, с какого источника брать ключ, и будут ошибаться без явной приоритизации.

Привязка спутника к порту: настройка на ресивере

Прежде чем лезть в конфиги шаринга, нужно убедиться, что сам DiSEqC работает корректно на аппаратном уровне. Иначе будешь часами смотреть в oscam.log, не понимая, что проблема — не в маппинге caid, а в том, что порт C вообще не переключается.

Назначение DiSEqC-порта в настройках антенны (Enigma2)

Путь в Enigma2: Меню → Настройка → Поиск каналов → Настройка антенны. Выбираешь тюнер, тип LNB — Simple или Advanced. Для DiSEqC 1.0 ставишь DiSEqC A/B/C/D для каждого спутника. Для DiSEqC 1.1 добавляются uncommitted-порты (1–16).

Файл настроек тюнера хранится в /etc/enigma2/settings. Там же строки вида config.Nims.0.satellite.13E.diseqcA = true. Конфигурация спутников — в /etc/tuxbox/satellites.xml. Не трогай этот файл руками без нужды, Enigma2 перезаписывает его при изменениях через интерфейс.

Проверка уровня и качества сигнала по каждому порту

Обязательный шаг перед запуском шаринга: встать на FTA-канал на каждом подключённом спутнике и проверить сигнал. Hotbird 13°E — BBC World или какой-нибудь открытый новостной. Astra 19.2°E — Das Erste или аналог. Уровень должен быть стабильным, quality — выше 60–70%.

Если один из портов даёт нулевой сигнал или качество скачет — проблема аппаратная. Длинный кабель от переключателя плюс дождь плюс просадка питания по линии 13/18В = дальняя позиция просто не переключается под нагрузкой. Классика. Проверь питание мультисвитча — он должен питаться не только от ресивера, но и иметь внешний блок питания при каскадировании.

Тонкости с committed/uncommitted при DiSEqC 1.1

DiSEqC 1.1 добавляет uncommitted-команды поверх committed. При каскаде двух переключателей команда сначала идёт на первый (committed), потом на второй (uncommitted). Распространённая ошибка: ресивер после обновления прошивки сбрасывается в режим committed-only и перестаёт отправлять uncommitted-команды. Проверяй это после каждого обновления Enigma2. Симптом — пропадают все позиции, подключённые через второй переключатель в каскаде.

Конфигурация OScam под мультифид

OScam — это де-факто стандарт для нормальной настройки мультифида. Гибкость конфигурации тут на несколько порядков выше, чем у CCcam. Но именно эта гибкость и сбивает с толку новичков.

Конфиги лежат в /etc/tuxbox/config/oscam/ или /var/etc/oscam/ — зависит от дистрибутива. На OpenATV и OpenPLi чаще встречается /etc/tuxbox/config/oscam/. На VTi — /var/etc/oscam/. Проверь, что у тебя, командой ls /etc/tuxbox/config/oscam/.

Файлы oscam.conf, oscam.server, oscam.user

oscam.conf — глобальные параметры: лог, веб-интерфейс, таймауты. oscam.server — описание каждого ридера (источника ключей). oscam.user — права доступа клиентских подключений. oscam.services — группы каналов для фильтрации.

Пример базовой секции в oscam.conf:

[global]
logfile = /var/log/oscam/oscam.log
nice = -1
WaitForCards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = pass

Веб-интерфейс по умолчанию на порту 8888 (иногда 16002 в старых сборках). Оттуда видно все ECM-запросы в реальном времени — незаменимо при диагностике.

Привязка caid к нужному ридеру через caidtab/ident

Вот где начинается магия. В oscam.server каждый ридер получает свой набор caid и provid. Параметр caidtab фильтрует, какие caid вообще принимает этот ридер. Параметр ident уточняет до конкретного provid.

[reader]
label = server_13E
protocol = camd35
device = 10.0.0.1,15000
user = user1
password = pass1
group = 1
caidtab = 0500,0604
ident = 0500:020000,0604:000000

[reader]
label = server_19E
protocol = newcamd
device = 10.0.0.2,15000
user = user2
password = pass2
group = 2
caidtab = 0500,1830
ident = 0500:032000,1830:000000

Теперь запросы с provid 020000 пойдут на ридер server_13E, а с 032000 — на server_19E. Даже если caid совпадает — ident разведёт их по правильным источникам.

Использование services и oscam.services для разделения спутников

Если caid:provid совпадают полностью — нужен следующий уровень. Создаёшь в oscam.services группы каналов по SID:

[13E_package]
caid = 0500
provid = 020000
sids = 0101,0102,0103,0201

[19E_package]
caid = 0500
provid = 020000
sids = 1001,1002,1003

В oscam.user привязываешь группу сервисов к пользователю через параметр services =. А в ридере указываешь services = 13E_package или 19E_package. Это жёсткая привязка SID к конкретному источнику — даже при одинаковом caid:provid.

Конфигурация CCcam и приоритеты каналов

CCcam проще в настройке, но менее гибкий. Конфиг лежит в /var/etc/CCcam.cfg. Для мультифида критично понять одну вещь: CCcam не управляет DiSEqC. Вообще. Переключением занимается Enigma2 и драйвер тюнера — CCcam только распределяет ECM-запросы между серверами.

CCcam.cfg: строки C-line и F-line

C-line — подключение к удалённому серверу:

C: hostname.server.com 12000 user password

F-line — раздача локальной карты клиентам:

F: localuser localpassword 1 0 0 0 { 0:0:1 }

Несколько C-line можно прописать параллельно. CCcam будет брать ключ с первого ответившего сервера. Это звучит хорошо, но для мультифида это проблема: при одинаковом caid с двух спутников CCcam просто возьмёт первый ответ, не зная, с какой орбитальной позиции сейчас стоит тюнер.

CCcam.prio и CCcam.providers для приоритезации

Файл CCcam.prio — инструмент для разруливания этой ситуации. Формат:

# caid:provid:sid = server_index
0500:020000:0101 = 0
0500:032000:1001 = 1

Индекс соответствует порядку C-line в CCcam.cfg (нумерация с нуля). Канал с SID 0101 будет брать ключ с первого сервера, с SID 1001 — со второго. Это и есть решение конфликта одинаковых caid с разных спутников в CCcam.

CCcam.providers дополнительно описывает имена провайдеров — нужен только для удобства в интерфейсе, на маршрутизацию не влияет.

Связь номера каналов с позицией DiSEqC

SID (Service ID) канала — фиксированное число, уникальное в рамках одного транспондера. Каналы с Hotbird 13°E имеют одни SID, с Astra 19.2°E — другие. Именно по SID в CCcam.prio можно точно указать, с какого источника брать ключ. Это надёжнее, чем надеяться только на caid:provid.

Диагностика: почему канал не открывается после переключения

Алгоритм диагностики простой, но требует последовательности. Не надо одновременно менять конфиги и проверять железо.

Чтение ECM-логов в OScam (status, readers)

Открываешь веб-интерфейс OScam на порту 8888. Раздел ECM показывает все активные запросы: caid, provid, SID, ридер, время ответа и статус. Три ключевых статуса:

  • found — ключ получен, всё хорошо
  • not found — ридер ответил, но ключа нет. Проблема в маппинге caid или ридер не имеет нужной карты
  • timeout — ридер не ответил вовремя. Либо сетевая проблема, либо DiSEqC ещё не переключился

Для живого мониторинга: tail -f /var/log/oscam/oscam.log. Включи расширенный лог в oscam.conf: loglevel = 64 — тогда будут видны все ECM-транзакции с reader-маршрутизацией.

Ошибки timeout и no matching reader

Timeout после переключения спутника — типичная история с DiSEqC переключатель для кардшаринга в связке с медленной коммутацией. Задержка DiSEqC 1.0 обычно 150–200 мс, DiSEqC 1.1 — до 400 мс при каскаде. Плюс время синхронизации тюнера — итого до 600–800 мс. А ECM timeout в oscam.conf по умолчанию бывает 3000 мс — этого обычно хватает, но только если в логе нет повторных переключений.

Если timeout постоянный — смотри параметры в oscam.conf:

[global]
lb_retrylimit = 500
lb_nberrorsmax = 3

«No matching reader» означает, что ни один ридер в системе не может обслужить этот caid:provid. Проверь caidtab и ident в oscam.server — скорее всего, provid не прописан или опечатка в hex-значении.

Проверка через oscam webif и cardserver лог

В веб-интерфейсе OScam, раздел Readers, смотришь: количество found/not found за последние N запросов, среднее ECM время. Если ридер показывает 80%+ found и ECM time ниже 500 мс — источник нормальный. Если ECM time скачет от 200 мс до 3000 мс — нестабильный канал связи или перегрузка на стороне сервера.

Как выбрать источник ключей (провайдера) — критерии без имён

Хороший DiSEqC переключатель для кардшаринга — это только половина уравнения. Вторая половина — качество источника ключей. Здесь есть несколько объективных метрик.

На что смотреть: аптайм, ECM time, локальность карт

ECM time ниже 300 мс — хороший показатель. Ниже 150 мс — отлично, скорее всего, локальная карта на сервере. Выше 800 мс — карта либо удалённая с несколькими хопами, либо сервер перегружен. При ECM time выше секунды начинаются freeze на быстрых сценах.

Аптайм проверяешь за 24–48 часов через OScam webif: раздел Readers → столбец Connected. Переподключения каждые несколько часов — сигнал нестабильного источника. Это не норма.

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

Три красных флага, которые видны в логах сразу:

  • ECM time нестабильно: иногда 100 мс, иногда 4000 мс — значит, сервер занят или канал плохой
  • Процент found падает ниже 90% — карты периодически недоступны или ротируются
  • Частые разрывы соединения — OScam постоянно реконнектится по логу

Тест простой: поставь loglevel = 128 в oscam.conf, посмотри лог в течение часа просмотра канала. Если видишь строки DISCONNECT и RECONNECT — источник нестабилен.

Почему дешевле ≠ стабильнее

Дешёвые источники часто используют каскады ресейлинга: ключ идёт через 3–4 хопа, ECM time растёт. Или на одной карте сидит несколько сотен пользователей, и сервер просто не успевает обработать все запросы в пиковое время — вечером с 20:00 до 23:00. Именно в этот период и начинаются freeze.

Лучший способ проверить качество — взять тест на 24 часа и смотреть не только в спокойное дневное время, но и в прайм-тайм. OScam webif покажет честную картину без субъективизма.

Управляет ли OScam или CCcam переключателем DiSEqC напрямую?

Нет. Это разные уровни системы. DiSEqC-командами управляет Enigma2 через драйвер тюнера — по настройкам антенны, которые ты задал в меню. OScam и CCcam об этом ничего не знают и не могут влиять на физическое переключение входов. Их задача — получить ECM-запрос и вернуть ключ. Поэтому настраивать DiSEqC нужно на уровне ресивера, а маппинг caid — уже в конфигах шаринга.

Почему один и тот же caid с двух спутников путается?

Потому что caid:provid могут полностью совпадать — особенно у провайдеров, вещающих один пакет на нескольких орбитах. Сервер шаринга видит одинаковый идентификатор и не знает, с какого спутника пришёл запрос. Решение для OScam — комбинация caidtab + ident + oscam.services с привязкой по SID. В CCcam — файл CCcam.prio с явным указанием caid:provid:sid и индекса сервера.

Какой DiSEqC выбрать для 4 спутников при кардшаринге?

DiSEqC 1.0 — до 4 позиций (порты A, B, C, D), стандартный 4-входовой мультисвитч. Для большинства мультифидов этого хватает. Если нужно больше 4 позиций — DiSEqC 1.1 (до 16) или каскад из двух переключателей. Для нескольких ресиверов на одном кабеле — Unicable/SCR, но там нужно следить за одновременными ECM-запросами на одном SCR-слоте.

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

Сначала исключи аппаратную ошибку: встань на FTA-канал проблемного спутника без шаринга и проверь сигнал. Нет сигнала — ошибка коммутации DiSEqC или плохой контакт на порту. Сигнал есть, но зашифрованный канал не открывается — неверный caid mapping в конфиге. Смотри ECM-статус в OScam webif: если not found — ридер не имеет нужной карты или неверный ident. Если timeout — задержка DiSEqC или сетевая проблема.

ECM timeout после переключения спутника — как исправить?

Физическая задержка DiSEqC-коммутации иногда превышает ECM timeout в OScam. Увеличь значение в oscam.conf: параметр lb_retrylimit (в мс) и проверь clienttimeout. Также проверь питание переключателя по линии 13/18В — при длинном кабеле и слабом питании дальняя позиция переключается медленнее или вообще не переключается. Для моторизованной антенны DiSEqC 1.2 таймаут нужно ставить от 5000 мс и выше.

Где лежат конфиги OScam и CCcam на Enigma2?

OScam: /etc/tuxbox/config/oscam/ или /var/etc/oscam/ — зависит от дистрибутива. Основные файлы: oscam.conf, oscam.server, oscam.user, oscam.services. CCcam: /var/etc/CCcam.cfg — основной конфиг; /var/etc/CCcam.prio и /var/etc/CCcam.providers — дополнительные файлы приоритетов. Проверь наличие командой ls /var/etc/ | grep -i ccam.

О статье

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