Project

General

Profile

Инструкция для инженера технической поддержки

Установка и обновление fmtapper’а

ПО для FM-мониторинга можно установить на ОС Ubuntu Server 14.04 LTS или выше.
Установка производится с помощью менеджера пакетов apt-get из специального репозитория.
Для обновления версии, просто выполните установку ПО поверх имеющейся версии.
Убедитесь в наличии файла "/etc/apt/sources.list.d/repo.fmtapper.list" с следующим содержимым:

Дистрибутивы:

  • fmtapper - программа для захвата и записи аудиопотока (полная версия, работает с ключом защиты)
  • fmtapper-lite - lite-версия, которая работает только с устройствами ТР-705
  • tapperui - web-интерфейс для настройки тюнеров (работает без ключа защиты)

На armhf-архитектуру1 (в частности, на устройства ТР-707) устанавливается только lite-версия ПО.
Установка полной версии:

  • apt-get update
  • apt-get install fmtapper tapperui

Установка lite-версии:

  • apt-get update
  • apt-get install fmtapper-lite tapperui —no-install-recommends

Установка lite-версии на Ubuntu 18.04:

  • sudo apt update
  • sudo apt install python-flask=0.10.1-2build2
  • sudo apt install tapperui --no-install-recommends
  • suod apt install fmtapper-lite
  • sudo systemctl restart uwsgi

Посмотреть версию установленного ПО можно с помощью команды dpkg -l | grep fmtapper
пример:

# dpkg -l | grep fmtapper
ii  fmtapper-lite                        1.4.2.41.gab7d39e.lite.trusty        armhf        Utility that records audio stream to files
ii  tapperui                             1.1.46.gc08d6b4.master               all          Web interface for fmtapper


В результате вывода команды можно определить, что установлена lite-версия fmtapper’а, версии 1.4.2.41.gab7d39e.lite.trusty, а так же установлен веб-интерфейс приложения tapperui версии 1.1.46.gc08d6b4.master

Какая версия ПО доступна в репозитории, можно с помощью команды apt-cache madison %package% (предварительно необходимо выполнить обновление индексов пакетов)
пример:

# apt-get update
# apt-cache madison fmtapper-lite tapperui
fmtapper-lite | 1.4.2.48.g58f1db7.lite.trusty | http://repo.fmtapper.ru/archive/ trusty/ Packages
tapperui | 1.1.105.g083d438.master.trusty | http://repo.fmtapper.ru/archive/ trusty/ Packages

Примечание к Ubuntu 16.04

Перед установкой ПО, необходимо выполнить следующие команды (временное решение проблемы):

  1. sudo apt-get install upstart-sysv
  2. sudo update-initramfs -u
  3. sudo apt-get purge systemd
  4. sudo reboot

Если на шаге 3 возникла ошибка, повторить шаги 3 и 4.

Обновление пакетов и установленной ОС

Рекомендуется поддерживать актуальную версию установленных пакетов и периодически выполнять их обновление.

  • apt-get update - обновление индексов пакетов
  • apt-get upgrade - обновить установленные пакеты в том же самом дистрибутиве (обычно этого достаточно для профилактического обслуживания)
  • apt-get dist-upgrade - обновление дистрибутива до последней версии
    например, если необходимо обновить ОС 16.04.1 до 16.04.3
  • do-release-upgrade - обновляет ОС до нового LTS-релиза (решение об установке этого обновления должно быть осознанным и обоснованным)
    например, если необходимо обновить ОС с 14.04 до 16.04

Работа с образом

1. Монтирование разделов образа из IMG файла

Прежде всего необходимо узнать смещения в IMG файле, по которым находятся начала разделов. Это производится с помощью команды fdisk -lu disk.img Пример выполнения на абстрактном образе:

$ /sbin/fdisk -lu disk.img
You must set cylinders.
You can do this from the extra functions menu.

Disk disk.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes

      Device Boot      Start         End      Blocks   Id  System
