В качестве подопытного взят модуль IPG-50H10PE-S (сигнатура HI3518E_50H10L_S39 00006510.1) как самый распространённый и дешёвый. Этот модуль представляет из себя законченное устройство, содержащее сенсор изображения (матрицу) OmniVision ov9712, процессор обработки видеосигнала (DSP) Hisilicon Hi3518E со встроенной памятью DDR2 64Мб и отдельной SPI Flash памятью 8Мб. При этом на плате имеется посадочное место под 8-контактный разъём. Если его распаять, то появится доступ к следующим дополнительным функциям: аудио (вход микрофона и выход на динамик), тревожный вход и USB порт.
Под данный модуль существует единственная прошивка с поддержкой WiFi чипа rt3070 - General_HZXM_IPC_HI3518E_50H10L_S38_RT3070_V4.02.R12.20150317_ALL.bin, но она уже значительно устарела: содержит уязвимости и не может отправлять E-mail (существующие требования безопасности всех публичных почтовых серверов обязывают использовать SSL, который в ней не работает).
Также есть достаточно свежая прошивка General_HZXM_IPC_HI3518E_50H10L_S38_V4.02.R12.Nat.OnvifS.20170727_ALL.bin
лишенная этих недостатков, но в ней полностью отсутствует поддержка WiFi.
Первоначальная цель разработки была простой - получить на последней официальной прошивке поддержку WiFi адаптеров на чипе rt3070. Однако в процессе базового реверс-инжиниринга удалось добавить поддержку трёх USB WiFi адаптеров на самых распространённых WiFi чипах: Ralink rt3070, Realtek rtl8188 и Mediatek mt7601.
Так как в оригинальной прошивке команды управления WiFi тесно взаимодействуют с проприетарной программой Sofia, на данный момент не удалось вывести новые настройки в заводской WEB-интерфейс камеры или в программу CMS.
Настройка WiFi интерфейсов, а также включение множества дополнительных сервисов (в тестовом режиме), пока происходит только через текстовый конфигурационный файл /etc/ipcam.conf, хранящийся на rw разделе flash памяти камеры.
В будущем планируется вывести все настройки в полноценный альтернативный WEB-интерфейс. На данный момент он может быть активирован через /etc/ipcam.conf, однако пока только в режиме просмотра настроек. Предложения и пожелания приветствуются.
В настоящее время модифицированная прошивка содержит дополнительно:
- busybox2 - набор утилит, в т.ч. которые отсутствуют в оригинальном busybox
- bwm-ng - показометр трафика на сетевых интерфейсах
- curl - используется для Telegram бота прямо внутри камеры и работы с Yandex.Disk
- dropbear - используемый для доступа с/на камеру по протоколу SSH (+scp)
- haserl - простой CGI интерпретатор для альтернативного WEB-интерфейса
- mosquitto - простой и надежный pub/sub клиент MQTT (можно управлять и слать фото)
- syslogd - подборку демонов и утилит для отладки системы (+klogd, logread ...)
- vtund - для поднятия простых туннелей tun/tap (l2/l3) со своими скриптами управления
- webface - заготовку для альтернативного WEB-интерфейса (партнёр Octonix)
- wpa_supplicant - аутентификатор для WiFi, с генератором psk и cli-интерфейсом, а также модули ядра для монтирования USB flash накопителей, 3G модемов, интерфейсов для подключения датчиков и исполнительных механизмов.
В планах разработка собственного облачного сервиса на базе vtund для камер и регистраторов с модифицированными прошивками. Его легко сможет поднять у себя любой IT специалист с базовыми знаниями linux. В качестве базы можно будет использовать любой VPS с белым IP, и даже роутер с прошивкой OpenWrt.
Отдельным, от общего списка, стоит задача создания On-Line WEB конструктора, в котором пользователь, выбрав тип SoC, RAM и Flash, а также необходимый функционал в виде модулей программ, получит на выходе, в течение нескольких секунд, в полностью автоматическом режиме нужный образ прошивки.
Пример как это хорошо и удобно работает показан на нашем партёрском сайте http://wifi-iot.com" onclick="window.open(this.href);return false;
Приглашаются желающие протестировать Alpha версию прошивки.
Положительные результаты тестирования позволят в дальнейшем распространить данную методику модификации прошивок на остальные популярные устройства от XM.
Для принятия участия в тестировании необходимо иметь минимальный уровень подготовки - уметь обновлять прошивку штатными средствами, уметь пользоваться редактором vi и знать как подключаться к устройству по telnet. Консультации по приобретению базовых навыков при работе с Embedded Linux устройствами не производятся.
Основная часть теоретических обсуждений, анонсы, новости, инструкции и мануалы будут публиковаться в дискуссионной части ресурса, где размещена данная публикация. Обязательно подпишитесь на тему.
Для оперативного обмена информацией при тестах рекомендуется пользоваться группой в Telegram - https://t.me/joinchat/FhtyHxDpQsv8HlRliQDgqw" onclick="window.open(this.href);return false;
Первоисточник с образцами конфигурации и дополнительными материалами по прошивкам и методам сборки - https://zftlab.org/pages/2018010700.html" onclick="window.open(this.href);return false;
Первоначально прошивка будет распространяться только по запросу в группе Telegram, но в дальнейшем, после прохождения групповых тестов и “причёсываний”, будет представлена в общем доступе. Ссылка на первоисточники и регулярный просмотр обновлений - обязательна. Просим воспринять данные факты с пониманием, т.к. не хотим быть распространителями некачественного продукта. Спасибо.
Разработку проекта ведут ZigFisher - http://zftlab.org" onclick="window.open(this.href);return false; и ESonya - http://www.cctvsp.ru/" onclick="window.open(this.href);return false;