OScam: компиляция из исходников — полный гайд 2026

Главная Статьи OScam: компиляция из исходников — полный гайд 2026

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

05.06.2026

OScam: компиляция из исходников — полный гайд 2026

Если вы дошли до этой страницы, то уже знаете, чего хотите: рабочий бинарник под вашу конкретную платформу. Готовые сборки либо устарели, либо собраны с набором модулей, который вам не подходит, либо просто не существуют для вашей архитектуры. OScam compile из исходников — единственный нормальный путь, если у вас роутер на mipsel, старый ресивер на sh4 или NAS с нестандартным окружением. Ниже — точная последовательность команд и разбор того, что идёт не так.

Что нужно перед компиляцией OScam

Системные требования и поддерживаемые платформы

OScam собирается на Linux нативно под x86_64, arm, mipsel, sh4, mips. Для нативной сборки на том же железе, где будет работать — достаточно обычного дистрибутива. Для кросс-компиляции под роутер или ресивер нужен подходящий toolchain — об этом отдельно в третьем разделе.

Минимум по железу для сборки: 512 МБ RAM, 200 МБ свободного места. Компиляция на современном ноутбуке занимает 30–60 секунд. На слабом VPS с одним ядром — минуты три.

Установка зависимостей и build-инструментов

На Debian/Ubuntu ставим всё одной командой:

apt install build-essential subversion git libssl-dev libusb-1.0-0-dev \
  pcscd libpcsclite-dev cmake gcc make libncurses-dev

Каждый пакет здесь нужен по делу. libssl-dev — без него не соберётся поддержка AES и SSL-шифрования в протоколах. libusb-1.0-0-dev — для USB-ридеров карт. libncurses-dev — для интерактивного меню config.sh. Если пропустить ncurses, меню просто не откроется, и вы будете долго гадать почему.

На CentOS/RHEL аналоги называются иначе: openssl-devel, libusb-devel, ncurses-devel. Команда через dnf:

dnf install gcc make openssl-devel libusb-devel ncurses-devel subversion git

Где взять актуальные исходники (SVN/Git репозиторий)

Официальный SVN-репозиторий OScam жив, но большинство активных разработок идут в Git-форках. Ищите форк с коммитами не старше нескольких месяцев — если последний коммит датируется 2023 годом, это уже мёртвый проект.

Клонирование через Git:

git clone https://github.com/oscam-emu/oscam-patched.git ~/oscam
cd ~/oscam

Через SVN (если используете официальный репозиторий):

svn co http://www.streamboard.tv/svn/oscam/trunk /usr/src/oscam-svn
cd /usr/src/oscam-svn

Рабочий каталог по договорённости: /usr/src/oscam-svn или ~/oscam. Не принципиально, главное — запомнить путь.

Сборка OScam через simplebuild

Это центральный раздел. Именно здесь OScam compile из исходников происходит на практике. Весь процесс — три шага: настройка модулей, компиляция, проверка бинарника.

Запуск ./config.sh и выбор модулей

Запускаем конфигуратор:

./config.sh

Откроется ncurses-меню. Навигация — стрелками, пробел — включить/выключить модуль, Enter — принять. Если меню не открылось, а вместо него ошибка про ncurses — установите libncurses-dev и попробуйте снова.

В меню видно три основных блока: протоколы (Modules), ридеры (Readers) и системные опции. Галочками отмечаем то, что нужно.

Включение протоколов: cs378x, cccam, newcamd, mgcamd

Минимальный рабочий набор для большинства установок:

  • WEBIF — веб-интерфейс на порту 8888. Отключать смысла нет, разве что совсем нет места на устройстве.
  • MODULE_CCCAM — если планируете работать с CCcam-серверами или раздавать карты по CCcam.
  • MODULE_CAMD35_TCP — это и есть cs378x. Нужен для большинства современных клиентов.
  • MODULE_NEWCAMD — протокол newcamd, порт обычно 15000.
  • MODULE_MGCAMD — если используете MGcamd-клиенты.

Включать всё подряд не нужно. Каждый лишний модуль увеличивает размер бинарника — это критично для роутеров с 8–16 МБ флеша.

Опции ридеров и DVBAPI

В блоке Readers включайте только то, что физически используете. READER_SMARTREADER требует libusb — если USB-ридера нет, отключите, иначе при отсутствии libusb-1.0-0-dev сборка упадёт с ошибкой. Типичный набор для ридера на смарт-карте: READER_INTERNAL и нужный протокол дешифрования.

HAVE_DVBAPI — включайте, если OScam будет декодировать каналы локально через DVB-устройство. Для режима чистого прокси/ретранслятора он не нужен.

Запуск компиляции и расположение бинарника

После сохранения настроек в config.sh — компиляция:

# Нативная сборка через simplebuild:
./build

# Или через make напрямую:
make USE_LIBCRYPTO=1

Флаг USE_LIBCRYPTO=1 говорит компилятору использовать OpenSSL вместо встроенной реализации. Это нужно для корректной работы AES-шифрования в cs378x и других протоколах. Если OpenSSL не установлен — упадёт с ошибкой openssl/ssl.h: No such file. Для включения SSL-туннелирования добавьте USE_SSL=1.

