Запуск Buildroot и OpenWrt на устройствах с SoC Hisilicon
Введение
Материал в стадии оформления. Последнее обновление – 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 обсуждение которых происходит в группе 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
Добавление некоторых программ из 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
Для сборки прошивки выполните скрипт ./ZFT_Lab.sh находящийся в корне системы
WEB-интерфейс OpenWrt на модуле XM IPCam
Список поддерживаемых сенсоров
# 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
Работа с GPIO
Для тестирования и управления используйте утилиту gpio.
HARDWARE | GPIO | IRCUT 1 | IRCUT 2 | ALARM IN | ALARM OUT | IRLED IN | I2C SDA | I2C SCL |
---|---|---|---|---|---|---|---|---|
XM v1 | 0-85 | 38 | 39 | ? | ? | ? | ||
XM v2 | 0-71 | 33 | 34 | 61 | 35 | ? | 32 | 31 |
Другие заметки – пока только для прошивок на базе Buildroot !
Загрузка модулей ядра и инициализация сенсора
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
Внутренние ссылки
- 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 порту с электросчётчиков Меркурий
- Запуск Buildroot и OpenWrt на устройствах с SoC Hisilicon
- 2018-02-01 Трюки и хаки при экспериментах с IPCam от Xiong Mai
- 2018-01-07 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 Подбор оборудования для видеонаблюдения
Внешние ссылки
- Наша подборка китайских SDK для процессоров Hisilicon
- FlyRouter: Готовые для использования программы и библиотеки
- OpenWrt Wiki – сбор информации по Hisilicon
- Дискуссия на английском языке на китайском форуме ‘OpenIPCam’
- Sofiactl is an open source cross-platform tool and sdk to control Sofia powered Hi35xx DVR devices
- LIVE555 Streaming Media
Klondike of Chinese software solutions hosted by the GitHub
- https://github.com/hicat-tech/libhicat
- https://github.com/hi35xx/hi35xx-buildroot
- https://github.com/hi35xx/live-streamer
- https://github.com/jjzhang166/avWare/tree/master/App/Build/Platform
- https://github.com/Yoko2012/lvjh_ipcamera_hisi3518
- https://github.com/chenyq123/3516a_sample/tree/master/sample
- https://github.com/liuzhiping1/mywork_idt/tree/master/lib
- https://github.com/ivysboy/wuyuanswork/tree/master/sample/hkipc_3518E-zqj
- https://github.com/jun384668960/Hi3518E_Camera/tree/master/trunk
- https://github.com/whwxxstsyd/Hisi3518e_MySDK
- https://github.com/justchen/imedia_rtsp/tree/master/src
- https://github.com/yao3gang/NVR/tree/master/NVR-16
- https://github.com/Yoko2012/rapidonvif
- https://github.com/9crk/zOnvif
- https://github.com/9crk/onvif
- https://github.com/9crk/ti_rtsp_c/tree/master/rtsp
- https://github.com/9crk/easyRTSP
- https://github.com/joyeboy/minirtsp
- https://bitbucket.org/zhouhua/hicat_rtspserver