disk.imgp1   *          63       96389       48163+  83  Linux
disk.imgp2           96390     2056319      979965   82  Linux swap / Solaris
disk.imgp3         2056320    78140159    38041920    5  Extended
disk.imgp5         2056383     3052349      497983+  83  Linux
disk.imgp6         3052413    10859939     3903763+  83  Linux
disk.imgp7        10860003    68372639    28756318+  83  Linux
disk.imgp8        68372703    76180229     3903763+  83  Linux
disk.imgp9        76180293    78140159      979933+  83  Linux

Убеждаемся, что сектора в образе имеют размер 512 байт (строчка Units) и выясняем начальный сектор интересующего нас раздела, например, 7-го : 10860003
С учетом размера сектора 512 байт, смещение в файле будет 10860003 * 512 = 5560321536 байт.

Полученное значение параметра необходимо передать команде losetup, которая создаст в системе loopback устройство для последующего монтирования в качестве диска (из-под рута):

# losetup /dev/loop0 disk.img -o $((10860003 * 512))


В случае, если loop0 уже задействован, указать loop1 и тд.
Далее, смонтировать устройство:

# mount /dev/loop0 /mnt

Возможен также вариант монтирования одной командой (работает не со всеми версиями команды mount):

# mount -o loop,offset=$((10860003 * 512)) disk.img /mnt

Дальнейшая работа и демонтирование аналогичны работе с обычным диском. Удаление loop устройства осуществляется с помощью losetup -d /dev/loopN

2. Создание образа с носителя

Носитель с которого создается образ НЕ ДОЛЖЕН БЫТЬ СМОНТИРОВАН

С помощью команды fdisk или аналогичной узнаем общий объем, который занимают разделы на носителе (округлим в большую сторону), для примера возьмем 2ГБ
С помощью команды dd указав ей источник, приемник, размер блока и количество блоков создадим IMG образ, пример(из-под рута):

# dd if=/dev/sda of=/home/support/image.img bs=1M count=2048


Данная команда скопирует с УСТРОЙСТВА /dev/sda в ФАЙЛ /home/support/image.img 2048 блоков, каждый из которых размером 1 Мегабайт, таким образом, после ее выполнения, в файле будет 2 ГБ информации перенесенной с самого начала носителя sda. Это и есть желаемый образ.

Следует отметить, что копируемый объем лучше брать с небольшим запасом, чтобы случайно не обрезать последний раздел (это приведет к повреждению его ФС)

Диагностика проблем и неисправностей

Важная информация

Команды, которые нужно вписать в консоль, начинаются с символов "#" или "$", строчки без этих символов - пример вывода, их вставлять в командную строку не надо!
"#" - команда выполняется от супер-пользователя. Необходимо либо перед командой указать ключевое слово "sudo", либо повысить права своей учетной записи до супер-пользователя командой "sudo su"
"$" - команда выполняется от обычного пользователя, использовать "sudo" не обязательно.

1. Закончилось место на диске

Симптомы:
На всех тюнерах, включая интернет источники, остановлена запись. Такое может возникнуть, если на диске лежат лишние данные, которые не отслеживаются системой очистки.
Не открывается веб-интерфейс или открывается частично.

Что необходимо сделать:

  1. Посмотрите статистику использования дискового пространства
    пример:
    # df -h | grep -E "(/dev/)"
    /dev/mmcblk0p2   15G   14G     0 100% /
    /dev/mmcblk0p1   64M   11M   54M  17% /media/boot
    /dev/sda1       450G  185G  242G  44% /home

    В зависимости от раздела, где закончилось место, могут возникнуть разные проблемы. Если закончилось в "/home" - невозможна будет запись с тюнера. Если в "/" - общие и массовые проблемы.
  2. Ищем каталог, который занимает больше всего места и пробуем его почистить. (Если закончилось место в "/home" - вычищаем оттуда лишнее, проверяем работу сервиса очистки от ПО fmtapper)
    На примере закончившегося места в корневом разделе, чистка лог-файлов
    # du -h --max-depth=10 / | sort -h | grep -v /home | tail -n 10
    124M    /var/lib/apt
    124M    /var/lib/apt/lists
    128M    /opt
    146M    /var/lib
    218M    /usr/lib
    376M    /var/log/nginx
    413M    /usr
    571M    /var/log
    773M    /var
    186G    /
  3. Удалить лишние каталоги, которые не относятся к настроенным тюнерам с помощью команды rm -rf /home/support/media/%badDir%
    ВНИМАНИЕ!
    Будьте осторожны с данной командой, неправильно указанный путь к директории может привести к полной очистке всех дисков. Пример правильной команды: rm -rf /home/support/media/trash

