Project

General

Profile

Сервер обновлений


Описание

Сервер обновлений состоит из двух процессов:
  • uconf-server Вещает анонсы обновлений, позволяя выбрать клиенту какой мультикаст с обновлениями слушать
  • uget-server Вещает собственно обновления

Оба процесса получают опции через параметры командной строки при запуске, а так же самостоятельно обрабатывают файл со списком обновлений


Установка

Для компиляции перейдите в директорию с исходным кодом сервера и наберите

make

Для установки наберите

make install

При возникновении проблем при сборке из-за наличия бинарных файлов в архиве с исходными кодами, можно сделать

make clean

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


Конфигурация

Перед запуском сервера необходимо его настроить.

Файл конфигурации userver.conf

Перейдите в папку /etc/userver

cd /etc/userver

Затем переименуйте файл userver.conf.example в userver.conf

mv userver.conf.example userver.conf

и отредактируйте в соответсвие с вашими задачами

Опции имеют слудующее значение:
  • TTL TTL пакетов
  • UC_ADDRESS Адрес назначения процесса uconf-server
  • UC_PORT Порт вещания uconf-server
  • UC_BITRATE Битрейт анонсов обновлений (бит/сек)
  • UC_RETRY Количество повторений анонсов
  • UG_BITRATE Битрейт рздачи обновлений (бит/сек)
  • UG_PSIZE Размер пакета раздачи обновлений
  • UG_RETRY Количество повторений раздачи
  • UPDATE_LIST Адрес до файла со списком обновлений (update.list)

Список обновлений update.list

Каждая строка описывает отдельное обновление и имеет формат:

version    path    ip    port
  • version
    Для версия до 1.0075 включительно, это версия прошивки, для которой предназначено это обновление (приставки только этой версии будут обновляться)
    Для версий начиная с 1.0075u это поле имеет вид oldversion-newversion, где oldversion это версия приставки с которой происходит обновление, newversion - это версия до которой происходит обновление.
    Приставка, которая несмогла прочитать файловую систему, но успешно запустила ядро имеет версию 0
  • path путь к файлу обновления (update-enc.tgz)
  • ip адрес вещания обновления
  • port соответственно порт вещания

В качестве разделителей используются символы табуляции

Пример:

1.004    /etc/userver/update-1.004-1.0075u-enc.tgz    239.98.3.8    1301
1.0075u-1.0080c    /etc/userver/update-1.0080с.tgz    239.98.3.9    1301
1.0080b-1.0080c    /etc/userver/update-1.0080с.tgz    239.98.3.10    1301
0-1.0080c    /etc/userver/update-1.0080с.tgz    239.98.3.11    1301

Первая строка необходима для обновления с версии 1.004 до 1.0075u, вторая и третья строки - для прямого обновления до 1.0080c с версий 1.0075u и 1.0080b. Последняя строка необходима для прошивки приставки, находящейся в режиме восстановления.


Использование

для запуска сервера введите

/etc/init.d/userver start

для остановки сервера соответственно введите

/etc/init.d/userver stop

Опции командной строки

uconf-server

-b bitrate    битрейт с которым идет раздача анонса обновлений
-d dest_ip    ip-адрес назначения (в том числе, поддерживаются мультикасты)
-p port        Номер порта назначения
-r retry_count    Количество попыток. 0 - бесконечно попыток
-c cmd        команда. Используйте update для запуска обновлений
-u update_list    файл со списком обновлений
-t TTL        TTL исхоодящих пакетов

uget-server

-r retry_count     количество попыток. 0 - бесконечно
-b bitrate    Максимальный битрейт для всех раздач
-s package_size    Размер пакета
-u update_list    Файл со списком обновлений
-t TTL        TTL исхоодящих пакетов