Введение

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

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

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


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

Доступный функционал для устройств XM 06510 18510 18520 23650
Отправка снимков в группу 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 устройств необходимо приобрести или спаять соответствующий кабель.


Архив прошивок

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

Модель устройства ID Оригинальная прошивка Каталог прошивок от ZFT Lab.
IPC_HI3518E_50H10L 06510 IPC_HI3518E_50H10L IPC_HI3518E_50H10L_NOWIFI
IPC_HI3518E_50H10L_MT7601
IPC_HI3518E_50H10L_RTL8188
IPC_HI3518E_50H10L_RT3070
IPC_HI3518EV200_50H10L 18510 IPC_HI3518EV200_50H10L IPC_HI3518EV200_50H10L_NOWIFI
IPC_HI3518EV200_50H20L 18520 IPC_HI3518EV200_50H20L IPC_HI3518EV200_50H20L_NOWIFI

Для продвинутых пользователей доступны экспериментальные Open Source прошивки и компоненты (см.ниже).


Техподдержка

Техподдержка проекта осуществляется исключительно в группе 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
#####################################

Программы

  • bwm-ng -
  • dropbear -
  • haserl – простой CGI интерпретатор
  • vtund -
  • wpa_passphrase -
  • wpa_supplicant -

Дополнительные аплеты из busybox2

  • brctl
  • crond
  • df dmesg
  • hostname httpd
  • klogd
  • logger logread lsusb
  • microcom mkfs.vfat
  • nc nice ntpd
  • sendmail sha1sum sort syslogd
  • tail telnet tr
  • uniq uptime
  • vi
  • wget
ls -la /bin /sbin | awk '/busybox2/ {print $9}' | sort

Скрипты

  • ipcam_plugin – скрипт,
  • ipcam_setup – скрипт, отвечающий за генерацию и проверку основного конфига /etc/ipcam.conf
  • ipcam_tunnel – скрипт,
  • ipcam_wifi – скрипт,
  • tapip – скрипт,
  • wifi – скрипт,

Модули ядра (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)

Конфигурационные файлы

  • /etc/ipcam.conf – основной конфигурационный файл системы, пример представлен ниже
  • /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)
#
device_name=IPCam                 # Имя устройства
device_tid=0012140138CA           # Идентификатор устройства на базе MAC eth0
#
crond_enable=1                    # Активация Crond (выполнение задач по разписанию)
curl_timeout=30                   # Таймаут соединения и передачи данных для curl
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) и процедуру его обновления, так что сломать камеру при экспериментах достаточно трудно.


Прошивки для IPCam и история изменений

  • Получить свежие прошивки и принять участие в тестировании можно в группе Telegram (см. ссылки ниже)
  • 2017.02.01 Публичный релиз на канале Telegram и сайте FlyRouter.net [menu (продолжение)]
  • 2017.01.31 Публичный релиз на канале Telegram и сайте FlyRouter.net [ftpd, ftpput, menu (продолжение)]
  • 2017.01.30 Публичный релиз на канале Telegram и сайте FlyRouter.net [menu (начало), мелкие исправления]
  • 2017.01.29 Публичный релиз на канале Telegram и сайте FlyRouter.net [mqtt, мелкие исправления]
  • 2017.01.28 Публичный релиз на канале Telegram и сайте FlyRouter.net [crond, telegram, мелкие исправления]
  • 2017.01.27 Публичный релиз на канале Telegram и сайте FlyRouter.net [yandex, мелкие исправления]
  • 2017.01.26 Публичный релиз на канале Telegram и сайте FlyRouter.net [getty, syslogd, wpa-supplicant]
  • 2017.01.25 Закрытый релиз для тестировщиков [telnetd, webface, wifi]

План разработки и тестирования

  • Добавить поддержку USB 1.1 устройств через драйвер ядра HIUSB OHCI
  • Сделать возможным изменение пароля у root и создание новых пользователей в системе
  • Создать меню для изменения настроек через telnet/ssh без использования редактора vi
  • -
  • Запретить обновление DNS при получении адреса, маски и шлюза по WiFi
  • Добавить поддержку USB WiFi донгла Realtek rtl8188

Благодарности

Данный проект является результатом дополнительной совместной работы многих хороших людей, а именно:

  • ESonya – Игорь, г.Сергиев Посад
  • FlyRouter – Игорь, г.Симферополь
  • max380 – Максим, г.Екатеринбург
  • Octonix – Виталий, г.Киев
  • Oleg34 – Олег, г.Волгоград

Так-же выражаем благодарость общественному активу тестировщиков:

  • bulka58807 – Андрей, г.Екатеринбург
  • VFuchs – Василий, г.Курск
  • Wolodya – Владимир, г.Львов

Отдельно выражаем благодарность компании MultiXvision за предоставленное для тестов оборудование.


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


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


Donate

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



Published

07 January 2018

Tags