2. Перегрузка CPU из-за процесса kswapd0

Симптомы:
Общая повышенная нагрузка на CPU (более 90%).
В системе мониторинга процесс kswapd0 потребляет более 1% CPU.

Что необходимо сделать
Проблема временная, до перехода на новую ОС.
Для корректного сброса процесса, необходимо ввести команду от root-пользователя:

# echo 1 > /proc/sys/vm/drop_caches

3. Перегрузка CPU

ВНИМАНИЕ: ни в коем случае не запускать ядра вручную, если температура на CPU выше нормы (см. нотификацию в системе мониторинга)%

Симптомы:
LoadAverage больше 0.8 на одно ядро (можно обнаружить по нотификации в системе мониторинга).

Что необходимо сделать

  • Убедиться, что в системе не запущено процессов, нагружающих CPU сверх нормы
    например:
    # top
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
      538 root      20   0  180488  46040   3048 S  60.0  2.2  11955:05 fmtapper
      530 root      20   0  180056  45436   3044 R  58.7  2.2  11740:53 fmtapper
    18045 root      20   0  172376  45804   3044 S  58.7  2.2   5082:25 fmtapper
      540 root      20   0  180000  45372   3044 R  57.1  2.2  11399:20 fmtapper
    14683 root      20   0   76468  30772   2164 S   5.3  1.5 498:37.54 uwsgi
  • Проверить количество активных ядер на CPU
    # lscpu
    Architecture:          armv7l
    Byte Order:            Little Endian
    CPU(s):                4
    On-line CPU(s) list:   0-2
    Off-line CPU(s) list:  3
    Thread(s) per core:    1
    Core(s) per socket:    3
    Socket(s):             1
  • Включить ядра, которые находятся в off-line режиме
    # echo 1 > /sys/devices/system/cpu/cpu3/online

4. Автоматическое назначение некорректного udp-порта при добавлении тюнера

Симптомы:
Тюнер не прослушать, трансляция и запись не запускаются, отладочный лог заканчивается следующей записью:

2022-Nov-15 17:19:37.404540    CRITICAL    Main    Exception occured: bind: Address already in use

Что необходимо сделать

1. Открыть конфигурационные файлы всех доступных тюнеров, необходимо для каждого выполнить команду:

cat /etc/fmtapper/profiles/tuner_name/fmtapper.conf

Где tuner_name - ID тюнера

2. Убедиться, что у проблемного тюнера значение в поле udp-port совпадает с одним из других тюнеров

3. Остановить проблемный тюнер

4. Заменить значение в поле udp-port на следующий свободный (5100,5101,5102 и т.д.) и сохранить.

Открыть конфигурационный файл на редактирование можно командой:

sudo nano /etc/fmtapper/profiles/tuner_name/fmtapper.conf

 Где tuner_name - ID проблемного тюнера

5.  Запустить тюнер

Внимание! Если выполнение всех пунктов не помогло, то необходимо их выполнить повторно, но после выполнения пункта 4 перезапустить FM tapper, это можно сделать следующей командой:

sudo reboot now


  1. Узнать архитектуру устройства можно с помощью команды lscpu | grep Architecture

Add picture from clipboard (Maximum size: 742 MB)