Введение

Материал в стадии оформления. Последнее обновление – 2018.04.13

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

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

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


Эксперименты Buildroot & OpenWrt

Данные прошивки предназначены исключительно для экспериментов и опытных пользователей, умеющих работать с UART консолью, TFTP сервером и командами U-boot.

В текущих тестовых прошивках пока нет поддержки Video, запись на FLASH не производится, старт системы происходит из памяти (INITRAMFS). Сейчас проверяется возможность загрузки ядра Linux на разных процессорах Hisilicon, корректность работы интерфейсов Ethernet и USB, поддержка минимальной файловой системы, автоматическое определение сенсоров.

Теперь все компоненты (утилиты и библиотеки) в проекте XM IPCam modding собираются при помощи нашего OpenWrt toolchain размещённого на GitHub и там-же находится простейшая Вики для сбора информации об различных IPCam в группе Telegram

Начат сбор информации в OpenWrt Wiki и открыта дискуссия на китайском форуме OpenIPCam


Старт OpenWrt на модуле XM IPCam с SoC HI3518Ev1


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

Внимание! Если у вас камера не XM производителя и имеет на плате внешний Ethernet PHY (RTL8201 или IP101) – пробуйте использовать в первую очередь прошивки с именами -UD (unknown device).

Список поддерживаемых платформ Buildroot OpenWrt
SoC’s HI35_16C_18ACE_V100 скачать скачать
SoC’s HI35_16C_18E_V200 скачать скачать
SoC HI3520Dv1, HI3521Dv1, HI3520?v2 в разработке в разработке

Исходники прошивок и программ на GitHub: Buildroot | OpenWrt | Glutinium

Все пакеты программ, библиотек и модулей ядра для OpenWrt доступны (в формате .ipk) по ссылке

Тестирование выполнено успешно на IPCam:

  • XM 02532 (HI3516Cv1) ; XM ? (HI3516Cv1 + LAN8710A)
  • XM 06510 (HI3518Ev1)
  • XM 18510 (HI3518Ev2) ; XM 18520 (HI3518Ev2)
  • NVSIP unknown (HI3518Ev1 + RTL8201 PHY)

Тестирование выполнено успешно на NVR:

  • XM 00117

Просьба: присылайте ID проверенных устройств и не стесняйтесь задавать вопросы группе Telegram


Загрузка прошивок в устройство

Скачайте тестовую прошивку Buildroot или OpenWrt под ваше устройство (см. таблицу выше).

Настройте любой TFTP сервер и положите на него скачанный фаил, переименовав его в uImage.

Выполните команды в UART консоли, нажав Ctrl+C для остановки загрузки ядра после подачи питания на модуль:

#
setenv serverip 192.168.1.254                  // Устанавка адреса TFTP сервера
setenv bootargs mem=XXM console=ttyAMA0,115200 // Установка переменных для передачи ядру
tftp 0x82000000 uImage                         // Загрузка в память экспериментальной системы
bootm 0x82000000                               // Старт системы из памяти

Где XX это количество выделяемой памяти. Для SoC v1 должно быть 43M, а для v2 – 64M

Или, если сервер указан правильно, те-же операции но одной строкой:

setenv bootargs mem=43M console=ttyAMA0,115200 ; tftp 0x82000000 uImage ; bootm 0x82000000
setenv bootargs mem=64M console=ttyAMA0,115200 ; tftp 0x82000000 uImage ; bootm 0x82000000

Теперь после загрузки устройство с прошивками Buildroot и OpenWrt имеет одинаковый адрес – 192.168.1.10.

Пароль для root не установлен. При необходимости выполните команду passwd для его внесения/изменения.


Подготовка, установка и обновление кода проекта

Подготовка в Debian/Ubuntu

sudo apt-get install --no-install-recommends build-essential gawk git libncurses-dev python \
    subversion unzip zlib1g-dev

Первичная установка

