OScam debuglevel: уровни логов и отладка кардшаринга
При настройке OScam многие пользователи сталкиваются с необходимостью понимания, как работают логи и что такое OScam debuglevel логи. Это поможет в диагностике проблем с кардшарингом, такими как отсутствие декодирования или обрывы пиров. Давайте разберёмся, как задать уровни логирования, какие значения использовать и как читать эти логи.
Что такое debuglevel в OScam и где он задаётся
Debuglevel — это битовая маска, которая определяет, какие сообщения будут записываться в логи. Этот параметр задаётся в секции [global] файла конфигурации oscam.conf, который обычно находится по пути /etc/tuxbox/config/oscam.conf или /var/etc/oscam.conf на устройствах с Enigma. Также можно задать debuglevel при запуске бинарника с помощью ключа -d или изменить его в реальном времени через WebIF.
Параметр nice/debug в секции [global] файла oscam.conf
Для задания уровня логирования в файле oscam.conf нужно найти секцию [global] и добавить или изменить параметр debug. Например:
[global]
debug = 255
Значение 255 включает все основные логи. Но имейте в виду, что использование слишком высокого уровня может привести к переполнению логов.
Запуск с ключом -d из командной строки
Если вы хотите быстро включить отладку, можно запустить OScam с ключом -d из командной строки. Это временное решение, и после перезапуска OScam уровень логирования вернётся к значению по умолчанию.
oscam -d
Изменение debuglevel «на лету» через WebIF и telnet/monitor
WebIF (обычно доступен по порту 8888 или 16002) позволяет менять уровень логирования без перезапуска сервера. В разделе статуса найдите поле debug, введите нужное значение и нажмите кнопку для применения. Это удобно, когда нужно быстро диагностировать проблему.
Полная таблица значений debuglevel и битовых масок
Каждое значение debuglevel в OScam соответствует определённой битовой маске. Вот основные биты:
- 0 — без отладки (только ошибки и важные сообщения)
- 1 — общая отладка (D_TRACE)
- 2 — ATR/PTS и взаимодействие с ридером (D_ATR)
- 4 — детали ридеров (D_READER)
- 8 — протокол клиентов/пиров (D_CLIENT)
- 16 — IFD/чтение карты (D_IFD)
- 32 — низкоуровневый ввод-вывод (D_DEVICE)
- 64 — EMM (D_EMM)
- 128 — DVBAPI/демультиплексор (D_DVBAPI)
- 256 — детальный лог (D_CACHEEX/CSP)
Значения масок можно складывать. Например, чтобы включить отладку для CCcam и newcamd, используйте значение 8. Для проблем с ридером подойдёт значение 2 + 4, а для DVBAPI — 128. Максимальное значение 65535 включает все возможные логи.
Отдельные биты: 1, 2, 4, 8, 16, 32, 64, 128, 256
Каждый из этих битов отвечает за определённый аспект работы OScam. Например, если вы хотите видеть только взаимодействие с клиентами, поставьте debug=8.
Суммирование масок и значение 65535 (все логи)
Не забывайте, что любое значение можно комбинировать. Например, debug=255 включает основную отладку, а debug=65535 — максимальную. Это полезно для детальной диагностики, но не стоит оставлять на постоянной основе.
Какой уровень включать под конкретную задачу
Для каждой проблемы требуется свой набор битов. Например, если у вас проблемы с подключением пиров, используйте debug=8. Если нет декодирования, попробуйте debug=2 + 4 для диагностики ридера.
Настройка файла логов: oscam.conf и ротация
Важной частью настройки OScam является конфигурация логирования. В секции [global] необходимо указать следующие параметры:
[global]
logfile=/var/log/oscam.log
maxlogsize=2048
disablelog=0
Значение maxlogsize указывает размер файла лога в КБ, после чего он будет обрезан или ротирован. Рекомендуется записывать логи на USB или в сеть, чтобы не перегружать NAND флеш-память ресивера.
Параметры logfile, maxlogsize и disablelog
Параметр logfile указывает путь к файлу, где будут храниться логи. По умолчанию это /var/log/oscam.log. Параметр disablelog отключает логирование, если установлен в 1.
Раздельные логи: cwlogdir, emmlogdir, usrfile
Для более детальной работы можно настроить отдельные логи для различных типов данных. Например, cwlogdir отвечает за дампы контрольных слов, emmlogdir — за логи EMM, а usrfile — за статистику пользователей.
Логирование в syslog и в stdout при отладке
Иногда полезно отправлять логи в syslog или на стандартный вывод, особенно при отладке. Можно использовать:
logfile=/dev/stdout
Это поможет быстро получать вывод на консоль.
Чтение и интерпретация логов: типовые строки и ошибки
Теперь, когда вы настроили логи, важно уметь их читать. Каждая строка лога содержит определённые данные, такие как дата, время, идентификатор потока (hex), имя ридера или клиента и текст сообщения.
Структура строки лога: время, поток, клиент, сообщение
Строка лога может выглядеть так:
2023-10-01 12:34:56 [1234] reader1: found (10 ms) by reader
Здесь вы видите время, ID потока и сообщение о том, что декодирование прошло успешно.
Маркеры успеха: found, got, decoded (CW)
Если в логе вы видите «found», это значит, что ECM был успешно декодирован. Например:
2023-10-01 12:34:56 [1234] reader1: found (10 ms) by reader
Это хороший сигнал, что всё работает.
Маркеры проблем: rejected, no matching, timeout, ratelimit
Если вы видите ошибки, такие как «no matching reader» или «timeout», это указывает на проблемы. Например:
2023-10-01 12:34:56 [1234] reader1: no matching reader for caid:provid
Это говорит о том, что нет ридера для данного caid/provid.
Практическая диагностика частых проблем по логам
Теперь давайте свяжем симптомы с необходимыми уровнями debug и тем, что искать в логах.
Пиры CCcam/newcamd не коннектятся или отваливаются
Если ваши пиры не соединяются, установите debug=8 и ищите строки, содержащие «connected» или «disconnected». Также проверьте настройки пароля и версии протокола.
Чёрный экран при наличии found CW (FTA/ECM-pid)
Когда CW найден, но нет изображения на экране, проверьте настройки DVBAPI. Включите debug=128 и проверьте dvbapi.conf.
Нет EMM-обновления карты и проблемы с ридером
При отсутствии обновлений EMM проверьте настройки ридера. Установите debug=2 + 4 и просмотрите ATR-строки и параметры в oscam.server.
Какое значение debuglevel включает все логи в OScam?
Значение debug=65535 включает максимальную детализацию (все биты). Обратите внимание, что лог растёт лавинообразно и нагружает CPU/диск — используйте только для короткой диагностики, затем верните debug=0.
Как изменить debuglevel без перезапуска OScam?
Через WebIF (страница статуса, кнопки/поле debug) или через telnet-monitor командой. Изменение действует мгновенно и не сохраняется в oscam.conf; для постоянного значения правьте параметр debug в секции [global].
Где находится файл логов и как ограничить его размер?
Путь задаётся параметром logfile в [global] (типично /var/log/oscam.log). Размер ограничивается maxlogsize (в КБ). На ресиверах с флеш-памятью лучше писать в /tmp или на USB, чтобы не изнашивать NAND.
Какой debug ставить, чтобы видеть только подключения пиров?
debug=8 (D_CLIENT) показывает протокол клиентов и пиров (CCcam, newcamd, cs378x). Искать строки connect/disconnect, ошибки авторизации и несовпадения group.
В логе пишет «no matching reader» — что это значит?
Запрос ECM пришёл, но ни один ридер/сервер не обслуживает данный caid:provid. Проверьте caid и provid в oscam.server, поля group в oscam.user и oscam.server, а также ident/services.
Почему канал не открывается, хотя в логе есть «found» (CW получен)?
CW есть, но дескремблирование не доходит до ресивера; проблема на стороне DVBAPI. Включите debug=128, проверьте ECM-pid, dvbapi.conf, dvbapi_pmt_mode и поддержку descrambler на приставке.