Telegram, MQTT, Яндекс.Диск, WiFi и т.д. в IP камерах от Xiong Mai
Введение
Материал по проекту находится в стадии оформления. Последнее обновление – 2019.01.24
Используя данный Сайт, Вы выражаете свое согласие с «Отказом от ответственности» и принимаете всю ответственность за выполняемые действия с оборудованием и программным обеспечением на себя !
Просьба – при использовании материалов с сайта в своих проектах, указывать первоисточник. Спасибо!
Доступ в группу для различных обсуждений по IPCam и NVR возможен через WebIRC = Slack = Telegram
Архив прошивок с моддингом
Для удобства, ссылки на файлы и каталоги с прошивками сведены в таблицу ниже (прошивки в каталоге Modding).
Общий список устройств находится на FlyRouter.net
- IPC_XiongMai_00001532_HI3516CV100
- IPC_XiongMai_00002532_HI3516CV100
- IPC_XiongMai_00006510_HI3518EV100
- IPC_XiongMai_00006531_HI3518EV100
- IPC_XiongMai_00006538_HI3518EV100
- IPC_XiongMai_00014911_HI3516DV100 | Ограничения: vtund в разработке
- IPC_XiongMai_00014927_HI3516DV100 | Ограничения: vtund в разработке
- IPC_XiongMai_00018510_HI3518EV200
- IPC_XiongMai_00018520_HI3518EV200
- IPC_XiongMai_00022520_HI3516CV300 | Дополнительно: есть поддержка vlan
- IPC_XiongMai_00023650_XM510A1 | Ограничения: snapshot в разработке, vtund отсутствует
- IPC_XiongMai_00023651_XM510A1 | Ограничения: snapshot в разработке, vtund отсутствует
- IPC_XiongMai_00031520_HI3516CV300 | Ограничения: vtund по запросу, отдельная fw
- IPC_XiongMai_00035520_HI3516EV100 | Ограничения: vtund в разработке
Для входа в интерфейс на 81 порту используйте логин manager и пароль 1234
Для продвинутых пользователей доступны экспериментальные прошивки Buildroot и OpenWrt
Микросхема FLASH памяти производителя XMC в устройствах пока не поддерживается !!!
Текущий статус модифицированных прошивок
Доступный функционал для устройств XM | Статус |
---|---|
Поддержка сервиса IPEYE.ru | да |
Отправка снимков в группу Telegram | да |
Отправка снимков на Яндекс.Диск | да |
Отправка снимков на Google Drive | нет |
Отправка снимков в хранилище DropBox | нет |
Отправка снимков по протоколу MQTT | да |
Отправка снимков на FTP сервера | тест |
Организация L2/L3 VPN на базе VTUNd | да |
Возможность доступа на камеру через UART | да |
Возможность доступа на камеру через TELNETd | да |
Возможность доступа на камеру через SSHd | да |
Возможность доступа на камеру через FTPd | да |
Выполнение задач через запросы к INETd | тест |
Выполнение задач по расписанию через CRONd | да |
Выполнение задач по команде из Telegram | да |
Выполнение задач по команде из MQTT | нет |
Инструменты для отладки (ksyslogd, logread) | да |
Отправка телеметрии по протоколу MQTT | тест |
Возможность записи видео на USB Flash | да |
Возможность записи снимков на USB Flash | да |
Меню для настройки модулей в консоли | тест |
Альтернативный WEB-интерфейс (RO mode) | тест |
Поддержка USB Hub (только v.2.0) | тест |
Поддержка USB Flash (до 32Gb, VFAT) | тест |
Поддержка USB WiFi на чипсете MT7601 | тест |
Поддержка USB WiFi на чипсете RTL8188 | тест |
Поддержка USB WiFi на чипсете RT3070 | тест |
Поддержка USB 3G/4G модемов (ACM) | тест |
Поддержка USB 3G/4G модемов (USBSERIAL) | тест |
Поддержка USB донглов LittleWire (I2C/1W) | тест |
Поддержка USB донглов Homes-smarT (GPIO/1W) | тест |
Для подключения USB устройств необходимо приобрести или спаять соответствующий кабель.
Техподдержка
Техподдержка проекта осуществляется исключительно в группе Telegram – XM IPCam modding
Описание (пока ещё не полное)
Вариант подключения распространённого USB WiFi донгла к плате HI3518E_50H10L_S39
Пример отображения альтернативного WEB-интерфейса IPCam для партнёра Octonix
Консольный вывод информации о сетевых интерфейсах – работа идет через USB WiFi
Задачи и возможности модифицированной прошивки
Изначально прошивка создавалась для внутренних нужд ZFT Lab. и партнёрских проектов.
Текущий статус прошивки – публичная групповая разработка.
Принять участие в тестировании можно после обращения на Email или в группу Telegram (см. ниже)
Прошивка позволяет подключать через USB интерфейс:
- Flash-накопители ёмкостью до 32Gb с файловой системой VFAT
- Wi-Fi донглы на чипсетах MT7601, RTL8188 и RT3070 (у последнего пока некоторые проблемы)
- 3G/4G модемы, работающие в режиме стандартных портов ввода-вывода ttyACM и ttyUSB (тест)
Прошивка позволяет строить L2 VPN туннели:
- На публичные партнёрские сервера – FlyHub.org, FlyMon.net, Octonix.net и ZFTLab.org
- На любые приватные сервера с OS Linux, Debian/Ubuntu предпочтительны, есть примеры настройки
Прошивка позволяет отправлять уведомления и скриншоты с камеры:
- При срабатывании внешнего датчика движения и замыкании контактов на PCB
- Отправка может осуществляться как на E-mail, так и в группу Telegram
Прошивка имеет альтернативный WEB-интерфейс, который:
- Работает параллельно с унылой поделкой китайских разработчиков
- Работает в любом браузере и на любом устройстве, в т.ч. на мобильных телефонах
- Имеет современный дизайн и систему автоматически настраиваемых плагинов
- Может быть оперативно изменён под дизайн проекта заказчика или интегратора
Прошивка содержит множество скриптов, модулей ядра и GPL программ, собранных из исходников (см.ниже)
Прошивка разрабатывается специально для устройств с малым объёмом FLASH памяти (8 Mb)
Прошивка содержит скрипты специально написанные в student-style дабы начинающие могли разобраться
Расчёт максимального размера разделов, предоставленный ESonya
##################################### custom-x.cramfs.img 40000h 262144 romfs-x.cramfs.img 370000h 3604480 user-x.cramfs.img 280000h 2621440 web-x.cramfs.img 140000h 1310720 #####################################
Модули ядра
Kernel 3.0.8
- 8188eu.ko (884060) – поддержка USB WiFi донгла на чипе RTL8188
- mt7601Usta.ko (1030420) – поддержка USB WiFi донгла на чипе MT7601
- rt3070sta.ko (793339) – поддержка USB WiFi донгла на чипе RT3070
- usb-storage.ko (80334) – поддержка USB Flash донгла (диск доступен как /dev/sda)
Kernel 3.4.35
- -
Конфигурационные файлы
- /etc/ipcam.conf – основной конфигурационный файл системы, пример представлен ниже
- /etc/crontabs/root – файл конфигурации CRONd, выполнение задач по расписанию
- /var/tmp/vtund.conf – файл конфигурации VTUNd, генерируется автоматически
- /var/tmp/wpa_supplicant.conf – файл конфигурации WPA/WPA2 суппликанта, генерируется автоматически
IPCam – Setup
Пример конфигурационного файла /etc/ipcam.conf
# # ZFT Lab. 2018 | http://zftlab.org/pages/2018010700.html # Simple example of IPCam config (autogenerated) # crond_enable=1 # Активация Crond (выполнение задач по расписанию) curl_timeout=30 # Таймаут соединения и передачи данных для curl device_name=IPCam # Имя устройства device_tid=0012140138CA # Идентификатор устройства на базе MAC eth0 getty_enable=0 # Активация доступа в консоль камеры mqtt_enable=0 # -пока не используется- Активация MQTT клиента mqtt_server=ipcam.flymon.net # -пока не используется- DNS имя или IP адрес MQTT сервера mqtt_port=1883 # -пока не используется- Порт MQTT сервера mqtt_login=demo # -пока не используется- Логин MQTT клиента (email) mqtt_password=test2018 # -пока не используется- Пароль MQTT клиента mqtt_telemetry=1 # -функция в разработке- mqtt_snapshot=0 # -функция в разработке- sshd_enable=0 # Активация SSH сервера (временно деактивирован) sshd_port=22 # Порт SSH сервера storage_enable=0 # Активация драйвера USB накопителя (только VFAT) syslogd_enable=0 # Активация SYSLOGd и KLOGd и соответственно logread telegram_enable=0 # Активация Telegram бота telegram_token=123:XYZ # Токен Telegram бота telegram_group=-283722443 # ID чат-группы в Telegram telnetd_enable=1 # Активация Telnet сервера telnetd_port=23 # Порт Telnet сервера vtund_enable=1 # Активация VTUNd клиента vtund_server=ipcam.flymon.net # DNS имя или IP адрес VTUNd сервера vtund_port=7321 # -не используется- Фиксировано 5000 vtund_password=02e3e2266b9d... # -не используется- Автогенерация webface_enable=1 # Активация HTTP сервера с альтернативным интерфейсом webface_port=81 # Порт HTTP сервера wifi_enable=1 # Активация драйвера USB WiFi (только MT7601 и RT3070) wifi_ssid=CRMTGA # SSID WiFi точки доступа wifi_password=crmtga2008fly # Пароль точки доступа (psk создаётся автоматически) wifi_type=auto # -не используется- Автодетект mt7601/rt3070/rtl8188 wifi_iface=auto # -не используется- Автодетект (ra0/eth2)=>wlan0 wifi_psk=auto # -не используется- Автогенерация psk wifi_proto=auto # -не используется- Фиксировано WPA2 wifi_auth=auto # -не используется- Фиксировано AES/CCMP wifi_network=dhcp # -не используется- Фиксировано DHCP yandex_enable=0 # Активация сервиса отправки на Yandex.Disk yandex_folder=Public # Папка для складирования снапшотов yandex_login=ipcam # Логин для Yandex.Disk клиента yandex_password=test2018 # Пароль для Yandex.Disk клиента yandex_static=0 # -функция в разработке- Статическое имя передаваемого файла yandex_vtund=0 # Перекладывает маршрут на Yandex через VPN сервер ZFT Lab. #
IPCam <=> Telegram
Модуль Telegram – это набор из программ и скриптов, позволяющих отправлять данные (снапшоты) непосредственно с IP-камеры в мессенджер Telegram, а также принимать и выполнять некоторые команды (статус системы, включение внешних реле и т.д.).
Ознакомиться с примером работы Telegram бота на камере можно зайдя в отдельную группу https://t.me/joinchat/FhtyHw3wQVxqhWEE05sYKA и выполнив команду /menu запросить затем кнопкой снапшот.
Текущий статус – в разработке, доступно для тестирования.
IPCam <=> WebFace
Модуль WebFace – это разрабатываемый альтернативный интерфейс системы, работающий по-умолчанию на 81 порту. Активируется в конфигурационном файле /etc/ipcam.conf.
Текущий статус – в разработке, демо доступно для тестирования.
IPCam <=> WiFi
Модуль WiFi – это набор модулей ядра Linux и скриптов, обеспечивающих работу различных USB WiFi донглов на чипах MT7601, RTL8188, RT3070.
Список проверенных в реальной работе USB устройств (дополняется):
- WiFi донгл TP-Link TL-WN727N V4.0 (чип MT7601)
- WiFi донгл TP-Link TL-WN725N (чип RTL8188)
- WiFi донгл без бренда и корпуса (чип RT3070)
Текущий статус – доступно для тестирования.
IPCam <=> Yandex.Disk
Модуль Yandex – это набор из программ и скриптов, позволяющих отправлять данные (снапшоты) непосредственно с IP-камеры на Яндекс.Диск. В конфигурационном файле /etc/ipcam.conf необходимо активировать опцию yandex_enable, а так-же указать свой логин и пароль.
При выполнении в консоли команды ipcam_yandex, снапшот будет отправлен в облако, в папку Public/IPCam. Название папки и имя устройства так-же можно задать в конфигурационном файле. Предлагаемая сообществом структура каталогов пока в разработке.
Для жителей Украины существует специальная опция yandex_vtund, включающая маршрутизацию через тестовый VPN туннель. Для тестового циклического запуска отправки снапшотов в облако можно выполнить в консоли команду, представленную ниже.
(while true ; do sleep 60; /bin/ipcam_yandex; done) &
Текущий статус – доступно для тестирования.
Старт процедуры тестирования
Первоначально необходимо загрузить в камеру последнюю официальную прошивку от производителя
После обновления и сброса устройства на заводские настройки можно пробовать заливать тестовые прошивки.
Заботясь о пользователях, в тестовые прошивки мы специально не включаем загрузчик (bootloader) и процедуру его обновления, так что сломать камеру при экспериментах достаточно трудно.
План разработки
- Добавить поддержку USB 1.1 устройств через драйвер ядра HIUSB OHCI
- Сделать возможным изменение пароля у root и создание новых пользователей в системе
- Создать меню для изменения настроек через telnet/ssh без использования редактора vi
Справочник
- Для инженерного доступа на устройство через telnet (или ssh) используйте логин root и пароль xmhdipc
Благодарности
Данный проект является результатом дополнительной совместной работы многих хороших людей, а именно:
- ESonya – Игорь, г.Сергиев Посад
- FlyRouter – Игорь, г.Симферополь
- max380 – Максим, г.Екатеринбург
- Octonix – Виталий, г.Киев
- Oleg34 – Олег, г.Волгоград
Так-же выражаем благодарость общественному активу тестировщиков:
- bulka58807 – Андрей, г.Екатеринбург
- VFuchs – Василий, г.Курск
- Wolodya – Владимир, г.Львов
Отдельно выражаем благодарность компании MultiXvision за предоставленное для тестов оборудование.
Внутренние ссылки
- 2019-01-04 Детали для ремонта IPC и NVR
- 2018-05-01 Самодельные корпуса для видеокамер из фитингов ITAL 40’
- 2018-04-05 HW/SW инструментарий для изучения и ремонта устройств
- 2018-03-25 Модифицируем прошивки IP видеорегистраторов от Xiong Mai
- 2018-03-12 Сбор информации по IP-камерам JVT на базе SoC Hisilicon
- 2018-03-11 Сбор информации по IP-камерам Topsee на базе SoC Hisilicon
- 2018-03-10 Сбор информации по IP-камерам на базе SoC GM8180
- 2018-02-27 Датчики и телеметрия – Digispark, Micronucleus, OpenWrt
- 2018-02-21 Съём показаний по RS485 порту с электросчётчиков Меркурий
- 2018-02-09 Запуск Buildroot и OpenWrt на устройствах с SoC Hisilicon
- 2018-02-01 Трюки и хаки при экспериментах с IPCam от Xiong Mai
- Telegram, MQTT, Яндекс.Диск, WiFi и т.д. в IP камерах от Xiong Mai
- 2018-01-05 IPCam SP009 и SP012 от компании Sricam – SoC GM8135S
- 2017-10-28 Просмотр ‘псевдо-видео’ с IP камеры в любом браузере
- 2017-08-21 Управление домашней автоматизацией через Telegram
- 2016-11-03 Обновление заводских WEB-интерфейсов у IPC и NVR
- 2016-09-20 Использование mjpg-streamer и различные USB UVC видеокамеры
- 2015-09-03 Хакинг IP-камер на базе SoC HI3518
- 2015-08-26 Модернизация IP Web-камеры – passive PoE
- 2014-04-11 Подбор оборудования для видеонаблюдения
Внешние ссылки
- Telegram group: Дискуссионный клуб
- Telegram group: Пример работы бота на IP-камере
- -
- Форум videon.spb.ru: Расширенная модификация прошивки для камер Xiong Mai
- Форум taker.im: Расширенная модификация прошивки для камер Xiong Mai
- -
- Описание файла конфигурации для wpa_supplicant
- Rename a Linux network interface without Udev / Reboot
- Команда curl. Обмен данными с сервером
- Using Curl commands with Webdav
- -
- The easiest way to create Virtual Tunnels over TCP/IP networks – VTUNd
- -
- This page will summarize informations to use the GSM/GPRS/3G module
Donate
Если вам пригодилась информация с этого блога (прошивки, схемы, инструкции) и вы заинтересованы в его развитии и/или используете материалы в коммерческих целях, пожалуйста перечислите небольшую сумму в качестве donate (пожертвование).