Готовый бинарник появится в Distribution/. Имя файла содержит версию и архитектуру: например, oscam-11718-x86_64. Проверяем включённые модули:

./Distribution/oscam-11718-x86_64 -V

Вывод покажет список всех скомпилированных протоколов, ридеров и версию SVN/Git. Если нужного модуля нет в выводе — он не был включён в config.sh.

Кросс-компиляция под роутеры и embedded

Вот где большинство гайдов просто сдаются и говорят "поищите готовый бинарник". Но нормальный способ — собрать самому с правильным toolchain. OScam compile из исходников под роутер или ресивер — это реально, просто чуть сложнее.

Подключение toolchain (mipsel, arm, sh4)

Toolchain — это кросс-компилятор, который работает на x86 машине, но генерирует код для целевой архитектуры. Для роутеров на MIPS/MIPSEL это обычно mipsel-linux-gnu или mipsel-tuxbox-linux-gnu. Для ресиверов на sh4 — sh4-linux-gnu. Для современных устройств на arm — arm-linux-gnueabi или arm-linux-gnueabihf (с аппаратной FPU).

На Debian toolchain для arm ставится так:

apt install gcc-arm-linux-gnueabi binutils-arm-linux-gnueabi

Для mipsel — пакет называется gcc-mipsel-linux-gnu. Если нужного пакета нет в репозиториях дистрибутива, ищите buildroot или OpenWrt SDK для вашего устройства — они идут с преднастроенным toolchain.

Указание CROSS и переменной окружения

Через simplebuild передаём toolchain параметром -t:

./build -t mipsel-linux-gnu

Или через make с явным указанием переменных:

make CROSS=mipsel-linux-gnu- USE_LIBCRYPTO=1 \
  CONF_DIR=/etc/tuxbox/config/oscam

CONF_DIR указывает, где на целевом устройстве будут лежать конфиги. Если не указать — по умолчанию /usr/local/etc, что на роутере может не существовать.

После сборки — обязательно проверяем архитектуру бинарника:

file Distribution/oscam-*

Вывод должен быть примерно таким: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1. Если видите x86-64 — toolchain не подключился и собрался нативный бинарник, который на роутере не запустится.

Сборка под Enigma2, OpenWrt, Tuxbox

Для Enigma2-ресиверов (большинство современных спутниковых тюнеров) конфиги обычно лежат в /etc/tuxbox/config/ или /etc/enigma2/. Некоторые прошивки используют /var/keys/.

Под OpenWrt проще всего собирать через OpenWrt SDK — там уже настроены все переменные окружения и toolchain. В SDK-каталоге используете стандартный make с нужными переменными.

Важный момент для старых ресиверов: если glibc на устройстве версии 2.17 или старше, современный бинарник может не запуститься из-за несовместимости. Решение — статическая сборка с флагом -static в LDFLAGS, или поиск toolchain с подходящей версией glibc. Статический бинарник весит больше, но работает без зависимостей от системных библиотек.

Первый запуск и базовая конфигурация после сборки

Структура конфигов: oscam.conf, oscam.server, oscam.user

OScam читает конфиги из каталога, указанного при запуске через -c. По умолчанию — /usr/local/etc. Минимальный набор файлов: oscam.conf, oscam.server, oscam.user.

Минимальный oscam.conf:

[global]
logfile = /var/log/oscam.log
maxlogsize = 1000
waitforcards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10

Пример oscam.server для подключения к удалённому CCcam-серверу:

[reader]
label = myreader
protocol = cccam
device = server.example.com,12000
user = mylogin
password = mypassword
cccversion = 2.3.0
cccmaxhops = 1

Порт 12000 — стандартный для CCcam-протокола. Newcamd обычно на 15000, cs378x/camd35 — на 16002. Но это условность — реальный порт задаётся в конфиге сервера, уточняйте у того, кто вам предоставляет доступ.

Настройка WebIf и порта 8888/16002

WebIf работает на порту 8888 по умолчанию. После запуска OScam открываете браузер: http://your-server-ip:8888 — вводите логин/пароль из oscam.conf. В интерфейсе видно статус ридеров, клиентов, декодируемые каналы и логи в реальном времени.

Для протокола cs378x/camd35 секция в oscam.conf:

[cs378x]
port = 16002

Для newcamd:

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

Запуск как демона и автозагрузка через systemd/init

Запуск в фоновом режиме:

./oscam -b -c /usr/local/etc

Флаг -b — background, уходит в daemon. Для systemd создаём файл /etc/systemd/system/oscam.service:

[Unit]
Description=OScam Card Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/oscam -b -c /usr/local/etc
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Включаем и запускаем:

systemctl daemon-reload
systemctl enable oscam
systemctl start oscam

Проверяем, что слушает порты:

ss -tlnp | grep oscam

Должны видеть 8888, 16002 (или те порты, что прописали в конфигах).

Типичные ошибки компиляции и их решение

