wicardd и azbox

Тема в разделе "EMU/ЭМУ для Azbox Enigma2. Установка и настройка", создана пользователем gorr, 26 мар 2013.

  1. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    много вопросов по этому эму
    чуть чуть обобщил (для тех кому трудно найти в сети)

    Эмулятор -картсервер wicardd рассмотрим а примере последней версии -
    Версия 1.12 (2013-02-23) (doublemu)

    сначала рассмотрим общие вопросы, в конце - практические
    этот материал будет где-то дополнением, а где - то частично дублировать выложенный ранее об особенностях его использования при просмотре 3 к

    Для работы эмулятора потребуется 3 файлика:

    1 - собственно самого эмулятора – бинарик (wicardd),
    2 - конфиг - файла (wicardd.conf) и
    3 - скрипта запуска (wicardd_cam.sh)

    Для использования в azbox вариант эмулятора - wicardd-mipsel
    размещается в - /usr/bin с правами 755

    Основные команды (те ключи командной строки запуска):

    # -h help показать помощь
    # -d daemon запустить в режиме демона
    # -v verbose
    # -c [filename] use config filename использовать файл конфигурации отличный от /etc/wicardd.conf и ./wicardd.conf
    # -l [filename] use log filename
    # -a сохранить результат автоконфигурации в конфиг файле
    # -b [arg] configure WiBase конфигурирование радиобазы
    # -w [arg] configure WiCard конфигурирование радиозонда
    # -C calibrate mode
    # -A spectrum analizer mode
    # -R log rssi/lqi
    # -L [channel] card logger логирование протокола обмена карты и радиозонда

    # -w "arg=1:arg1=:arg2"
    #args:
    #show показать настройки радиозонда
    #devaddr=1..7 присвоить адресс радиозонду
    #atrno=0..15 использовать ATR номер 0-15
    #atrconf= дополнительные настройки протокола обмена карты доступа
    #atrX=3B240030423030 задать значение для ATR номер X (atr0=, atr1=,... atr15=)
    #freqno=0..3 использовать частотный канал 0-3
    #updatefw обновить прошивку радиозонда
    #calibrate калибровать частоту передатчика ()

    #пример: wicardd -w "devaddr=3:atrno=5:freqno=1"

    # -b "arg=1:arg1=:arg2"
    #args:
    #show показать настройки радиобазы
    #freqno=0..3 использовать частотный канал 0-3
    #updatefw обновить прошивку радиобазы

    #DM800 mknod -m 660 /dev/ttyS0 c 4 64

    [section_name.preset] #задает значение по умолчанию, для всех секций [section_name]
    debug = 4
    #пример:
    [reader.preset] #задает значение по умолчанию, для всех секций [reader]
    reconnect_delay = 100
    debug = 4

    [server.preset] #задает значение по умолчанию, для всех секций [server]
    max_not_decoded = 5
    debug = 4

    Не всеми параметрами будем пользоваться , однако при написании скриптов запуска часть их просто необходиа
     

    Вложения:

  2. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    КОНФИГ - ФАЙЛ

    wicardd.conf

    Все настройки работы эмулятора собраны в нем. Используются необходимые, в зависимости от поставленной задачи.
    Конфиг-файл состоит из секций.

    Условно их можно разделить на группы:
    - секции общего назначения
    - секции устройств
    - секции серверов
    - секции ридеров
    - секции фильтров


    Секции общего назначения

    [global]

    active = 1 # включение секции (0-выключение)
    syslog = 1 # вывод информации в syslog
    log = /tmp/wicardd.log # установить логгирование в файл (место нахождения файла - /tmp/wicardd.log)
    Если выводить лог на комп (к примеру) , то
    log_udp = hostname:port #сетевое логирование на hostname:514
    log_size = 100 # максимальный размер лог-файла (установить в 100кб)
    debug = 3 # уровень полноты вывода в лог ( 3 - полный ; 0 - выключить )
    daemon = 0 #1 - запускать в режиме демона
    name = test_server #имя сервера, применяется для включения секций по маске active_if
    #@/path/file вычитать имя из файла
    ecm_cache_size = 128 #размер ECM кеша
    pending_ecm_cache_size = 128 #размер буфера
    account_file = ./wicard.account #путь к файлу с описанием пользователей
    account_diff_file = ./wicard.account.diff #путь к файлу с описанием пользователей
    default_balancer_debug = 0
    thread_stack_size = 128 #размер стека выделяемого потоку в килобайтах
    thread_priority = 0 #приоритет потоков 0..99
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс, значение по умолчанию
    dre_hack #кол-во сравниваемых байт UA для индивидуальных EMM CAS DRE
    ecm_dedup_delay = 1000 #задержка отправки ECM запроса в мс
    filter_gvar_array_size = 32 #размер массива глобальных переременных для фильтров
    $replace_val1 = val #
    $replace_val2 = val


    [webif] - секция веб-интерфейса

    port = 8081 # - (ip номер порта ресивера)
    debug = 0
    active = 1
    active_if = name* #активировать секцию если имя сервера соответствует wildcard
    active_if = !name* #активировать секцию если имя сервера не соответствует wildcard
    allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
    deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей

    [exmlog]

    log_path = /tmp/
    queue_size = 10
    log_ecm = 1 #логировать ECM запросы
    log_emm = 1 #логировать EMM запросы
    exm_flush_delay = 30 #задается в секундах
    ecmlog_mode = 0 #
    skip_fakecw = 0 #не сохранять в логе запросы с фейковыми ответами
    skip_rejected = 0 #не сохранять в логе отвергнутые запросы

    [discovery]

    active = 1
    debug = 0
    reader_debug = 0 #уровень логирования для создаваемых ридеров
    request_ad = 0 #запрашивать тестовые настройки с сервера wicard.tv
    bind = 1 #22339

    [account] #секция конфигурации пользователей (повторяется для каждого пользователя)
    #используется для разграничения доступа к серверам описанным в секции [server]

    login = wicard
    password = wicard
    auto_update = 1 #accept AU
    filter = 0,name1,name2 #использовать фильтр
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список провайдеров, которые будут анонсированы клиенту
    allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
    deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей


    Секции устройств

    [tuner] #

    device = /dev/ttyS0
    device = COM1 #COM-порт под Windows
    #device = /dev/tts/0
    baudrate = 115200 #скорость обмена (9600, 19200, 38400, 57600, 115200)
    protocol = auto #auto, HSIC, SSSP, Bomba, GI, DSR9500, GS, Alpha, DSR9500old, GBox
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
    #список провайдеров, которые будут анонсированы клиенту
    auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени

    globo = 1 #если 1 - сразу отдавать ноли в DCW для неподдерживаемых идентов (ускоряет переключение каналов)
    #write_delay = 1 #ms
    #timeout = 50 #ms
    debug = 3
    #caid = 0500
    filter = 0,name1,name2 #использовать фильтр

    [dvb]

    type = auto #auto, DVBAPI1, DVBAPI3, STAPI, OpenXCAS, DGSAPI, QBoxHD, VDR
    adapter = 0 #номер адаптера
    cadev_offset = 0 #fix для Enigma на IPBox
    filter = 0,name1,name2 #использовать фильтр
    beta_tunnel = 0 #тунелирование запросов
    decode_try_count = 0 #кол-во попыток декодирования канала
    dre_fix = 1 #1 - игнорировать провайдер DRE, помогает в случае если сервер возвращает provider = 0 (4ae1:0)
    sdt = 1 #вычитывать названия сервисов из потока
    ecm_info = 1 #создавать файл /tmp/ecm.info
    #1 - формат WiCard
    #2 - формат mgcamd
    twin = 0 #поддержка TWIN протокола (вычитывается SDT и NIT для определения частоты транспондера и орбитальной позиции спутника)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс, требуется для работы с TWIN протоколом
    rerequest_not_decoded = 0 #отправлять повторный запрос если не декодировано
    ecm_double_check = 1 #сравнивать предыдущую и текущую ECM и отправлять на декодирование если совпадают
    auto_update = 1 #включить AU
    emm_filter_mode = 0 #0 - вычитывается весь EMM PID, фильтруется WiCard
    #1 - вычитывать EMM PID с настроенными фильтрами для linux DVB API
    debug = 3
    stapi_pmt_map = 00010102030304 #соответствие pmt файлов к номеру демультиплексора
    #pmt.tmp pmt1.tmp pmt1_1.tmp pmt1_2.tmp pmt2.tmp pmt2_1.tmp pmt2_2.tmp
    #demux #0 PTI2
    #demux #1 PTI
    #demux #2 PTI
    #demux #3 PTI1
    #demux #4 PTI1

    multi_decode = 0 #1 - отправлять ECM со всех каналов текущего транспондера
    #2 - отправлять ECM со всех каналов транспондеров описанных параметром dvbs
    #3 - отправлять TS потоки со всех каналов транспондеров описанных параметром dvbs
    multi_decode_demux = 0 #номер демультиплексора
    multi_decode_resend_ecm = 0 #0 - отправлять ECM только при смене таблицы 80/81
    #1 - отправлять ECM после каждого цикла сканирования транспондера
    multi_decode_recheck_pat = 0 #1 - отслеживать изменение PAT и пересканировать транспондер
    multi_decode_sid = 01,0A #список каналов, которые будут декодироваться
    multi_decode_ignore_sid = 01,0A #список игнорируемых каналов, не вычитывать PMT
    dvbs = freq:pol:sr:lnb:diseqc #lnb - X 10750, U - Universal
    dvbs2 = freq:pol:sr:fec:roll-off:mod:lnb:diseqc:filter_group
    #freq frequency in MHz
    #pol H,V,R,L
    #sr symbolrate
    #fec 12,23,34,45,56,67,78,35,910, 0 - AUTO
    #roll-off factor 35,25,20, 0 - AUTO
    #mod QPSK, 8PSK
    #lnb - X 10750, U - Universal
    #diseqc 0 do not use, 1-16 port number
    multi_decode_diseqc = 0 # diseqc version 0 - 1.0 (commited); 1 - 1.1(uncommited)
    tune_timeout = 500 #
    multi_decode_scan_timeout = #
    multi_decode_softcsa = 0
    lnb_sharing = 0
    check_cc = 0
    stream_buffer_size = #
    stream_udp = host:port # стримить все TS на host:port
    stream = sid_hex1:host1:port #стримить привязанные к SID vpid, apid, если SID = 0, стримить все каналы
    stream = sid_hex2:host2:port #
    stream = sid_hex3:host3:port #
    dmx_buffer_size = #
    dmx_pes_buffer_size = #
    remap_sid_on_vpid = 0 #

    [card] #секция конфигурации радиозондов (одна секция на один радиозонд)

    name = card1 #
    cas = irdeto #тип эмулируемой кодировки карты доступа (auto, conax, viaccess, irdeto, dre)
    channel = 2 #сетевой адрес/канал радиозонда
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
    #список провайдеров, которые будут анонсированы клиенту
    auto_provider = all, reader_name,caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
    send_null_ins = 1 #отправлять тюнеру команду NULL (60) в период ожидания CW
    delay_after_ecm = 500 #дополнительная задержка после отправки ECM серверу
    ascserial = 0000000000U0000000A
    ACS = 0608 #Irdeto ACS
    coco = MCR
    dre_version=1 #DRECrypt version 1/2
    write_delay = 0
    filter = name,idx #перечень используемых фильтров
    debug = 3 #уровень логирования 0 - 3
    active = 0 #отлючение секции
    filter_group = 0 #группа, используется в условиях фильтра


    [card.auto] #если секция присутствует - автоматически будут добалены процессы
    #обрабатывающие запросы от радиозондов не описанных в секции(ях) [card]

    cas = auto
    channel = x
    debug = 3
    send_null_ins = 1 #отравлять команду 60 ресиверу (карта занята)
    delay_after_ecm = 400
    active = 0 #отлючение секции
    filter_group = 0 #группа, используется в условиях фильтра
     
    Последнее редактирование: 26 мар 2013
  3. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Секции серверов

    [server] #конфигурация сервера

    type = newcamd525 #тип сервера (поддерживается newcamd525)
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
    #список провайдеров, которые будут анонсированы клиенту
    auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
    port = 34000 #порт сервера
    key = 0102030405060708091011121314 #DES ключ
    debug = 3 #уровень логирования 0 - 3
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    extended_newcamd = 0 #отдавать несколько CAID на одном порту
    #1 - отдаем все что прописано в данной секции в provider
    #2 - сканируем все сервера типа newcamd и передаем информацию прописанную в provider найденных серверов
    keepalive = 300 #закрывать неактивное соединение по истечению n секунд
    max_not_decoded = N #отправлять нулевой DW в случае N неудачных попыток декодирования
    guest_account = account_login #
    filter_group = 0 #группа, используется в условиях фильтра
    force_auto_update = 0 #1 - отдавать принудительно номера карт для AU
    allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
    deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
    extra_data = 1 #1 - отправлять расширенный статус декодирования WiCardd клиенту

    [server] #конфигурация сервера

    type = cs357x | cs378x #тип сервера CAMD35
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
    #список провайдеров, которые будут анонсированы клиенту
    auto_provider = all, reader_name,caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
    port = 34000 #порт сервера
    debug = 3 #уровень логирования 0 - 3
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    keepalive = 300 #закрывать неактивное соединение по истечению n секунд
    suppress_cmd08 = 0 #
    not_decoded_answer_mode = 0 # 0 - по умолчанию
    # 1 - отправлять нулевой DW
    # 2 - игнорировать запрос, ничего не отправлять в ответ
    filter_group = 0 #группа, используется в условиях фильтра
    allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
    deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей

    [server] #конфигурация сервера

    type = cccam #тип сервера CCcam
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
    #список провайдеров, которые будут анонсированы клиенту
    auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
    port = 34000 #порт сервера
    cc_version = 2.0.00 #версия
    cc_build = 1892 #билд
    debug = 3 #уровень логирования 0 - 3
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    keepalive = 300 #закрывать неактивное соединение по истечению n секунд
    max_not_decoded = N #отправлять нулевой DW в случае N неудачных попыток декодирования
    filter_group = 0 #группа, используется в условиях фильтра
    allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
    deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей

    ---------- Сообщение добавлено в 10:33 ---------- Предыдущее сообщение размещено в 10:31 ----------

    Секции ридеров

    Опять же условно их можно сгруппировать в секции ридеров

    - устройств
    - эмуляторов
    - протоколов
    - прочие

    ---------- Сообщение добавлено в 10:36 ---------- Предыдущее сообщение размещено в 10:33 ----------

    Ридеры устройств

    [reader]

    name = #уникальное имя
    type = sci #встроенный картоприемник (WiCard)
    debug = 3 #уровень логирования 0 - 3
    handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
    emm_process_delay = 10 #
    write_delay = 0
    force_crypted_cw = 1 #не проверять контрольную сумму CW
    ocp = 1 #overcrypt proccessor
    wait_active = 1 #ожидать активации ридера (таймаут 13 сек)
    force_caid = 0 #DRE CAID fixup
    force_provider = 0 #DRE provider fixup
    force_ua = 0000 #DRE UA fixup
    force_ua = 0000 #Irdeto UA fixup
    filter = name #перечень используемых фильтров
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    camkey = #Irdeto camkey
    camkey_data = #Irdeto camkey_data
    boxid = #4 байта boxid
    cwekey = #NDS 26 байт CWE key
    boxkey #nagra boxkey
    rsamod = #nagra/conax RSA модуль
    rsaexp = #
    auto_update = 1 #включить поддержку EMM запросов
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    block_subs_emm = 0 #блокирование EMM с подпиской
    exec_cmd_file = ./card.cmd #путь к файлу с коммандами, которые будут отправлены на карту после инициализации
    #для DRE 59 xx xx xx CS, контрольная сумма пересчитываеся
    skip_geo = 0 #не отправлять геокод (Viaccess)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = tuxbox #встроенный картоприемник DreamBox
    device = /dev/sci0
    debug = 3 #уровень логирования 0 - 3
    handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
    emm_process_delay = 10 #
    write_delay = 0
    filter = name #перечень используемых фильтров
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    camkey = #Irdeto camkey
    camkey_data = #Irdeto camkey_data
    boxid = #NDS 4 байта boxid
    cwekey = #NDS 26 байт CWE key
    aeskey = #AES ключ
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    skip_geo = 0 #не отправлять геокод (Viaccess)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = stapi #встроенный картоприемник ST40
    device = SC0 #картоприемник SC0, SC1
    debug = 3 #уровень логирования 0 - 3
    handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
    emm_process_delay = 10 #
    write_delay = 0
    filter = name #перечень используемых фильтров
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    camkey = #Irdeto camkey
    camkey_data = #Irdeto camkey_data
    boxid = #NDS 4 байта boxid
    cwekey = #NDS 26 байт CWE key
    aeskey = #AES ключ
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    skip_geo = 0 #не отправлять геокод (Viaccess)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = openxcas #встроенный картоприемник AzBox
    device = /dev/scard #номер картоприемника
    debug = 3 #уровень логирования 0 - 3
    handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
    emm_process_delay = 10 #
    write_delay = 0
    filter = name #перечень используемых фильтров
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    camkey = #Irdeto camkey
    camkey_data = #Irdeto camkey_data
    boxid = #NDS 4 байта boxid
    cwekey = #NDS 26 байт CWE key
    aeskey = #AES ключ
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    skip_geo = 0 #не отправлять геокод (Viaccess)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = phoenix #phoenix
    device = /dev/ttyS0 #COM-порт
    device = COM1 #COM-порт под Windows
    intrts = 1 #RTS управляется через контроллер (для внутреннего порта D-Link)
    t14 = 1 #Irdeto protocol
    timeout = 1000 #
    debug = 3 #уровень логирования 0 - 3
    handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
    card_detect = 1 #определять наличии карты по сигналу CTS
    clock_freq = 3571200 #частота клока картоприемника в Гц
    filter = name #перечень используемых фильтров
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    camkey = #Irdeto camkey
    camkey_data = #Irdeto camkey_data
    boxid = #NDS 4 байта boxid
    cwekey = #NDS 26 байт CWE key
    aeskey = #AES ключ
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    skip_geo = 0 #не отправлять геокод (Viaccess)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = tuner #использовать тюнер с установленной картой доступа как источник
    device = /dev/ttyS0 #COM-порт
    device = COM1 #COM-порт под Windows
    baudrate = 115200 #скорость обмена
    protocol = bomba #протокол (HSIC, Bomba, DSR9500, Alpha)
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
    write_delay = 0
    timeout = 50 #таймаут чтения данных
    debug = 3
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = drecas #
    device = /dev/ttyS0 #COM-порт
    device = COM1 #COM-порт под Windows
    dre_cas_type = 3 # 1 - модуль первой версии (ZM_2.04) (2-5V, 10-RxD(компьютер TxD), 12-TxD(компьютер RxD), 13-GND)
    # сигнал DTR используется для переключения между MSP и ATMEL, RTS - сброс модуля.
    #
    # 3 - проприетарный картоприемник GS9300HD (1-5V, 2-RxD(компьютер TxD), 3-TxD(компьютер RxD), 4-GND)
    # сигналы расписаны поотношению к модулю и картоприемнику, RxD - входной сигнал для модуля, TxD - выход
    # Следовательно схема должна выглядеть примерно так:
    # PC_TxD -> MAX232 -> MOD_RxD
    # PC_RxD <- MAX232 <- MOD_TxD
    # GND ------------------- GND
    emm_key_file = ./ #файл в котором будут сохраняться ключи DRE при работе с модулем первой версии
    timeout = 2000 #
    debug = 3 #
    write_delay = 1 #
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    ---------- Сообщение добавлено в 10:39 ---------- Предыдущее сообщение размещено в 10:36 ----------

    Ридеры эмуляторов

    [reader]

    name = #уникальное имя
    type = goldcard | funcard #поддерживается эмуляция 16F84 и 90S8515
    fw_file = ./fw.hex #путь к файлу прошивки
    intee_file = ./int.hex #путь к файлу данных внутренней EEPROM (необязательный параметр)
    extee_file = ./ext.hex #путь к файлу данных внешней EEPROM (необязательный параметр)
    extee_size = 16 #размер внешней EEPROM в килобитах (необязательный параметр)
    guardtime = 1 #extra guard time задержка в ETU между посылкой байт в "карту"

    [reader]

    name = #уникальное имя
    type = emuvia #эмулятор viaccess
    debug = 3 #уровень логирования 0 - 3
    file = ./SoftCam.Key #файл с ключами
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = emucworks #эмулятор CryptoWorks
    debug = 3 #уровень логирования 0 - 3
    file = ./SoftCam.Key #файл с ключами
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = emubiss #поддежка BISS
    debug = 3 #уровень логирования 0 - 3
    file = ./SoftCam.Key #файл с ключами
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = emunds #эмулятор videoguard
    debug = 3 #уровень логирования 0 - 3
    file = ./SoftCam.Key #файл с ключами
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = emuirdeto #эмулятор irdeto2
    debug = 3 #уровень логирования 0 - 3
    file = ./SoftCam.Key #файл с ключами
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
     
  4. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Ридеры протоколов

    [reader]

    name = #уникальное имя
    type = newcamd525 #тип - клиент newcamd525
    account = login:password@host:15000:0102030405060708091011121314
    filter = name #перечень используемых фильтров
    debug = 3
    reconnect_delay = 10 #в секундах
    keepalive = 0 #в секундах/0 - отключить
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    repeat_section = 1 #вычитать секцию N раз
    auto_update = 1 #включить поддержку EMM запросов
    emm_cache = 1 #включить EMM кеш
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    async_mode = 1 #включить/выключить асинхронный режим (запросы передаются без ожидания ответа от сервера)
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
    reconnect_to_account_ip = name #подключаться к серверу, используя IP адрес подключенного пользователя
    force_auto_update = 0 #отправлять все ЕММ с CAID:provid не учитывая UA/SA
    #
    extra_data = 1 #1 - отправлять расширенную информацию о клиенте серверу

    [reader]

    name = #уникальное имя
    type = cs357x | cs378x #тип - клиент CAMD35
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
    account = login:password@host:15000
    filter = name #перечень используемых фильтров
    debug = 3
    reconnect_delay = 10 #в секундах
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    repeat_section = 1 #вычитать секцию N раз
    auto_update = 1 #включить поддержку EMM запросов
    emm_cache = 1 #включить EMM кеш
    timeout = 1500 #время ожидания ответа от сервера
    retry_count = 1 #кол-во попыток
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = twin #TWIN протокол
    device = /dev/ttyS0 # COM-порт
    device = COM1 #COM-порт под Windows
    baudrate = 115200 #скорость обмена
    timeout = 2000 #
    debug = 3 #
    write_delay = 1 #
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
    file = ./freq_table.txt #файл в котором прописывается связь между CAID:provID/SID и частотами транспондера (не нужен при работе с DVB)
    #формат файла:
    #CAID:provID/SID,орбитальная позиция * 10, частота транспондера в МГц
    #0500:023700/2B00,360,12322

    ---------- Сообщение добавлено в 10:43 ---------- Предыдущее сообщение размещено в 10:42 ----------

    Ридеры прочие

    [reader]

    type = ocp #OverCryptProcessor
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW

    [reader]

    name = #уникальное имя
    type = cache #кеш ридер, все запросы попавшие в очередь этого ридера отрабатываются только из кеша
    debug = 3 #уровень логирования 0 - 3
    active = 0 #отлючение секции
    ecm_queue_size = 8 #размер очереди запросов
    ecm_ttl = 5000 #время жизни ECM запроса в мс
    ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
    recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
    provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров

    ---------- Сообщение добавлено в 10:47 ---------- Предыдущее сообщение размещено в 10:43 ----------

    Секции фильтров

    [filter]

    type = pre|post|both|emm
    rule = [условие];[условие];[присвоение];[присвоение];[функция];[условие];[действие]
    debug = 0

    примерчик

    [filter]

    name = name
    debug = 3
    rule = caid=500;ident=030600;reject
    rule = caid=500;ident=023700;accept
    rule = caid=4ae0;ident=0;caid:=4ae1;ident:=11;accept
    rule = fakecw


    Синтаксис команд:
    операторы присвоения:
    := присвоить
    += прибавить
    -= вычесть
    /= разделить
    %= модуль
    *= умножить
    |= ИЛИ
    &= И
    ^= исключающее ИЛИ

    операторы отношения:
    = равны
    != не равны
    >= больше или равно
    <= меньше или равно
    &&= истенно если результат (A & B) не равен нулю

    [] индексация данных начиная с 0, адрес задается в десятичной системе ecm[0] = 80,81

    переменные:
    gvar[] глобальные, доступны для всех фильтров
    lvar[] локальные, привязаны к цепочке фильтров секций account, dvb, tuner
    rvar[] переменные запроса, доступны для всех фильтров через которые проходит запрос

    EMM
    emm[] доступ к содержимому EMM, emm[0] - номер таблицы, emm[2] - младший байт размера EMM
    caid
    pid
    rlen
    ip ip = 127.0.0.1/32,10.0.0.1/8 проверить принадлежность к IP адресу
    service_type тип:
    SERVICE_TYPE_NEWCAMD = 4
    SERVICE_TYPE_CS357 = 5
    SERVICE_TYPE_CS378 = 6
    SERVICE_TYPE_CCCAM = 7
    service_id номер порта сервера на который пришел запрос
    timeframe
    rvar[]
    lvar[]
    gvar[]
    client имя клиента отправившего запрос client=DVB*,test_account,tuner*

    dump вывод содержимого ECM/EMM в лог
    reset

    accept
    reject
    next
    skip

    ECM pre/post/both
    caid
    provid
    ident
    sid
    pid
    chid
    group
    demux
    status : ECM_REQ = 0,
    ECM_PENDING = 1,
    ECM_DECODED = 2,
    ECM_DECODED_CACHE = 3,
    ECM_DECODED_FAKE = 4,
    ECM_NOT_DECODED = 5,
    ECM_REJECTED = 6,
    ECM_DECODE_ERROR = 7,
    ECM_TIMEOUT = 8


    ecm_delay
    service_type
    service_id
    ecm[]
    rlen
    class
    overcrypt
    banned
    limit
    geo
    timeframe
    ip
    rvar[]
    lvar[]
    gvar[]
    client
    betawrap
    betaunwrap
    hash вывести в лог хеш сигнатуру запроса
    ban
    dump
    reset
    accept
    reject
    next
    skip
    fakecw

    источником запросов являются server/account, dvb, tuner

    список pre/post/both/emm фильтров задаются ключем filter в секциях конфигурации account, dvb, tuner, reader

    ---------- Сообщение добавлено в 10:50 ---------- Предыдущее сообщение размещено в 10:47 ----------

    да забыл- еще балансир

    [balancer]

    name = name #уникальное имя
    name = default #в случае переопределения настроек для балансировщика, который используется поумолчанию
    chain = 0,1;2;3 #цепочка ридеров задается имя ридера
    #chain = card_1, сard_2; card_3
    #что означает - запрос будет сбалансирован (по степени загрузки ридера) между двумя ридерами card_1 и card_2 и в случае,
    #если не будет декодирован, то будет передан в следующую по цепочке группу в которой только один ридер card_3
    mode = 0 #0 - выбирать ридер с наименьшим временем декодирования запроса (кол-во запросов в очереди * среднее время декодирования)
    #1 - выбирать ридер с наименьшим кол-вом запросов в очереди
    #2 - выбирать первый ридер в группе
    #3 - round-robin
    # chain = cardA/3, сardB/5, cardC/123
    # через косую черту задается кол-во запросов, которые можно отдать в ридер, если порядковый номер поступившего запроса больше,
    # то запрос отправляется в следующий по цепочке ридер, если это последний ридер и кол-во запросов превышено,
    # обнуляются счетчики запросов всех ридеров и запрос передается в начало цепочки
    #4 - параллельное декодирование несколькими ридерами
    debug = 3

    Вот практически и все. Все это многообразие настроек показывает нам возможность очень гибкого использования wicardd. Для нас практическое применение имеют существенно меньшее количество конфигов.​

    Как все это использовать на практике , применительно к azbox рассмотрим далее
     
  5. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Ну вот почитали теорию теперь к практике

    Что бы смотреть ТВ с использованием данного эму нам осталось сделать 2 вещи
    1 запустить эмулятор (вкл - выкл его в системе по усмотрению)
    2 обеспечить его запуск те подготовить рабочий конфиг
    Пока будем считать что эмулятор у нас запускается (хотя без конфига – это врядли)

    Начнем с него
    Для начала мы должны определиться – что мы хотим

    К примеру я хочу смотреть :
    - бисы
    - криптоверк
    - шару
    - ну и конечно на шару 3к (без интернета)

    Приступим

    Для начала возьмем:
    Из секций общего назначения секции

    [global]
    active = 1 #сделаем его активным
    log = /tmp/wicardd.log #включим логгирование в файл –для анализа, потом его можно отключить
    log_size = 100 #установим макс размер формируемого логфайла
    debug = 3 #определим полноту выводимой информации в лог файл
    daemon = 0 #оставим пока так , хотя как будет видно далее запуск эмулятора будет все равно проходить в режиме demon

    В готовом конфиге коментарии можно будет убрать
    Кто привык пользоваться программой syslog может подключить этот режим здесь
    По этой секции вроде все, далее

    [webif]
    port = 8081
    debug = 0
    active = 1


    Не знаю, нужен ли он мне , или нет
    Пока оставим, хотя я им так и не воспользовался
    Из секции устройств возьмем секцию

    [dvb]
    active = 1#сделаем его активным
    type = DVBAPI3
    rerequest_not_decoded = 1#если не декодировано – отправить повторный запрос
    sdt = 1#вычитывать название сервисов из потока
    ecm_info = 1#создадим файл ecm.info в формате wicard в /tmp
    debug = 3#определим полноту выводимой информации в лог файл

    DVBAPI3 –прикладнной программный интерфейс для цифрового телевещания (DVB)
    Для azbox type = DVBAPI3, если кто не знает какой тип использовать – можно поставить auto, эмулятор сам определит тип и его подключит
    ecm_info – нужный файлик, в нем будет находиться служебная информация (в мультиплексированном потоке условного допуска цифрового телевещания имеется 2 типа потока ECM (Entitlement Control Messages) и EMM (Entitlement Management Messages). Если вкратце, ECM управляют непосредственно возможностью просмотра программ, а EMM управляют подписками абонентов) Эта служебная информация в дальнейшем может использоваться по усмотрению (например – вывод информации на экран в различных скинах).

    Все переходим к ридерам (секциям вычитки нужной нам информации )

    ---------- Сообщение добавлено в 11:32 ---------- Предыдущее сообщение размещено в 11:08 ----------

    Смотрим- что мы имеем

    [reader]
    active = 1
    type = emubiss
    file = /usr/keys/SoftCam.Key
    debug = 3



    [reader]
    active = 1
    type = emucworks
    file = /usr/keys/SoftCam.Key
    debug = 3


    ну тут вроде все понятно, просто указываем путь размещения SoftCam.Key
    Пробуем запустить и вот что получилось


    [​IMG]

    [​IMG]

    очевидно что работу ридера крипт нет смысла проверять
    займемся другим ридером
     
  6. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Ну это наверное самый интересный ридер, позволяющий смотреть «как хочу» пакет 3кол

    В Викарде реализована поддержка эмуляции голд,фан,блу,силвер карт (это то что сегодня работает)

    Но принцип один

    1 - нужны прошивки процессора и
    2 - прошивки памяти (внешней, внутренней)
    3- указать в ридере пути их размещения

    Да, для карточек помощнее PIC ов (голды) возникает уже необходимость вводить параметр временной задержки посылки байта в карту

    Я взял голд карту (прошивку) и собрал такой ридер


    [reader]
    active = 1
    name = 3k
    type = goldcard
    fw_file = /etc/tuxbox/config/pic.hex
    extee_file = /usr/keys/1/ee.bin
    debug = 3


    кстати в последней прошивке голда автообновление уже включено включать его оттдельной строкой нет необходимости
    Вставляем этот ридер в наш конфиг и смотрим что имеем, а имеем мы вот что
    [​IMG]


    [​IMG]

    пока все ок
     

    Вложения:

    • Blue_7.zip
      Размер файла:
      1,5 КБ
      Просмотров:
      165
    • Silver_07.rar
      Размер файла:
      3,4 КБ
      Просмотров:
      133
    • PIC_GW_07_ALL.zip
      Размер файла:
      2,1 КБ
      Просмотров:
      165
  7. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    PIC я взял из последнего архива - переименовал его в pic.hex

    ну что ж из задуманного осталость разобраться только с шарой

    ---------- Сообщение добавлено в 12:39 ---------- Предыдущее сообщение размещено в 12:01 ----------

    Идем к провайдеру и смотрим параметры просмотра купленной шары
    У меня VIP пакет
    Для построения конфига сейчас я возьму только один пакет – плюсов
    Остальные возможно рассмотрим при рассмотрении фильтров
    Итак
    Этот пакет (НТВ+Россия и Укрина) провайдер представляет
    по протоколу newcamd525 - те я – клиент протокола newcamd525

    CAID:0500
    IDENT:0500B00,040600,030600
    Порт:30000

    Берем подходящую секцию (из секции протоколов)

    [reader]
    active = 1
    name = NTV+#это чтоб я знал
    type = newcamd525
    account = логин:пароль@ip адрес шары:30000:0102030405060708091011121314
    debug = 0
    reconnect_delay = 10
    emm_cache = 1 #включим ЕММ кеш
    ecm_ttl = 5000


    если по этому порту транслируется еще другой пакет – ничего страшного
    значит ридер будет “вычитывать” два пакета
    те на каждый порт – свой ридер
    пробуем
    [​IMG]

    [​IMG]
     
  8. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Итак мы собрали рабочий конфиг, его можно дополнять, оптимизировать
     

    Вложения:

    • wicardd.zip
      Размер файла:
      514 байт
      Просмотров:
      770
  9. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Теперь поговорим о фильтрах

    Если Вы обратили внимание то построенный нами конфиг не содержит ни одного фильтра, тем не менее все работает и показывает.
    Основное назначение фильтров – организовать тонкую настройку работы Викарда
    Структуру и синтаксис мы рассматривали ранее
    Вообще общее правило таково – для каждого ридера свой фильтр
    К примеру, возьмем секцию бисов

    [reader]
    active = 1
    type = emubiss
    file = /usr/keys/SoftCam.Key
    debug = 3

    чтобы ридер вычитывал из потока только бисовые каналы (они имеют caid=2600), а остальные пропускал и вычитанные каналы декодировались используя SoftCam.Key
    допустима такая организация

    [filter]
    name = biss
    rule = caid=2600;accept

    [reader]
    active = 1
    type = emubiss
    file = /usr/keys/SoftCam.Key
    debug = 3
    filter = biss

    В последней редакции Викарда фильтрация чуть изменена
    Правила фильтрации применяются к самому DVB модулю те организуются в секции [dvb] таким образом (на примере фильтрации HD и SD при их трансляции с одного порта)

    [dvb]
    active = 1
    type = DVBAPI3
    filter = dvb
    rerequest_not_decoded = 1
    sdt = 1
    ecm_info = 1
    debug = 3

    [filter]
    name = dvb
    rule = caid=4ae1;ident=11;ident:=0;accept=3к
    rule = caid=0500;ident=040600;accept=NTV+
    rule = caid=0500;ident=050B00;sid=2F45,2F46,2F47,2F48,2F49,2F4A,3715,3716,3717,3718,3719,371A,4E85,4E86,4E87,4E88,4E89,4E8A;accept=NTV+
    rule = reject

    Что бы это значило

    rule = caid=0500;ident=040600;accept=ntvplus

    правило обработки (фильтрации) такое = из потока с caid=0500 получить только информацию провайдера с идентом 040600 и это правило (информацию) передать ридеру имеющему

    name = NTV+

    Для 040600 нет необходимости сегодня перечислять сиды Дело в том, что на HD каналах нет теперь идента 040600.
    Поэтому, когда включаешь HD канал (сид канала), то и выбирать не приходится, каким идентом открывать канал. А вот когда включаешь SD канал, то там присутствуют оба идента.
    И как раз фильтр для 050В00 перечисляет, каким только каналам можно открываться данным идентом.
    rule = caid=0500;ident=050B00;sid=2F45,2F46,2F47,2F48,2F49,2F4A,3715,3716,3717,3718,3719,371A,4E85,4E86,4E87,4E88,4E89,4E8A;accept= NTV+

    В конце фильтра rule = reject, а не accept
    Таким образом запрещаются все отстальные каиды и иденты, которые ранее не перечислены в фильтре.
    А если поставить accept, то не перечисленный каид или идент будет проходить через такой фильтр. И Викард будет "тратить" время и ресурс в поисках, что с ним делать.

    rule = caid=4ae1;ident=11;ident:=0;accept=3к

    ident:=0 - это значит , что присваивается нулю.
    Те если для (4AE1:11) - то заменить id провайдера на 0 (ident:=0) и передать запрос в диспетчер запросов.
    Подмена нужна только в том случае, если ключи берутся с хитрого сервера (те пользуемся шарой).

    Это основные момента по фильтрации
     
  10. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Итак подошло время рассмотреть организацию запуска эмулятора

    Для начала необходимо определить - Куда мы положим конфиг файл

    Смотрим описание викарда (его команды)

    Основные команды (те ключи командной строки запуска):

    # -h help показать помощь
    # -d daemon запустить в режиме демона
    # -c [filename] use config filename использовать файл конфигурации отличный от /etc/wicardd.conf и ./wicardd.conf


    Рекомендуемый вариант запуска (от автора)

    /usr/bin/wicardd-mipsel –d

    Однако в этом случае эмулятор сам автоматом ищет конфиг файл в /etc/wicardd.conf или в текущей директории ./wicardd.conf
    Тем не менее при запуске эмулятора без конфиг файла появится сообщение в логе что не найден конфиг файл /var/tuxbox/config/wicardd.conf

    Таким образом можно положить конфиг файл в:

    1 - /etc/wicardd.conf
    2 - /var/tuxbox/config/wicardd.conf
    Если нет таких папок - создать
    Конфигу обычно права 644
    Самим папкам (если их создали) - 755
    3 - Есть еще вариант – использовать в командной строке запуска параметр –c
    Использование его позволяет разместить конфиг файл в любом удобном месте, однако в командной строке после него необходимо указать полный путь размещения конфига
    4 - Наконец можно создать сим линк с каталога var на etc/ tuxbox
    Итак общий cкрипт запуска выглядит так

    /usr/bin/wicardd-mipsel -d -c /etc/tuxbox/config/wicardd.conf &

    Разобрались с конфигом
    Теперь – как запустить
    Напишу чуть позже, пока же кому не терпится проверить все это предлагаю простой вариант

    Это тот случай если Вы будете использовать только один этот эмулятор, не использовать камд менеджер (о нем позже)
    В этом случае при запуске ресивера викард загрузится и постоянно будет Вами использоваться
    Запуск викарда – с запуском ресивера
    Берем приложенный ниже скриптик
    Кладем его в /etc/rcS.d
    права 755
    запуск и вперед
    по скрипту камдменеджеру чуть позже
     

    Вложения:

    • S99we3.zip
      Размер файла:
      227 байт
      Просмотров:
      374
    Djannetta нравится это.
  11. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    зы
    для OpenPli 3.0 - сам запуск чуть другой
     
  12. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    Общий экскурс в организацию запуска приложений люникс машин.

    Процесс начальной загрузки построен по принципу использования такого понятия как уровни выполнения –ранлевелы.
    Их можно рассматривать как способ приведения системы к определенной конфигурации без ее переустановки.

    После установки приложения в люникс системе оно помещает в директорию /usr/local/etc/rc.d файл - скрипт для запуска своего сервиса. Который затем читается скриптами инициализации системы. Эти скрипты затем выполняются в ходе последующих стадий запуска системы.

    У нас скрипты запуска различных сервисов находятся в директории init.d и директории rcN.d , где N – номера от 1 до 6 в которых находятся символьные ссылки в определенном формате на скрипты в init.d. В один из моментов начальной загрузки системы управление переходит к скрипту /etc/init.d/rc. Этот скрипт занимается управлением уровнем выполнения. В этом случае он просматривает каталоги /etc и сначала ищет в них файлы начинающиеся на К и запускает их по порядку возрастания номеров, идущих сразу после первой буквы К в их имени. Каталог /etc/rcN.d как правило не содержит файлов как таковых а только символические ссылки на файлы /etc/init.d
    Буква К в начале имени говорит rc что скрипт надо запускать с ключом stop. Все это справедливо и для ссылок с именем S только те же файлы из будут запущены теперь с ключом start
    Каждый скрипт должен иметь в конце расширение .sh , быть shell – файлом и каждый скрипт должен быть выполняемым. Последнее требование может быть выполнено путем установки ему командой chmod уникальных прав доступа 755.

    Общая структура скрипта

    Первая часть скрипта – заголовок состоит из хэшбэнга, указывающего какой интерпретатор использовать.
    Затем следует проверки существования программ.
    Затем идут функции запуска и останова сервисов.
    Основная часть скрипта – выполнение определенных действий в зависимости от аргумента.
    Где то так
    Нас конечно будут интересовать скрипты запуска эмуляторов на нашем ресивере. Управление этими скриптами организовано через плагин - камд менеджер. Различные варианты этих менеджеров имеют отличающуюся структуру используемых скриптов
     
    Djannetta нравится это.
  13. ng16v

    ng16v Новичок

    Регистрация:
    10 мар 2009
    Сообщения:
    23
    Симпатии:
    1
    Если создать файл wicardd.sh с правами 755, положить в папку скрипт и после перезагрузки в блю панели wicardd не виден, что может быть?
     
  14. ndminion

    ndminion Профи в Сат-ТВ

    Регистрация:
    8 ноя 2008
    Сообщения:
    408
    Симпатии:
    90
    ng16v wicardd_cam.sh так должно быть
     
  15. gorr

    gorr Любитель Сат-ТВ

    Регистрация:
    31 мар 2007
    Сообщения:
    350
    Симпатии:
    27
    по камд менеджеру чуть позже
    to ng16v - какой имидж?
    какой скрипт - скрипт для запука напрямую - без камд менеджера или через менеджер
    если через - то через какой

    в OpenPli OpenPLi 2.1 в папке скрипт есть папка камд
    скрипт - в камд
     
  16. ndminion

    ndminion Профи в Сат-ТВ

    Регистрация:
    8 ноя 2008
    Сообщения:
    408
    Симпатии:
    90
    gorr у меня непонятки с викардом 1.13, там я прописую путь к конфигу, а поскрипту ясно, что он не находит его ......все прописывал как ты указывал с "-с"...сборка опенпли 2.0

    если указываю скрипт с -d пишет так в конце daemonizing...... что это может быть???
     
  17. ng16v

    ng16v Новичок

    Регистрация:
    10 мар 2009
    Сообщения:
    23
    Симпатии:
    1
    Скрипт следующий (имиджGP2):
    CAMD_ID=13
    CAMD_NAME="WiCard 1.12"
    CAMD_BIN=wicardd-mipsel

    remove_tmp () {
    rm -rf /tmp/*.info* /tmp/*.tmp*
    }

    case "$1" in
    start)
    remove_tmp
    /usr/bin/wicardd-mipsel -d -c /etc/tuxbox/config/wicardd.conf
    ;;
    stop)
    killall -9 wicardd-mipsel
    remove_tmp
    ;;
    *)
    $0 stop
    exit 0
    ;;
    esac

    exit 0

    В блю панели отсутствует.
    Спасибо.
     
  18. ndminion

    ndminion Профи в Сат-ТВ

    Регистрация:
    8 ноя 2008
    Сообщения:
    408
    Симпатии:
    90
    я разобрался для себя и все пошло:
    - удалил фильтра (остались от старых настроек)
    - поправил одно в скрипте CAMD_ID=4099 (это для камменеджера) и для всех wicardd_cam.sh - каменеджер будет лишь потом его видеть!!!!
     
  19. ng16v

    ng16v Новичок

    Регистрация:
    10 мар 2009
    Сообщения:
    23
    Симпатии:
    1
    Большое спасибо. Все работает без проблем и описание работы в постах лучше не бывает. Осталось попробовать с mgcamd и все.
    Еще раз спасибо.

    ---------- Сообщение добавлено в 12:09 ---------- Предыдущее сообщение размещено в 11:42 ----------

    Какой CAMD_ID для связки wicard и mgcamd?
     
  20. ndminion

    ndminion Профи в Сат-ТВ

    Регистрация:
    8 ноя 2008
    Сообщения:
    408
    Симпатии:
    90
    такой же 4099
     
Похожие темы
  1. 1zotope

    Wicardd

    1zotope, 19 мар 2011, в разделе: VU+
    Ответов:
    3
    Просмотров:
    3.546
  2. kib11
    Ответов:
    6
    Просмотров:
    2.807
  3. gorr
    Ответов:
    139
    Просмотров:
    44.612
  4. gorr
    Ответов:
    20
    Просмотров:
    15.985
  5. RussoBalt
    Ответов:
    0
    Просмотров:
    2.923
Загрузка...

Поделиться этой страницей