git clone https://github.com/ZigFisher/chaos_calmer.git
cd chaos_calmer
cp ./feeds.conf.default ./feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
cp -v target/linux/hisilicon/examples/.config_current ./.config
make clean && make -j1 V=s

Добавление некоторых программ из Glutinium

cd chaos_calmer
echo "src-git glutinium https://github.com/ZigFisher/Glutinium.git" >>./feeds.conf
./scripts/feeds update glutinium
./scripts/feeds list -r glutinium    # вывод списка доступных пакетов
./scripts/feeds install empty etherdump homes-smart httping i2c-telemetry i2c-tools \
    littlewire micronucleus mercury236 microbe mini_snmpd remserial rs485conf tg-bot1 \
    vtun-lite

Обновление кода и рестарт сборки (ежедневно)

cd chaos_calmer
git pull
cp -v target/linux/hisilicon/examples/.config_current ./.config
make clean && make -j1 V=s

Список поддерживаемых сенсоров

#
  ar0130     [1280x720@30]   : libsns_ar0130.so
  ar0230     [1920x1080@30]  : libsns_ar0230.so 
  ar0330     [1920x1080@30]  : libsns_ar0330_1080p.so
  ar0331     [1920x1080@30]  : libsns_ar0331_1080p.so
  gc1004     [1280x720@30]   : libsns_gc1004.so
  gc1014     [1280x720@30]   : libsns_gc1014.so
  himax1375  [1280x720@30]   : libsns_himax1375.so
  icx692     [1280x720@30]   : libsns_icx692.so
  imx104     [1280x720@30]   : libsns_imx104.so
  imx122     [1920x1080@30]  : libsns_imx122.so
  imx138     [1280x720@30]   : libsns_imx138.so
  imx222     [1920x1080@30]  : libsns_imx222.so
  imx236     [1920x1080@30]  : libsns_imx236.so
  mn34222    [1920x1080@30]  : libsns_mn34222.so
  mt9m034    [1280x720@30]   : libsns_9m034.so
  mt9p006    [1920x1080@30]  : libsns_mt9p006.so
  ov9712     [1280x720@30]   : libsns_ov9712.so
  ov2718     [1920x1080@25]  : libsns_ov2718.so
  ov9732     [1280x720@30]   : libsns_ov9732.so
  ov9750     [1280x720@30]   : libsns_ov9750.so 
  ov9752     [1280x720@30]   : libsns_ov9752.so
  po3100k    [1280x720@30]   : libsns_po3100k.so
  sc1135     [1280x720@30]   : libsns_sc1135.so
  sc2135     [1920x1080@30]  : libsns_sc2135.so
  soih22     [1280x720@30]   : libsns_soih22.so
  • Выбирайте imx122 для (вместо) imx322, если он отсутствует в списке сенсоров при команде video
  • Выбирайте imx122 для (вместо) imx222, если он отсутствует в списке сенсоров при команде video

Работа с GPIO

Для тестирования и управления используйте утилиту gpio.

HARDWARE GPIO IRCUT ON IRCUT OFF ALARM IN ALARM OUT SOLAR IN I2C SDA I2C SCL
XM v1 0-85 38 39 ? ? ?
XM v2 0-71 33 34 61 ? ? 32 31

Другие заметки

Загрузка модулей ядра и инициализация сенсора

video ov9712

Запуск RTSP стримера

live-streamer -S ov9712

RTSP поток доступен по адресу rtsp://192.168.1.15:554/0

Получение снапшотов с камеры

snapshotd -p /tmp/ -f snap.jpg rtsp://127.0.0.1:554/0

Получение снимков происходит при отправке сигнала SIGUSR1 демону snapshotd

kill -s SIGUSR1 `pidof snapshotd`

Альтернативный вариант для получения снапшотов и роликов – использовать утилиту sample_venc


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


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


Klondike of Chinese software solutions hosted by the GitHub



Published

09 February 2018

Tags