Большинство проблем при OScam compile из исходников — предсказуемые. Вот конкретные ошибки и что с ними делать.

Ошибки отсутствующих зависимостей (ssl.h, libusb)

Ошибка: fatal error: openssl/ssl.h: No such file or directory

Решение — установить заголовочные файлы OpenSSL и пересобрать:

apt install libssl-dev
make clean
make USE_LIBCRYPTO=1

make clean перед повторной сборкой — это не опционально. Без него компилятор может использовать кешированные объектники от предыдущей попытки, и ошибка останется.

Ошибка: libusb not found или usb.h: No such file

Два варианта: либо установить libusb-1.0-0-dev, либо — если USB-ридер не нужен — убрать в config.sh все READER_SMARTREADER и аналогичные модули, требующие libusb.

Ошибка: config.sh: line 5: dialog: not found или меню не открывается

Не хватает libncurses или dialog. Установите: apt install libncurses-dev dialog

Проблемы с правами и каталогом Distribution

Если сборка завершается успешно, но бинарника нет — проверьте права на каталог. Иногда Distribution/ создаётся с правами root при первом запуске make через sudo, и при повторной сборке без sudo туда нельзя записать файл.

ls -la Distribution/
# Если нужно:
chown -R $USER:$USER Distribution/

Несовпадение архитектуры toolchain

Ошибка на устройстве: cannot execute binary file: Exec format error

Классика. Бинарник собран для не той архитектуры. Перед заливкой на устройство всегда делайте:

file Distribution/oscam-*

Вывод скажет всё: x86_64, MIPS32, ARMv7 — сравните с архитектурой целевого устройства. Если не совпадает — нужно пересобрать с правильным toolchain.

Ещё один сценарий: toolchain указан правильно, архитектура верная, но на устройстве OScam не запускается с ошибкой про отсутствие библиотеки (libcrypto.so.1.1: cannot open shared object file). Это значит, что на устройстве нет нужной версии OpenSSL. Решение — собрать статически, добавив в Makefile или передав OSCAM_EXTRA_FLAGS="-static". Статический бинарник тяжелее, но самодостаточен.

Ошибки SVN/Git при получении исходников

После обновления исходников через git pull или svn update сборка иногда ломается — изменились опции в config.sh, добавились новые зависимости или переименовались флаги. Решение:

make clean
./config.sh   # заново проверить и сохранить настройки
make USE_LIBCRYPTO=1

Конфиги OScam (/usr/local/etc/oscam.conf и другие) при этом не трогаются — они хранятся отдельно от исходников. Обновление кода и пересборка бинарника не затрагивают рабочую конфигурацию сервера.

Чем компиляция OScam из исходников лучше готового бинарника?

Во-первых, свежая версия с последними патчами безопасности — готовые бинарники на сторонних сайтах часто отстают на месяцы. Во-вторых, вы сами контролируете набор модулей: отключили ненужные протоколы и ридеры — бинарник меньше весит, что критично для устройств с ограниченным флешем. В-третьих, только сборка из исходников позволяет получить рабочий бинарник под редкую архитектуру вроде sh4 или специфической версии mipsel.

Какие зависимости обязательны для сборки OScam?

Обязательный минимум: build-essential (или отдельно gcc и make), subversion или git для получения исходников, libssl-dev — нужен для AES/SSL, без него не заработают современные протоколы. Дополнительно: libusb-1.0-0-dev если используете USB-ридеры, libpcsclite-dev для PCSC-смарткарт, libncurses-dev чтобы открылось меню config.sh.

Где найти готовый бинарник после успешной компиляции?

В каталоге Distribution/ внутри папки с исходниками. Имя файла содержит ревизию и архитектуру: например oscam-11718-x86_64. Проверить, какие модули скомпилированы: ./Distribution/oscam-11718-x86_64 -V — вывод покажет полный список активных протоколов и ридеров.

Как собрать OScam под роутер или ресивер с другой архитектурой?

Нужен кросс-компилятор под целевую архитектуру: mipsel, arm, sh4. В simplebuild передаётся через параметр -t: ./build -t mipsel-linux-gnu. Или через make с переменной CROSS=mipsel-linux-gnu-. После сборки обязательно проверьте архитектуру бинарника командой file Distribution/oscam-* перед заливкой на устройство.

Почему появляется ошибка openssl/ssl.h: No such file?

Не установлен пакет с заголовочными файлами OpenSSL. На Debian/Ubuntu: apt install libssl-dev. После установки — make clean, затем пересобрать с флагом USE_LIBCRYPTO=1. Шаг make clean пропускать нельзя — без него компилятор не перечитает зависимости.

Какие протоколы и модули включать при сборке?

Минимум — WEBIF для управления через браузер. Протоколы — по потребности: MODULE_CCCAM для CCcam, MODULE_CAMD35_TCP для cs378x, MODULE_NEWCAMD для newcamd. HAVE_DVBAPI — только если OScam будет декодировать каналы локально через DVB-карту. Всё лишнее отключайте — это напрямую влияет на размер бинарника и особенно важно для устройств с малым объёмом памяти.

О статье

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