Бета по приглашениям бесплатно, вход по коду Получить код

Камера с OpenIPC

Если на камере стоит прошивка OpenIPC, агент ставится прямо на неё. Камера входит в вашу сеть сама и становится её полноценным участником: видео, ONVIF, настройки и SSH отвечают удалённо так же, как отвечали дома.

Настройки агента лежат в U-Boot-окружении, а не в файловой системе, – поэтому переживают перепрошивку rootfs. Перед началом: на камере должны быть wg, ip и fw_setenv; в прошивках OpenIPC они есть.

1. Одна строка на камере

Возьмите в панели, в разделе «Как подключить», токен подключения – он уже подставлен в готовую команду. Зайдите на камеру по SSH и выполните её:

curl -fsSL https://cloud.openipc.ru/install.sh | sh -s -- tok_...

Больше ничего выбирать не нужно. Установщик сам посмотрит, какой в камере процессор, заберёт сборку под него, сверит контрольную сумму, положит агент в /usr/sbin/, стартовый скрипт в /etc/init.d/, пропишет адрес и токен и запустит агента. Перезагрузка не нужна: служба поднимает туннель сама.

Через несколько секунд камера появится в панели – уже вашей: токен выписан вами, и устройство, вошедшее по нему, принадлежит вам с первой секунды. Привязывать его не нужно, а вот логин и пароль RTSP указать нужно – иначе видео будет пустым, см. шаг 4.

Если что-то пошло не так, установщик не объясняется на камере, а печатает двухзначный код – например cerberus: E13, «сборки под этот процессор пока нет», – и останавливается, ничего не тронув. Расшифровка всех кодов ниже, в разделе Коды установщика.

Исходники агента открыты: github.com/OpenIPC/cerberus. Там же лежат его сборки под каждую архитектуру – установщик берёт их оттуда.

2. Что при этом происходит

Знать это не обязательно, но если что-то пошло не так – вот те же шаги руками. Адрес и токен идут в U-Boot-окружение, а не в файловую систему, поэтому переживают перепрошивку rootfs:

fw_setenv cerberus_api https://cloud-api.openipc.ru/v1
fw_setenv cerberus_enrollment_token tok_...
/etc/init.d/S99cerberus restart

Раньше эти ключи назывались streq_api и streq_enrollment_token. Старые имена по-прежнему действуют, а камеры, подключённые с ними, переходить ни на что не должны: агент переносит своё сам.

Больше на камере трогать нечего: rootfs остаётся нетронутым, всё состояние агента живёт в U-Boot-окружении.

3. Если токен выписывали не вы

Камера, вошедшая по чужому токену – токену партии или выписанному монтажником, – ничья, и поток с неё не отдаётся никому. Тогда её привязывает claim-код: им вы доказываете, что железка у вас в руках. Установщик печатает его сразу после установки строкой cerberus: claim K7M29XQFTB3P; если строку потеряли, код и всё остальное состояние показывает cerberus status:

cerberus status

В панели нажмите «Добавить», введите claim-код – так, как он показан, с дефисами и в любом регистре, – и нажмите «Привязать».

4. Логин и пароль RTSP

Этот шаг нужен всегда, даже если камера уже появилась в панели. Облако забирает видео с камеры по RTSP, а он закрыт паролем: без логина и пароля облако получает от камеры пустой ответ, а не картинку, и плеер открывается чёрным.

В панели откройте «Устройства и сеть», нажмите в строке камеры кнопку RTSP и введите логин и пароль камеры. Обычно это те же, что для её веб-интерфейса; на свежей OpenIPC – root / 12345. Когда они сохранены, кнопка показывает RTSP ✓. Если камеру добавляли через «Добавить», панель спросит их сама, как только камера подключится.

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

Убрать облако с камеры

Если камера больше не должна быть в облаке, снимается всё одной строкой – так же, как ставилось:

curl -fsSL https://cloud.openipc.ru/uninstall.sh | sh

Скрипт останавливает службу, снимает туннельный интерфейс, стирает из U-Boot-окружения всё, что записал агент (адрес, токен, ключ камеры, claim-код, join-материал), убирает автозапуск из /etc/init.d/ и удаляет сам агент. Перезагрузка не нужна. Прошивку и настройки самой камеры он не трогает: видео, RTSP и веб-интерфейс остаются как были.

Запись об устройстве в облаке при этом остаётся, и это сделано нарочно: у агента нет прав отозвать самого себя. Иначе камеру, до которой кто-то дотянулся по SSH, можно было бы выписать из чужого аккаунта, не спрашивая владельца. Уберите устройство в панели – «Устройства и сеть», «Отвязать».

Поставить обратно можно тем же способом, что и в первый раз, – камера получит новый claim-код: её ключ и номер стёрты вместе со всем остальным, и для облака это новая железка.

Коды установщика

Установщик молчалив нарочно: длинное объяснение на экране камеры читать неудобно, а код – коротко и его можно назвать в чате. Вместе с кодом он печатает адрес этой страницы, чтобы искать расшифровку не пришлось:

cerberus: E13
cerberus: https://cloud.openipc.ru/docs/openipc-camera/#codes

Код – это и код возврата команды. Пока он не напечатан, на камере ничего не изменено. Тот же адрес печатает и сам агент после каждой своей ошибки (cerberus: error: …), только его ошибки – словами, и разбирает их таблица «Если что-то не так» в конце страницы.

КодЧто случилосьЧто сделать
E10команда запущена не от rootзайти на камеру под root и повторить
E11на камере нет fw_printenvэто не прошивка OpenIPC – на неё агент не ставится
E13сборки под этот процессор пока нетназвать в чате беты модель и процессор – они напечатаны строкой выше, cerberus: chip …, cpu …
E14не скачался агент или его стартовый скриптповторить команду: обычно это оборванная связь
E15контрольная сумма не сошласьповторить; если повторяется – написать в чат, файл приезжает битым
E16не записать в /usr/sbin или /etc/init.dна камере кончилось место или раздел смонтирован только для чтения
E17fw_setenv не записал адрес и токенпроверить, что окружение вообще доступно: fw_printenv
E20агент поставлен, токен не переданвыполнить две строки fw_setenv, которые установщик напечатал, и перезапустить службу
E21агент поставлен и запущен, но за 40 секунд не подключился к облакукамера не достучалась до облака: проверить адрес и связь, потом cerberus status
E30снятие (uninstall.sh) не смогло что-то убратьраздел смонтирован только для чтения или fw_setenv не работает

E20 и E21 – не поломки. Первый отвечает команде, запущенной без токена: агент на месте, ему только не сказали, куда подключаться. Второй значит, что агент запущен, но подключиться пока не смог, – код появится сам, как только камера доберётся до облака.

Если что-то не так

СимптомОбычноЧто сделать
Камера не появилась в панелитокен потрачен или истёквыпустить новый и повторить шаг 1
cerberus status пишет «not enrolled»камера не достучалась до облакапроверить адрес в cerberus_api и что у камеры есть интернет
Камера есть, потока неткамера вошла по чужому токену и не привязанаввести claim-код, шаг 3
Поток открывается пустымне задан или неверен логин и пароль RTSPзадать их, шаг 4
Камера пропала после перепрошивкивместе с U-Boot-окружением стёрт ключподключить заново, шаг 1; старое устройство отвязать в панели

Ключ камеры, её claim-код и её номер лежат в U-Boot-окружении вместе – и это сделано нарочно. Сохранить номер и потерять ключ значило бы получить камеру, которая не может ни доказать, что она прежняя, ни подключиться заново. Пока они живут вместе, стёртое окружение – это просто новая камера: подключается с нуля, а прежнюю запись достаточно отвязать в панели.