Введение

Материал по проекту находится в стадии оформления. Последнее обновление – 2018.03.22

Используя данный Сайт, Вы выражаете свое согласие с «Отказом от ответственности» и принимаете всю ответственность за выполняемые действия с оборудованием и программным обеспечением на себя !

Просьба – при использовании материалов с сайта в своих проектах, указывать первоисточник. Спасибо!

Доступ в группу для различных обсуждений по IPCam и NVR возможен через WebIRC = Slack = Telegram


Архив прошивок с моддингом

Для удобства пользователей ссылки на файлы и каталоги с прошивками сведены в таблицу ниже.

Для продвинутых пользователей доступны экспериментальные прошивки Buildroot и OpenWrt


Текущий статус модифицированных прошивок

Доступный функционал для устройств XM Статус
Отправка снимков в группу 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 за предоставленное для тестов оборудование.


Внутренние ссылки


Внешние ссылки


Donate

Если вам пригодилась информация с этого блога (прошивки, схемы, инструкции) и вы заинтересованы в его развитии и/или используете материалы в коммерческих целях, пожалуйста перечислите небольшую сумму в качестве donate (пожертвование).



Published

07 January 2018

Tags