Как мы научились подключать китайские камеры за 1000р к облаку. Без регистраторов и SMS (и сэкономили миллионы долларов)

    Всем привет!


    Наверное, ни для кого не секрет, что в последнее время облачные сервисы видеонаблюдения набирают популярность. И понятно почему так происходит, видео — это "тяжелый" контент, для хранения которого необходима инфраструктура и большие объемы дискового хранилища. Использование локальной системы видеонаблюдения требует средств на эксплуатацию и поддержку, как в случае организации, использующей сотни камер наблюдения, так и в случае индивидуального пользователя с несколькими камерами.



    Облачные системы видеонаблюдения решают эту задачу — предоставляя клиентам уже существующую инфраструктуру хранения и обработки видео. Клиенту облачного видеонаблюдения достаточно просто подключить камеру к интернету и привязать к своему аккаунту в облаке.


    Есть несколько технологических способов подключения камер к облаку. Бесспорно, наиболее удобный и дешевый способ — камера напрямую подключается и работает с облаком, без участия дополнительного оборудования типа сервера или регистратора.


    Для этого необходимо, чтобы на камере был установлен модуль ПО работающий с облаком. Однако, если говорить про дешевые камеры, то у них очень ограничены аппаратные ресурсы, которые почти на 100% занимает родная прошивка вендора камеры, а ресурсов необходимых для облачного плагина — нет. Этой проблеме разработчики из ivideon посвятили статью, в которой говорится почему они не могут установить плагин на дешевые камеры. Как итог, минимальная цена камеры — 5000р ($80 долларов) и миллионы потраченных денег на оборудование.


    Мы эту проблему успешно решили. Если интересно как — велком под кат


    Немного истории


    В 2016 году мы стартовали разработку платформы облачного видеонаблюдения для Ростелекома.


    В части ПО камер на первом этапе пошли "стандартным" для таких задач путем: разработали свой плагин, который устанавливается в штатную прошивку камеры вендора и работает с нашим облаком. Однако, стоит отметить, что при проектировании мы использовали наиболее легковесные и эффективные решения (например, plain C реализацию protobuf, libev, mbedtls и полностью отказались от удобных, но тяжелых библиотек типа boost)


    Сейчас на рынке IP камер нет универсальных решений по интеграции: у каждого вендора свой способ установки плагина, свой набор API для работы прошивки и уникальный механизм обновления.


    Это означает, что для каждого вендора камер необходимо индивидуально разрабатывать объемный слой интеграционного ПО. И на момент старта разработки целесообразно работать только с 1-ним вендором, что бы сосредоточить усилия команды на разработке логики работы с облаком.


    Первым вендором был выбран Hikvision — один из мировых лидеров на рынке камер, предоставляющий хорошо документированное API и грамотную инженерную техническую поддержку.


    На камерах Hikvision мы и запустили наш первый пилотный проект облачное видеонаблюдение Видеокомфорт.


    Практически сразу после запуска наши пользователи стали задавать вопросы о возможности подключении к сервису более дешевых камер других производителей.


    Вариант с реализацией слоя интеграции под каждого вендора я отбросил практически сразу — как плохо масштабируемый и предъявляющий к железу камеры серьезные технические требования. Стоимость камеры, удовлетворяющий таким требованиям на входе: ~60-70$


    Поэтому, я принял решение копать глубже — сделать полностью свою прошивку для камер любых вендоров. Этот подход существенно снижает требования к аппаратным ресурсам камеры — т.к. слой работы с облаком на порядок более эффективно интегрирован с video application, и в прошивке нет лишнего не используемого жирка.


    И что важно, при работе с камерой на низком уровне есть возможность использовать аппаратный AES, который шифрует данные, не создавая дополнительной нагрузки на маломощный CPU.



    В тот момент у нас не было вообще ничего. Вообще ничего.


    Практически все вендоры не были готовы работать с нами на таком низком уровне. Информации о схемотехнике и компонентах — нет, официальных SDK чипсетов и документации сенсоров — нет.
    Технической поддержки так же нет.


    Ответы на все вопросы приходилось получать реверс инжинирингом — методом проб и ошибок. Но мы справились.


    Первыми моделями камер, на которых мы набивали шишки стали камеры Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link и несколько сверх дешевых безымянных китайских камер.


    Техника


    Камеры на чипсете Hisilicon 3518E. Аппаратные характеристики камер такие:


    Xiaomi Yi Ants Noname
    SoC Hisilicon 3518E Hisilicon 3518E
    RAM 64MB 64MB
    FLASH 16MB 8MB
    WiFi mt7601/bcm43143 -
    Sensor ov9732 (720p) ov9712 (720p)
    Ethernet - +
    MicroSD + +
    Microphone + +
    Speaker + +
    IRLed + +
    IRCut + +

    С них мы начинали.


    Сейчас поддерживаем чипсеты Hisilicon 3516/3518, а так же Ambarella S2L/S2LM. Количество моделей камер — десятки.


    Состав прошивки


    uboot


    uboot — это начальный загрузчик, после включения питания загружается первым, инициализирует оборудование и загружает ядро linux.


    Скрипт загрузки камеры достаточно тривиален:


    bootargs=mem=38M console=ttyAMA0,115200 rootfstype=ramfs mtdparts=hi_sfc:256K(boot),64K(tech),4096K(kernel),8192K(app),-(config) hw_type=101
    bootcmd=sf probe 0; sf read 0x82000000 0x50000 0x400000; bootm 0x82000000; setenv bootargs $(bootargs) bkp=1; sf read 0x82000000 0x450000 0x400000; bootm 0x82000000

    Из особенностей — два раза вызывается bootm, подробнее об этом чуть позже, когда дойдем до подсистемы обновления.


    Обратите внимание на строчку mem=38M. Да, да, это не опечатка — ядру Linux и всем-всем-всем приложениям доступно всего лишь 38 мегабайт оперативной памяти.


    Так же рядом с uboot находится специальный блок, называемый reg_info, в котором находится низкоуровневый скрипт инициализации DDR и ряда системных регистров SoC. Содержимое reg_info зависит от модели камеры, и если оно будет не корректным, то камера даже не сможет загрузить uboot, а зависнет на самом раннем этапе загрузки.


    Первое время, когда мы работали без поддержки вендоров, мы просто копировали этот блок из оригинальной прошивки камеры.


    Ядро linux и rootfs


    На камерах используется ядро Linux, входящее в состав SDK чипа, обычно это не самые свежие ядра из ветки 3.x, поэтому часто приходится сталкиваться с тем, что драйвера дополнительного оборудования не совместимы с используемым ядром, и нам приходится их бэк-портировать под ядро камеры.


    Другая проблема — это размер ядра. Когда размер FLASH всего 8MB, то каждый байт на счет и наша задача — аккуратно отключить все не используемые функции ядра, что бы сократить размер до минимума.


    Rootfs — это базовая файловая система. В нее включены busybox, драйвера wifi модуля, набор стандартных системных библиотек, типа libld и libc, а так же ПО нашей разработки, отвечающее за логику управления светодиодами, управление сетевыми подключениями и за обновление прошивки.


    Корневая файловая система подключена к ядру как initramfs и в результате сборки мы получаем один файл uImage, в котором есть и ядро и rootfs.


    Video application


    Наиболее сложная и ресурсоемкая часть прошивки — приложение, которое обеспечивает видео-аудио захват, кодирование видео, настраивает параметры картинки, реализует видео-аналитики, например, детекторы движения или звука, управляет PTZ и отвечает за переключения дневного и ночного режимов.


    Важная, я бы даже сказал ключевая особенность — каким образом видео приложение взаимодействует с облачным плагином.


    В традиционных решениях 'прошивка вендора + облачный плагин', которые не могут работать на дешевом железе, видео внутри камеры передается по протоколу RTSP — а это огромный оверхед: копирование и передача данных через socket, лишние syscall-ы.


    Мы в этом месте используем механизм shared memory — видео не копируется и не пересылается через socket между компонентами ПО камеры, тем самым оптимально и бережно используя скромные аппаратные возможности камеры.



    Подсистема обновления


    Предмет отдельной гордости — подсистема fault-tolerant онлайн обновления прошивки.


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


    Мы справились и с этой проблемой. Даже если камеру выключить в момент обновления, она автоматически и без участия пользователя скачает прошивку из облака и восстановит работу.


    Разберем технику подробнее:


    Наиболее уязвимый момент — перезапись раздела с ядром Linux и корневой файловой системой. В случае, если один из этих компонентов окажется поврежденным, то камера вообще не загрузиться дальше начального загрузчика uboot, который не умеет скачивать прошивку из облака.


    Значит, нам нужно обеспечить гарантию наличия на камере работоспособного ядра и rootfs в любой момент процесса обновления. Казалось бы самым простым решением было бы постоянно хранить на флеш памяти две копии ядра с rootfs и в случае повреждения основного ядра загружать его из резервной копии.


    Годное решение — однако, ядро с rootfs занимает около 3.5MB и для постоянной резервной копии нужно выделить 3.5MB. На самых дешевых камерах просто нет столько свободного места под backup ядра.


    Поэтому для backup ядра во время обновления прошивки используем application партицию.
    А для выбора нужной партиции с ядром как раз и используется две команды bootm в uboot — в начале пытаемся загрузить основное ядро и если оно повреждено, то резервное.



    Это гарантирует, что в любой момент времени на камере будет корректное ядро с rootfs, и она сможет загрузиться и восстановить прошивку.


    CI/CD система сборки и деплоя прошивок


    Для сборки прошивок мы используем gitlab CI, в котором автоматически собираются прошивки под все поддерживаемые модели камер, после сборки прошивки автоматически деплоятся на сервис обновления ПО камер.



    Из сервиса обновления ПО прошивки доставляются на тестовые камеры наших QA, а по завершению всех этапов тестирования и на камеры пользователей.


    Информационная безопасность


    Ни для кого не секрет, что в наше время информационная безопасность — это важнейший аспект любого IoT устройства, в том числе и камеры. По интернету гуляют ботнеты типа Mirai, поражающие миллионы камер со стандартными прошивками от вендоров. При всем уважении к вендорам камер, не могу не отметить, что в стандартных прошивках заложено много функционала, который не востребован для работы с облаком, однако содержит в себе много уязвимостей, которыми пользуются ботнеты.


    Поэтому, весь не используемый функционал в нашей прошивке отключен, все tcp/udp порты закрыты и при обновлении прошивки проверяется цифровая подпись ПО.


    И кроме этого, прошивка проходит регулярное тестирование в лаборатории информационной безопасности.


    Заключение


    Сейчас наша прошивка активно используется в проектах по видеонаблюдению. Пожалуй самый масштабный из них — трансляция голосования в день выборов Президента Российской Федерации.
    В проекте было задействовано более 70 тысяч камер с нашей прошивкой, которые были установлены по избирательным участкам нашей страны.


    Решив ряд сложных, а местами, даже на тот момент практически невозможных задач, мы, конечно, получили огромное удовлетворение как инженеры, но кроме этого, и сэкономили миллионы долларов на закупке камер. И в данном случае, экономия — это не только слова и теоретические расчёты, а результаты уже случившегося тендера на закупку оборудования. Соответственно, если говорить про облачное видеонаблюдение: есть два подхода — стратегически заложиться на низкоуровневую экспертизу и разработку, получив на выходе огромную экономию на оборудовании или использовать дорогое оборудование, которое, если смотреть именно на потребительские характеристики, практически ничем не отличается от аналогичного дешевого.


    Почему стратегически важно принять решение относительно выбора подхода к способу интеграции как можно раньше? При разработке плагина, разработчики закладываются на те или иные технологии (библиотеки, протоколы, стандарты). И если выбран набор технологий только под дорогое оборудование, то в дальнейшем попытка перехода на дешевые камеры с большой вероятностью, как минимум, займет безумно большое время или вообще потерпит неудачу и произойдет возврат к дорогому оборудованию.

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 149

      +2
      прошивка доступна?
        0

        Обычно прошивка либо устанавливается вендором на заводе, либо приезжает через online сервис обновления.


        Вот, например, апдейт для камер на hi3518: http://camera-updater.videocomfort.ru/agent/hi3518/prod/firmware/v1.0.1-155-gfe91e4a_hi3518_prod-b22307/firmware_v1.0.1-155-gfe91e4a_hi3518_prod-b22307.bin — (апдейты идут без uboot)


        Вот, например, полный образ http://camera-updater.videocomfort.ru/agent/r2/prod/digicap_v0.9.8-89-gcf0ead1_hi3518_prod-b8641.dav для Hikvision VC1W

          0
          то есть можно уже имеющуюся камеру на hi3518 заменить?
            0

            Не совсем. Камеры все же отличаются по железу (разные сенсоры, разные wifi модули, разные GPIO, разные DDR).
            Поэтому, просто так установить не получится — необходимо, что бы прошивка знала специфику оборудования, и что бы в ней были необходимые дрова сенсора и wifi модуля.

              0
              там всё очень грустно.

              Конечно очень хочется сделать одну прошивку, которая будет работать под всеми 3518, 3516 и 3519, но пока, судя по всему, нет даже способа программно определить разные сенсоры. Т.е. прежде чем заливать прошивку, надо точно знать, какой там сенсор.

              Это как если бы надо было точно знать, какой линукс скачивать под распаянный на материнке жесткий диск, учитывая, что нет програмного способа его сдетектировать.

              Грустно.
                +2

                Ну мы выкручиваемся так: код модели камеры зашита в разделе env, а в самой rootfs есть реестр поддерживаемых моделей и описание оборудования которое соотвествует этой модели.
                А kernel+rootfs и application универсален для всего семейства чипов.


                А так да, никакого плаг & плэй (

                  0
                  вот да, только писать в env.

                  Я не оставляю надежду на то, что общением через i2c получится хотя бы косвенными способами угадать сенсор.
                    0

                    Иногда можно, но не всегда поможет.
                    Даже один и тот же сенсор может быть подключен по разному схемотехнически в разных камерах. А от этого зависят настройки режима захвата видео…


                    Кроме этого узнать к каким GPIO подключены светодиоды/кнопки/IRLed/IRCut — вообще не возможно впринципе...


                    Единственное — wifi чип можно опознать по USB vid/pid, и то если он подключен по USB, а не по SDIO.

                      0
                      Кроме этого узнать к каким GPIO подключены светодиоды/кнопки/IRLed/IRCut — вообще не возможно впринципе...

                      На самом деле GPIO возможно определить простым перебором, приходилось несколько раз такое проворачивать, когда вендор не давал даташит на плату.
                        0

                        У hisi 351x порядка 100 GPIO выводов.


                        Мы для поиска задействованных GPIO разработали специальную утилиту, которая умеет
                        а) выводить какие GPIO переведены в режим OUT, при запуске на стоковой прошивке, это сужает круг поиска выходов, к которым подключены светодиоды и IRCut
                        б) выводить состояния всех входов GPIO подключенных к процессору.


                        Во времена, когда не было поддержки вендоров — это очень помогало.

                          0
                          olegator99, а можете поделиться этой утилитой? или подсказать, какие команды использовать для ее написания? Я сейчас ковыряю камеру Yi home camera 720p на soc hi3518e, IRCut научился включать/выключать по команде, а IR подсветку чет пока никак.
                            0
                            А вы посмотрите по схеме, может там подсветка программно и не включается. На очень многих камерах она включается только аппаратно через транзистор и фоторезистор как датчик освещенности – и никакой возможности управления.
                              0
                              smart, по докам от Hisilicon есть, т.к. и подсветка и фильтр заведены на порты GPIO. Да и производитель камеры мне подтвердил, что и подсветка и фильтр переключаются программно.
                      0
                      Может, сморожу глупость, но всё-таки — сенсор — он же под стеклом? А нельзя просто посмотреть на этот сенсор через микроскоп? Там по-любому есть какие-нибудь «пасхалки» от производителя в виде номера модели или ещё чего. И по ним определить. Ну, как-то так.
                      image
                        +3

                        Ага, модель сенсора можно определить и по внешнему виду, и по составу стоковой прошивки.


                        Но в комментариях выше мы рассуждали, про авто-определение типа сенсора в рантайме, что бы наша прошивка могла сама определить какой на камере установлен сенсор. Вот с этим как раз и есть ряд сложностей.

                    0
                    а разве там нигде нету файла device tree??
                      0

                      У Hisilicon — обычно нет. Да и задачу создания "универсальной прошивки" он не решит, т.к. нет аппаратного идентификатора типа оборудования.

                0
                В традиционных решениях 'прошивка вендора + облачный плагин', которые не могут работать на дешевом железе, видео внутри камеры передается по протоколу RTSP — а это огромный оверхед: копирование и передача данных через socket, лишние syscall-ы.

                Мы в этом месте используем механизм shared memory — видео не копируется и не пересылается через socket между компонентами ПО камеры, тем самым оптимально и бережно используя скромные аппаратные возможности камеры.

                Т.е. RTSP вы убрали совсем и камеру иначе как с вашим сервисом использовать не получится?
                  0

                  Технически, RTSP у нас в прошивке есть, и в некоторых проектах он используется.

                  0
                  С вашей прошивки на заводскую можно вернуться?
                    0

                    У нас есть утилита, которая позволяет бэкапнуть, а в последующем восстановить родную прошивку.
                    Естественно, если бэкап не сделан, то вернуть на родную прошивку будет сложнее — прийдется искать такую же камеру с оригинальной прошивкой, что бы с нее снять бэкап.

                    +3
                    > как плохо масштабируемый и предъявляющий к железу камеры серьезные технические требования. Стоимость камеры, удовлетворяющий таким требованиям на входе: ~60-70$


                    > В традиционных решениях 'прошивка вендора + облачный плагин', которые не могут
                    > работать на дешевом железе, видео внутри камеры передается по протоколу RTSP — а это
                    > огромный оверхед

                    какие например? Очень интересно, как можно сделать _огромный_ оверхед на проксировании RTSP внутри камеры. У нас сделать огромный не получилось, наш агент для облака работает на камерах от $8 с шифрованием, проксированием и очень несложным процессом адаптации вендорской прошивки. По крайней мере он сильно проще, чем портирование целой прошивки под очередную комбинацию сенсор+чип+всё остальное.

                    >Наиболее уязвимый момент — перезапись раздела с ядром Linux и корневой файловой системой.

                    Угу. Поэтому её вообще часто не трогают никак. У вас прикольно получилось.
                      +3
                      какие например? Очень интересно, как можно сделать огромный оверхед на проксировании RTSP внутри камеры. У нас сделать огромный не получилось, наш агент для облака работает на камерах от $8 с шифрованием, проксированием и очень несложным процессом адаптации вендорской прошивки. По крайней мере он сильно проще, чем портирование целой прошивки под очередную комбинацию сенсор+чип+всё остальное.

                      Ваш комментарий противоречит вашей же статье: https://habr.com/company/erlyvideo/blog/334912/,
                      в которой вы пишете, что работаете с железом напрямую, получая из железа кадры, и что сделали прошивку на Rust.


                      По существу: вендоров — огромное количество, адаптироваться под прошивку каждого с учетом осбенностей каждой модели — это очень ресурсоемкий процесс. Чипсетов намного меньше.


                      Про оверхед — когда всего 38МБ ОЗУ — любые лишнее буфера, которые требуются для "проксирования" — это существенный оверхед. Когда у процессора всего 400MHZ каждый syscall с копированием данных, да это существенный оверхед.


                      Угу. Поэтому её вообще часто не трогают никак. У вас прикольно получилось.

                      Т.е. rootfs на обновляют вообще? Как так — в ней находятся системные компоненты, типа dropbear, wpa_supplicant, busybox и т.д.
                      Что делать, когда в намертво прошитой версии wpa_supplicant или dropbear обнаружится уязвимость?

                        0
                        У нас есть два решения: наша прошивку, которая является заменой китайскому коду и агент — то, что мы ставим на камеры.

                        По нашему опыту поставить агента на 400 Мгц камеру с проксированием через TLS — не проблема. Ни с памятью, ни с процессором.

                        > Что делать, когда в намертво прошитой версии wpa_supplicant или dropbear обнаружится уязвимость?

                        по мнению длинного ряда производителей — забить длинный китайский болт на это и выпустить новую камеру, у которой телнет с беспарольным рутовым логином.
                          +3

                          Ну тут такое. Такая конфигурация действительно работает (у нас тоже в варианте с наш плагин+прошивка вендора).
                          Но, если, например битрейт потока большой, и паралелльно захватывается и пишется на флешку другой поток, то проца и памяти уже может не хватить — и тут как раз вспоминаем про оверхед на RTSP.


                          Кроме этого в схеме без RTSP высвобождаются дополнительные ресурсы процессора, но более продвинутые аудио и видео аналитики, на которые с RTSP не хватало ресурсов.

                            0
                            про аналитику — всё понятно. Нужны сырые данные, чего тут и говорить.

                            Вот только что перепроверил нашего агента на Hiwatch DS-I114:

                            Mem: 62076K used, 3092K free, 0K shrd, 5372K buff, 38344K cached
                            CPU: 10.3% usr 10.9% sys 0.0% nic 75.9% idle 0.0% io 0.0% irq 2.7% sirq
                            Load average: 11.81 8.36 3.98 1/149 736
                            PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
                            327 1 admin S < 234m367.3 0 16.9 /home/davinci
                            728 323 admin S 1736 2.6 0 4.4 /home/peeklio -c /devinfo/peeklio_
                            603 2 admin SW 0 0.0 0 0.7 [RTW_CMD_THREAD]
                            39 2 admin DW 0 0.0 0 0.5 [kworker/u:1]
                            16 2 admin SWN 0 0.0 0 0.4 [ksmd]


                            порядка 4%

                            # cat /proc/cpuinfo
                            Processor : ARM926EJ-S rev 5 (v5l)
                            BogoMIPS : 218.72
                            Features : swp half thumb fastmult edsp java
                            CPU implementer : 0x41
                            CPU architecture: 5TEJ
                            CPU variant : 0x0
                            CPU part : 0x926
                            CPU revision : 5

                            Hardware : r2
                            Revision : 0000
                            Serial : 0000000000000000


                            64 MB памяти.

                            Основное потребление, которое может быть — сетевой буфер для компенсации колебания скорости сети.
                              0
                              В той прошивке с агентом, что сделана была под меня, на одной камере раз в 30 минут сервис на камере падал и перезапускался, что отразилось в консольных логах. Что не хватало или был перелив — непонятно.
                                0

                                Основное CPU time из за RTSP, думаю уходит на davinci, когда он пишет в сокет (write существенно прожерливее, чем read) — а davinci кушает 16% CPU.
                                R2 кстати не самая бюджетная платформа. У нее 3518С + 128 MB ОЗУ на внешнем DDR, что, кстати, заметно увеличивает стоимость.


                                Вот самый треш на 3518E, которые используются на бюджетных ezviz-ах и hiwatch — у них 64 MB ОЗУ, из которых 26 отдано под видеоядро.


                                На них davinci выедает практически всю память...

                        0

                        А под Hiwatch DS-I220 имеется решение? Камера практически идентична Hikvision DS-2CD2042WD-I, модули взаимозаменяемы.

                          0

                          На такой модели мы не пробовали. Но думаю никаких принципиальных проблем с ней быть не должно.

                            0

                            Да я вообще сильно удивился, когда узнал что эта камера без поддержки ivideon. Столько раз они служили донорами запчастей для более дорогих 2042… честно считал их идентичными, но в ivideon считают не так. Было бы замечательно запилить поддержку для этих камер, ведь по характеристикам они идентичны 2042, за исключением модуля ivideon.

                              0

                              Не могу дать точный ответит за коллег из ivideon, о причинах отсутствия поддержки.


                              Могу лишь предположить, что проблема в том, что с завода i220 идут с новой прошивкой, например 5.5.5, а ivideon еще не успел портировать плагин под эту прошивку…


                              А downgrade на более раннюю прошивку с плагином, которая бы заработала — заблокирован.

                                0
                                Нет, у ivideon нету в списках поддерживаемых моделей этих камер и не было никогда. Про их идентичность и взаимозаменяемость модулей выяснено методом научного тыка. Процессор у i220 все же слабее, в остальном они полностью идентичны — совпадает размер флешки, CMOS, ик-подсветка, разъемы на модулях — любой модуль может быть поставлен на 2042, и будет работать (за исключением основного модуля — иначе получим Hiwatch на выходе). Даже корпус идентичен. Но эти камеры даже не позиционируются как полноценные Hikvision — они идут только с отсылкой — «HiWatch by Hikvision» и часто являются частью комплекта с видеорегистратором. Своего рода бюджетный вариант.
                                  0

                                  А сколько у нее RAM? Насколько мне известно, для hikvision камер с 64MB ОЗУ интеграция способом 'прошивка вендора + плагин' практически не возможна, из за причин перечисленных в статье...

                                    0
                                    К сожалению вытащить эту информацию из камеры у меня не выходит :( В характеристиках не указано (по крайней мере я с наскока найти не смог). В интерфейсе отсутствует кнопка диагностической информации. А вот hikvision DS-2CD2042WD-I отчиталась по-полной, привожу маленький кусочек:
                                    dmesg
                                    [ 0.000000] Booting Linux on physical CPU 0x0
                                    [ 0.000000] Initializing cgroup subsys cpu
                                    [ 0.000000] Linux version 3.10.73+ (zhangjianzhong@Cpl-Frt-BSP) (gcc ?? 4.8.2 20130902 (prerelease) (crosstool-NG - Ambarella Linaro Multilib GCC [CortexA9 & ARMv6k] 2013.09) ) #12 PREEMPT Thu Jul 20 11:10:40 CST 2017
                                    [ 0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7d
                                    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
                                    [ 0.000000] Machine: Ambarella S2L (Flattened Device Tree), model: Ambarella S2LM Kiwi Board
                                    [ 0.000000] dev type:0x0
                                    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
                                    [ 0.000000] Ambarella: AHB = 0xe0000000[0xe0000000],0x01000000 0
                                    [ 0.000000] Ambarella: APB = 0xe8000000[0xe8000000],0x01000000 0
                                    [ 0.000000] Ambarella: PPM = 0x00000000[0xdfe00000],0x00200000 9
                                    [ 0.000000] Ambarella: AXI = 0xf0000000[0xf0000000],0x00030000 0
                                    [ 0.000000] Ambarella: DRAMC = 0xdffe0000[0xef000000],0x00020000 0
                                    [ 0.000000] Ambarella: DBGBUS = 0xec000000[0xec000000],0x00200000 0
                                    [ 0.000000] Ambarella: DBGFMEM = 0xee000000[0xee000000],0x01000000 0
                                    [ 0.000000] Ambarella: IAVMEM = 0x07000000[ ],0x09000000
                                    [ 0.000000] On node 0 totalpages: 28160
                                    [ 0.000000] free_area_init_node: node 0, pgdat 807d48f8, node_mem_map 80805000
                                    [ 0.000000] Normal zone: 220 pages used for memmap
                                    [ 0.000000] Normal zone: 0 pages reserved
                                    [ 0.000000] Normal zone: 28160 pages, LIFO batch:7
                                    [ 0.000000] CPU: All CPU(s) started in SVC mode.
                                    [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
                                    [ 0.000000] pcpu-alloc: [0] 0
                                    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 27940
                                    [ 0.000000] Kernel command line: console=ttyS0 KRN_PRT=pri
                                    [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
                                    [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
                                    [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
                                    [ 0.000000] Memory: 110MB = 110MB total
                                    [ 0.000000] Memory: 103364k/103364k available, 9276k reserved, 0K highmem
                                    [ 0.000000] Virtual kernel memory layout:
                                    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
                                    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
                                    [ 0.000000] vmalloc : 0x87000000 - 0xff000000 (1920 MB)
                                    [ 0.000000] lowmem : 0x80000000 - 0x86e00000 ( 110 MB)
                                    [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB)
                                    [ 0.000000] .text : 0x80008000 - 0x80502750 (5098 kB)
                                    [ 0.000000] .init : 0x80503000 - 0x80793bd4 (2627 kB)
                                    [ 0.000000] .data : 0x80794000 - 0x807dc690 ( 290 kB)
                                    [ 0.000000] .bss : 0x807dc690 - 0x808002b0 ( 144 kB)
                                    [ 0.000000] NR_IRQS:240
                                    [ 0.000000] sched_clock: 32 bits at 54MHz, resolution 18ns, wraps every 79536ms

                                    Подозреваю что У DS-I220 меньше 110 mb, но что либо утверждать не могу, попробую поискать прошивку по-свежее, может тогда она отчитается.
                                      0

                                      Судя по логу — это вообще R6, на базе чипа ambarella.

                                        0
                                        Ну мне это практически ни о чем не говорит. В камерном железе я не силен, и единственное что понял — это что архитектура ARM. Я не встречал R6, а вот с камерами hikvision и hiwatch работаю постоянно. Все еще не смог вытащить лог с i220 — не хочет она делиться инфой, похоже придется цеплять ее по rs232, хоть я и слабо представляю как…
                                          0

                                          R6 это название программно-аппаратнатной платформы камер Hikvision на чипах Ambarela S2LM.
                                          Про i220 увы, подсказать не могу — не доводилось сталкиваться.

                                            0
                                            Ну как пишет
                                            iTuneDVR
                                            02.07.18 в 19:35
                                            0
                                            I220 — Hikvision R2 серии камер судя по прошивке DS-I114_I120_I122_I126_I128_I220_5.4.3_170316.zip с ftp.hikvision.ru
                                            — это R2 серия. Судя по всему Ambarella тоже.
                                            0
                                            I220 — Hikvision R2 серии камер судя по прошивке DS-I114_I120_I122_I126_I128_I220_5.4.3_170316.zip с ftp.hikvision.ru
                                            DS-2CD2042WD-I — Hikvision R6 серия камер.
                                            Все разбирается по прошивкам и собирается ;)
                                              0
                                              Для меня тяжеловато будет собрать прошивку под незнакомый девайс с нуля при этом не окирпичив пару-тройку девайсов… что для меня непозволительная роскошь.
                                                0
                                                Кое-какие сторонние инструменты есть в сети, которыми можно сделать и ту и ту, а так да, с нуля сделать такой инструмент без подсказок и прочего очень не просто.
                                                Цель-то по итогу какая, что туда внедрить какой свой модуль?
                                                  0
                                                  Цель — поддержка ivideon, ибо мы с ними давно работаем. Сейчас у нас много таких камер с демонтажа, если удастся запилить прошивку с ivideon для них — то на мелкие объекты их можно будет устанавливать без регистраторов и серверов. Судя по сабжу в статье — это вполне реализуемо, притом даже более эффективно, чем предлагают сами ivideon. Процессор на этих камерах все же слабее, так что данное решение очень заманчиво.
                                                    0
                                                    Все возможно, было бы желание у ivideon ;)
                                                    Слабо, там и ли нет, но на R2 таких работает spacecam и не жужжит, также надавно мне flusonic делал прошивку под подобную камеру с их агентом.
                                                    Они добавляют своего пользователя с хитрым паролем и он получает доступ к видео.
                                                    Раньше было проще, т.к. пароль в базе был в открытом виде и ivideon его юзал на R0 серии.
                                                    В свое время было сделано с костылями для новых R0 и R2 их клиенты.
                                                    Не знаю, что там предлагают в ivideon по этому поводу, но
                                                    если захотят и не будут ленится то сделают, но крови попьют, а раз ты привыкший то… ;)
                                                    Все технические нюансы можно решить. ;)
                                                      0
                                                      Они ленеивые и им это не выгодно — им лучше продавать свои камеры, чем обеспечивать поддержку дешевых. К тому же им надо и гибридные видеорегистраторы впаривать вместе с подобными камерами, коих у них еще не на одну распродажу на складах, например серия камер OcO, по сути аналогичных этой…
                                                        0
                                                        Обвинять их в том, что что им лучше зарабатывать деньги на более выгодном, чем впустую поддерживать чужие камеры, по сути ничего не зарабатывая… не вижу тут проблем, даже я ;)
                                                        Хотя есть же их софтовое сервер-приложение которое подключает любые камеры и транслирует, ну не мне объяснять…
                                                        В любом случае надо будет решить вопрос с лицензиями, а официально цена вопроса для обычных пользователей — волосатая…
                                                        Но, как и говорил, при определенных условиях и отсечение лишнего вполне возможно поднять встроенный сервис на R2 серии, но…
                                                        Тема не вчерашняя…

                                                          0
                                                          Может ткнете носом где брать сырцы как прошивки, так и модуля ivideon? Попытаюсь собрать что-либо работоспособное… надеюсь не слишком много камер превращу в кирпичи =))
                                                            0
                                                            Чтобы не убить все камеры, надо работать только с одной, к тому же там загрузчики не затрагивается, поэтому сразу не убить ;)
                                                            Если не решен вопрос с лицензиями, то все остальное беЗполезно.
                                                            Почему не устраивает вариант iVideon Server?
                                                              0
                                                              Потому что сервер. На мелких объектах (1-2 камеры) лучше предлагать решение без доп. оборудования для занижения ценового барьера.
                                                                0
                                                                Сервер можно в на VPS засунуть и не держать на объекте.
                                                                Да, понимаю, что удобней будет сразу, и без лишних проблем и завязок, но я не встречал адекватных вариантов, хотя обращались многие по поводу изготовления или готовой прошивке, но у всех желание отбивала цена за лицензию ivideon.
                                                                В любом случае нюансов много, и получится так, что сделать можно, но прошивка старая и,… а на новой или специальной надо кое-что допиливать до полноценного.
                                                                Как написано выше, если есть много свободного времени, непреодолимое желание оптимизировать свои затраты и пристроить имеющуюся технику, то все возможно.
                                                                Сторонние инструменты не рекламирую, чтобы не породить вопросов, а как ими пользоваться. Своими пользуюсь сам и не задаю никаких вопросов. ;)
                            +7
                            Хотелось написать обзорную статейку, но оставлю пока комментарий.
                            ZigFisher ведет работу над похожим открытым решением на базе openwrt!
                            zftlab.org/pages/2018020900.html
                            github.com/ZigFisher/chaos_calmer
                            github.com/ZigFisher/Glutinium
                            Группа общая по модификации прошивок: t.me/joinchat/FhtyHxDpQsv8HlRliQDgqw
                            Группа по разработке прошивки на базе openwrt: t.me/joinchat/FhtyHwrU0fwfQlAkvoeVJA
                            Пытаемся привести китайские ядра из sdk от разных чипов разных ревизий (hi3516c, hi3518e, hi3520d) к какому-то одному и вынести в конфиг то, что разработчики захардкордили через #define. А то собирать слишком много и долго) Инициализация библиотек сенсоров, конфиг драйвера ethernet, но пока с переменным успехом… Работа идет, но не хватает скилов, а еще больше времени!
                            Если кто-то хочет попробовать собрать и запустить, то подготовил сборку прошивки и ядер в докере: github.com/chertov/camopenwrt_docker
                            Очень буду рад если кто-то присоединится, поможет, проявит интерес)
                            На данный момент смогли запустить открытую прошивку, получили изображение в виде jpg, сжатые фреймы в h264, тестовый поток rtsp. Фактически просто причесали китайскую демку. Сейчас все это прилично глючит и факт успешного запуска на произвольной камере зависит от погоды на луне) Если интересно, то в группах могут подсказать конкретные бюджетные модели плат чип+сенсор+провода или целиком камер.
                            Исходники на базе китайской демки тут github.com/ZigFisher/Glutinium/tree/master/hisi-sample/src
                            А еще мы собрали gstreamer последней версии с поддержкой webRTC! Попробуем построить p2p стриминг видео на его базе сразу в браузер или на мобилки.

                            Авторы статьи молодцы, качественное решение в сфере видеонаблюдения давно необходимо!!! Это как раз одна из причин появления открытого проекта! Железо в камерах еще ничего, но софт просто ужасен… естественно очень бы хотелось посмотреть на Ваш вариант модификации кода загрузчика и ядра, код uboot и ядер вроде же под GPL, китайцы его поставляют в составе sdk.

                            Также в свободное время пилю небольшой сервис для проброса ethernet, uart, spi (для перепрошивки флеш памяти камеры) и gpio (управление питанием камеры) на машины разработчиков или в контейнеры CI через облако. А то (лично мне) с железом не очень-то и удобно работать, тем более когда камер много…
                            Хотелось бы дать возможность сообществу шарить свои камеры разработчикам и системе тестирования и т.д!
                              +2
                              github.com/ZigFisher/Glutinium/blob/master/hisi-sample/src/ringfifo.c#L169

                              не надо так. Берите младшие 5 бит, у SPS номер 7, а не 67.
                                +2

                                Класс! Спасибо за ссылки на чатики сообщества.


                                Идея сделать универсальное ядро под hisi — огонь, но не представляю как его дружить с модулями отвечающими за видеозахват. Они в SDK идут без исходников, и ооооочень большая вероятность, что они просто не заведутся на свежем ядре.


                                Показать наши патчи ядра и uboot — не проблема (хотя они на самом деле минимальны — не думаю, что от них будет какая то польза )


                                Проект с удаленым доступом к железу — интересная история, мы тоже ± работаем над похожей задачей. Будет интересно посмотреть, что у вас получается.

                                  +1
                                  Версию ядра мы оставляем какая есть от Хайсиликона под конкретный чип (v1 = 3.0.8, v2 = 3.4.35, v3 = 3.18.20) но собираем всё в среде OpenWrt, что даёт свои преимущества.
                                  На свежем ядре можно собрать универсальную прошивку, но толку от неё будет мало, т.к. действительно, имеющиеся только в бинарном виде драйвера для видео работать не будут.
                                    +1

                                    Ага, еще есть 3.10.x на 3516A/D, но это уже отдельная история...


                                    А с libc и gcc так же поступаете, или удалось привести к общему знаменателю?

                                      +1
                                      В OpenWrt — общий знаменатель, т.е. меняется только ядро и модули ядра к видео, остальное всё одинаковое.
                                  +1
                                  Конечно пишите статью!
                                  0
                                  дел
                                    +1
                                    Финальный релиз статьи норм.
                                    Олег молодец!
                                    +5
                                    Неплохо. Один из тот случаев, когда справедливым оказывается тот факт, что выгоднее заплатить хорошую зарплату хорошему программисту пусть даже на миллион долларов, чем потратить гораздо больше в случае, когда его нет.

                                    Надеюсь разработчиков не обидели ;)
                                    –5
                                    И на момент старта разработки целесообразно работать только с 1-ним вендором, что бы сосредоточить усилия команды на разработке логики работы с облаком.
                                    Дальше не читал потому что мои 2-ва глаза выпали.
                                      0
                                      olegator99, очень крутая статья! Вы большие молодцы!
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                          0

                                          Приложения сейчас называются "Умный дом ростелеком" и "Видеонаблюдение ростелеком". ссылки поправим — спасибо!

                                            0
                                            Также на сайте нет тарифов, регистрация через ВК не работает, при регистрации через ФБ и создании пароля вылазит «Plan не может быть пустым». Сервис videocomfort как самостоятельный продукт не существует больше?
                                              0

                                              Новых пользователей к Видеокомфорту больше не подключаем.
                                              За багрепорты еще раз спасибо — поправим поведение в этом месте.

                                          0

                                          Мы это — Рестрим, дочка Ростелекома.

                                          0
                                          А вот такую камеру вы можете прошить? Она работает с приложением YCC365 www.alibaba.com/product-detail/Motion-detection-alarm-alert-cloud-storage_60740861286.html?spm=a2700.7724838.2017115.23.13b35390Z9KXEK
                                            0

                                            Нет. Судя по описанию у нее чипсет Grainmedia 8135S, мы пока его не поддерживаем.

                                              0
                                              У нас такая проблема: изображение у китайских камер отстает от PTZ свайпа временами до 5 сек. Кроме того, у китайцев выскакивает реклама, а иногда сервис вообще не работает. Поэтому мы хотели сделать свой клиент и свой видеосервис и расположить его на хорошем сервере, чтобы задержку свести к минимуму. Но нет никаких данных о протоколах и как прошить в камеру IP адрес сервера, пароли, серийный номер. Китайцы SDK не дают.
                                              Можете что-то подсказать? А если у вас получится и эту камеру перепрошить — обязательно сообщите, деньги заплатим :-)
                                                0
                                                погоня за дешевыми камерами тоже имеет свои пределы.

                                                Имеется ввиду, что можно взять hikvision 3518 вместо аксиса и получить рабочее решение под определенные задачи.

                                                Но есть сильное подозрение, что на GM (grainmedia) может и не получится сделать приличного решения под какую-либо задачу.
                                                  0
                                                  К сожалению, у hikvision нет подходящих камер. Нужна маленькая, легкая, PTZ, с подходящим дизайном. Мы ее ставим на такого робота: boteyes.ru/ToTripRus.aspx.
                                                    0
                                                    у нас что-то подобного плана валялось в офисе и вроде мы туда даже прошивались.

                                                    Было и на GM и на чем-то ещё. Посмотрю, чего есть.
                                                      0

                                                      Хороший у вас робот — мне понравился :)


                                                      На ali есть широкий выбор недорогих и маленьких PTZ камер ± похожих по дизайну (например такая)[https://ru.aliexpress.com/item/Lintratek-HD-1080-P/32841830056.html]. Но по картинкам и спекам затрудняюсь сказать про то, на каком они чипсете, и насколько хороши.

                                                        0
                                                        Мы покупали у 7 китайских производителей камеры для тестирования. Для нас главное — чтобы задержка изображения была менее 1 сек, иначе получается, что робот уже поехал, а по изображению кажется, что он стоит на месте. Вот из этих камер только та, на которую я дал ссылку, самая хорошая. У нее облако на AWS Амазона, но приложение иногда посылает за обновлениями на левые ресурсы, показывает рекламу и камера подключается не сразу. А после обновления может вообще не работать.
                                                          0

                                                          Посмотрите — есть ли среди них камеры на hisilicon. Это можно понять либо подключившись к UART — по логу загрузки, либо по маркировке чипа.

                                                            0
                                                            Только что узнал, что наши камеры используют чипсет T10+SC1145. С ними вы можете работать?
                                                              0

                                                              Нет, с таким не сталкивались еще.

                                                                0
                                                                ingenic?
                                                                  0

                                                                  По T10 + камеры, гуглится именно ingenic, да. По ТТХ ± похож на 3518e, за исключением того, что в отличии от 3518e, T10 — mips.


                                                                  Больше ничего про него сказать не могу :)

                                                                    0
                                                                    по T10 гуглится душераздирающая страничка на гитхабе =)
                                                    0

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


                                                    У нас вот пока таких планов нет — лично я не видел ни одной камеры на GM, которую было бы не стыдно предложить клиентам…
                                                    Если на GM появятся более менее приличные по потребительским свойствам камеры — то с удовольствием посмотрим на них более серьезно.

                                                  0
                                                  +100500 Сам несколько лет устанавливал такие камеры: За 1500 руб. получаешь PTZ, хорошую подстветку и двухстороннюю аудисвязь. + в 2 шага без танцев прикручиваются к NAS Synology. Рандомное исходное качество компенсируется низкой ценой. Но над софтом конечно надо поработать, к сожалению сам не осилил, максимум отвязал от китайских облаков.
                                                    0
                                                    «максимум отвязал от китайских облаков» — т.е. привязал к другому облаку? Это очень интересно. Можете поделиться идеями?
                                                    0
                                                    Посмотрите пожалуйста вот тут — zftlab.org/pages/2018010500.html
                                                    Там у меня в ссылках была подборка различной инфо, в том числе о SDK и RTSP демоне на GitHub
                                                      0
                                                      ZigFisher, большое спасибо!
                                                    0
                                                    А работаети ли вы с ip камерами с динамиком, приводами(по осям) и датчиками(освещенность, звук, температура)? Интересует возможность использования такой камеры для умного дома, но со своим приложением.
                                                      0

                                                      Да, работаем. У нас есть поддержка динамика (Push-To-Talk) функционал. Есть поддержка PTZ (тут важна модель камеры, т.к. аппаратно механизм управления моторами сильно отличается от камеры к камере).
                                                      Датчик звука так же есть, это по сути "аудио-аналитика" — модуль в приложении, который мониторит уровень звука на микрофоне, и при превышении порога отправляет событие в облако.

                                                      0
                                                      Не сочтите за рекламу.
                                                      Мы пользуемся облачным сервисом видеонаблюдения TRASSIR Cloud: cloud.trassir.com
                                                      С ним работaют камеры от 2990р. www.citilink.ru/catalog/photo_and_video/video_observation/cctv_cams/1030858
                                                      olegator99 будет ли ваша прошивка с этими камерами работать?

                                                      Кстати, и для камер HiWatch у них вроде тоже есть облачная прошивка: www.dssl.ru/support/tech/support_ip/cloud.php
                                                        0

                                                        Значит ребята молодцы, и неплохо оптимизировали свой облачный плагин.


                                                        Если камеры на hisilicon (а по внешним признакам это похоже он), то не вижу больших сложностей портировать нашу прошивку на эти камеры...

                                                        0
                                                        Xiaomi XiaoFang Smart Camera Wi-Fi (FullHD) 1451р + github.com/samtap/fang-hacks/releases (RTSP + печеньки) + ivideon = Profit
                                                          +1

                                                          Спасибо за ссылку.
                                                          Если я правильно понял, то что бы работать с ivideon нужна отдельная железка для запуска ivideon сервера


                                                          И итоговое решение будет стоит 1451р + (стоимость железки для запуска ivideon сервера)...

                                                            0

                                                            Да, подойдёт Неттоп.

                                                              +1

                                                              Судя по яндекс маркету минимальная цена на неттоп — 5т.р. итого возвращаемся к решению за 5т.р.+ :)

                                                          –3
                                                          Зачем в принципе использовать рт или иви для облака? Платить бешенные деньги, когда можно спокойно все своё реализовать — это дешевле. И да, видео писать надо по движению.
                                                          нафиг даже с серым IP все легко и просто решается и такие прокладки как говнодеон и его клон от рт нафиг не нужны. Лет 10 как своё все работает успешно:
                                                          любой говнороутер с прошивкой опенврт, любой опсососвский модем, пара аккумуляторов, бп и говнокамера любая. И всё отлично пашет. За доллар в месяц любой говнохостинг, на котором openSSH развернут. И всё.
                                                            +1
                                                            Вот смотрите.
                                                            У нас два дома рядом, без забора.
                                                            В одном — я, моя жена и ребенок.
                                                            В другом — мои родители, сестра, её муж и дети.

                                                            У нас общая локальная сеть. У нас общая система видео наблюдения.
                                                            НАстроен сервер на Linux + ZM. Проложены IP камеры.
                                                            Я слежу за этим хозяйством.

                                                            Завтра я уехал/умер.
                                                            Что будет?

                                                            Пол года, может год система проживет в лучшем случае без вмешательства. Дальше — гикнется один из винчестеров на сервере, или обновление уронит систему, или сервер отключат и не смогут включить.
                                                            И что делать?
                                                            Админа нанимать?

                                                            А с облачными камерами — работают и работают. В локалку их воткнул, по инструкции настроил и ОК. Если что-то сломалось — пишешь в саппорт. Решаешь проблему. Сломалась камера — выкидываешь, и ставишь новую вместо неё. Любой справится.
                                                            0

                                                            Могли бы вы объяснить как можно получить образ Linux свой кастомный (под определённое железо). Как получить 3.5 МБ размер? Есть какие-нибудь туториалы?

                                                              +3
                                                              Мы используем следующие хинты для уменьшения размера ядра:
                                                              1) Из конфига ядра убрано определённое количество фич в сравнении с конфигом от вендора, которые мы не используем, и которые не влияют на работоспособность.
                                                              2) Все shared libraries (и всё что можно безболезненно) мы стрипаем. Это также рекомендует linuxfromscratch:
                                                              www.linuxfromscratch.org/lfs/view/stable/chapter05/stripping.html
                                                              3) В само ядро мы включаем rootfs: урезанный busybox (дефолтная поставка тоже занимает место). Сама rootfs ужимается с lzma и подключается как initramfs, как написал Олег в статье.
                                                                0
                                                                а вы (и кто «вы») чего делаете?
                                                                  +1
                                                                  Я с olegator99 работаю в одной компании.
                                                              0

                                                              Сорян, а зачем каждый раз покупать новые камеры на выборы? Что мешает использовать камеры с прошлых выборов или например с егэ? Отсутсвие отката?

                                                                0

                                                                Тут такое — на самом деле во многих избирательных участках оставались старые ПАК (ноуты с вебкамерами, еще с выборов 2012 года). Они уже морально и физически устарели — сыпались по просту. Все же 6 лет прошло. В основном их меняли.
                                                                P.S. Ну вообще я за технику отвечаю, вопросы про закупки и прочее с этим связанное — это не ко мне.

                                                                0
                                                                Можно ссылку на Ваш облачный сервис и список поддерживаемых камер?
                                                                  0

                                                                  camera.rt.ru — на нем сейчас практически полный спектр моделей Hikvision
                                                                  smarthome.rt.ru — тут сейчас только Hikvision vc1w, который достаточно дорогой и на запуске сервиса использовался вариант прошивка Hikvision + наш плагин, а сейчас мы их переводим на нашу прошивку.
                                                                  В скором времени +9 моделей начиная от бюджетных моделей на 3518E, с 64MB ОЗУ

                                                                  0
                                                                  Из интересных облачных сервисов в последнее время еще неплохо себя зарекомендовал ipeye.ru (не реклама, я там и на них НЕ работаю).
                                                                  Ребята написали удачный миниатюрный плагин, при помощи которого интегрируют к себе на сервис камеры различных производителей железа (в том числе «отвёрточных») и по-этому процесс интеграции быстр, лёгок, а так-же может быть протестирован практически на любом железе путём записи плагина в RW раздел, в котором сохраняются настройки камеры. Прайсы этой компании я обсуждать не буду, но бесплатный тариф на просмотр видео с камеры, стоящей далеко и за NAT-ом, крайне радует меня и друзей-гиков. Родное встроенное китайское облако выключено и забыто как страшный сон.

                                                                  Еще забыл выше упомянуть, что помимо экспериментов с OpenWrt потихоньку развивается тема и «моддинга» прошивок для XM, JVT, Topsee и прочих производителей видеокамер бюджетного сегмента.
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                      0
                                                                      Это если камеры брать у них или их партнёров-производителей, всё внутри.
                                                                      Я-же говорю всего-лишь как это сделано технически (про плагин).
                                                                      Ссылки на прошивки под популярные типы плат XM я привёл выше.
                                                                      Покупайте плату на Алиэкспесс, заливайте прошивку — и в облака ;)
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                          0
                                                                          Выполните ps в прошивке, он сразу запущен и на виду.
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                              0
                                                                              К проекту ipeye.ru имеет отношение только одноимённый демон, а vtund никакого отношения к ним не имеет.
                                                                              Сильно язвить Вам, думаю, не стоит, так как скорее всего Вы даже не читали какие эксперименты проводятся и какие цели преследуются в этих тестовых сборках прошивок, а вот показать или рассказать присутствующим на Хабре о своих, как я понимаю более перспективных и взрослых разработках связанных с Webrtc, дело достойное не мальчика, но мужа…
                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                  0
                                                                                  Там не только ipeye и vtund, там есть mqtt, ssh/scp, ftp, curl, телеметрия и куча других мелких но полезных фишек интегрировано. Ссылка выше в комменте была моём про ipeye, если не увидели — слово «моддинг».
                                                                                  Вариантов облачных наблюдений сейчас уже мешочек разных на самом деле. Просто ipeye своим маленьким демоном гармонично вписался в подборку нашего проекта, а основная суть моего рассказа была в том, что его можно запустить даже не меняя родную прошивку на камере, вот и всё. Если есть возможность сменить прошивку — естественно, все эти разработки становятся ненужны автоматически.
                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                      0
                                                                                      Если речь про моддинг — расширение функционала, который детально описан по ссылке выше. Там-же указана и группа в телеграме, в которой присутствуют как разработчики и сотрудники различных сервисов, гуру кодинга и embedded реверс-инжиниринга так и просто интересующиеся. Обмен опытом, поиск неисправностей и багов, обсуждение интересных програмных и аппаратных решений. А в параллельной ветке все наработки постепенно переводятся на OpenWrt рельсы.
                                                                    0
                                                                    Вчера получил несколько плат камер для экспериментов.
                                                                    Процессор HI3518EV200, сенсор Aptina AR0130, а внутри — не Linux

                                                                    System startup

                                                                    U-Boot 2010.06 (Mar 28 2016 — 09:55:50)

                                                                    Check Flash Memory Controller v100… Found
                                                                    SPI Nor(cs 0) ID: 0xc2 0x20 0x17
                                                                    Block:64KB Chip:8MB Name:«MX25L6406E»
                                                                    SPI Nor total size: 8MB
                                                                    SPI Nand ID Table Version 1.4
                                                                    MMC:
                                                                    EMMC/MMC/SD controller initialization.
                                                                    Card did not respond to voltage select!
                                                                    No EMMC/MMC/SD device found!
                                                                    *** Warning — bad CRC, using default environment

                                                                    In: serial
                                                                    Out: serial
                                                                    Err: serial
                                                                    *No SD card found!
                                                                    No mmc storage device found!
                                                                    Hit any key to stop autoboot: 0
                                                                    8192 KiB hi_fmc at 0:0 is now current device

                                                                    ## Starting application at 0x80008000…
                                                                    ********hello HuaweiLite OS ARM926********

                                                                    version: HuaweiLite OS KernelV100R002C00B013
                                                                    open-version: HuaweiLite OS 1.1.1RC
                                                                    build data: Mar 11 2016 09:45:30

                                                                    **********************************
                                                                    losAppInit
                                                                    porc fs init…
                                                                    Mount procfs finished.
                                                                    random init…
                                                                    uart init…
                                                                    shell init…

                                                                    HuaweiLite OS # <= та-дам!
                                                                      0
                                                                      Код этой штучки есть на GitHub.
                                                                        0

                                                                        OMG! А с wifi то у нее как? (сходу не нашлось ничего про него в исходниках)

                                                                          0
                                                                          Ну никак.
                                                                          Это простейшая бюджетная плата JVT-S130.
                                                                          Это я к тому, что потенциально надо быть готовым к таким вот фортелям фортуны.
                                                                          Хотя вам тут и карты в руки как раз — накатить вашу OS можно попробовать.
                                                                            0
                                                                            Это не так страшно как кажется на первый взгляд.
                                                                            Вряд ли что-то новое изобрели вот так совсем с нуля пренебрегнув все опытом, что есть. Все равно на камне hisilicon известном, ведь так?

                                                                            Вот была тему а Dahua, когда появились камеры да другом процессоре отличном от Ti или Hisilicon, при это прошивка примерно выглядит также, так же разбирается, но ни инструментов ни что-то подсобрать кода, пропатчить бинарь или вклинить вот так кроме как скрипты в шеле хоть не тронули.
                                                                            «Просто» пересобрали готовый проект под другой процессор, не распространенный ;)

                                                                            Потому свой проект и затеял ТС, чтобы не быть так скажем в рамках известного железа не быть ничем и никем связанным.
                                                                            0
                                                                            У вас есть загрузчик и ядро для 3518EV201 процессора?
                                                                            То, что для v200 не подходит (ни загрузчик, ни ядро).
                                                                              0

                                                                              Пока с таким железом не сталкивались. И SDK под него тоже пока нет.

                                                                                0
                                                                                DDR у этого чипа всего 32M, что достаточно мало по сегодняшним меркам. Очередной китайский «огрызок», к сожалению.
                                                                                  0

                                                                                  Какой то мега дешман. На видеоядро 10-16М по минимуму уйдет. 16м на линукс, инитрамфс и все аппы — выглядит слабореалистично.


                                                                                  А портироваться под хуавейос — что то сомнительное мероприятие.


                                                                                  Уж лучше на GM или Fullhan посмотреть, у них хотя бы по 64М и полноценный линукс

                                                                                    0
                                                                                    А платы на каких процессорах рекомендуете посмотреть?
                                                                                    Из GrainMedia знаю и имею только GM8136S, с Fullhan дела не имел.
                                                                                      0

                                                                                      Я с ними детально тоже не разбирался. Видел несколько дешевых китайских плат на GM8136 — общее впечатление от качества (и картинки и сборки) было удручающим. Посмотрел на GM8136 SDK — в принципе более менее адекватное.


                                                                                      А на Fullhan видел Ezviz C2 Mini O, вполне себе неплохая модель. Но мы решили, что из за одной модели портироваться под Fullhan не целесообразно.

                                                                                        0
                                                                                        GM8136 SDK тот что на Github или у вас от вендора что-то было?
                                                                                        Да, из-за единичной модели нет смысла связываться, Hisilicon в этом плане на коне конечно, кто только не штампует платы на их процессорах.
                                                                                          0

                                                                                          С github — вендоры пока к нам с GM не приходили :)

                                                                                      0
                                                                                      Забыл сказать, что есть еще у XM линейка плат на процессоре XM510 (перемаркированный Mozart), тоже «огрызки», но тем не менее работают на Linux.
                                                                                        0

                                                                                        Это да, вообще шлейф китайских "noname" чипмейкеров большой. Тоже видел несколько борд на таких вот SoC (забыл их названия уже). Пожал плечами, практического смысла в наших реалиях от них 0 :)

                                                                                  0
                                                                                  Мне удалось на этой железке, за неспешной вечерней беседой с iTuneDVR, загрузить по TFTP и запустить свою сборку OpenWrt для HI3518EV200, используя родной U-Boot загрузчик, идущий к HuaweiLite OS. Работает сеть, WEB-интерфейс ну и прочие стандартные компоненты, модель процессора пока не правил (надо будет еще свой загрузчик потестировать), видео пока еще в разработке ;)

                                                                                  image
                                                                              0

                                                                              Кстати, что удивительно — AR0130 весьма неплохой сенсор. На мой вкус заметно лучше ov9712 распространенного в ultra low сегменте.

                                                                                0
                                                                                Мне кажется, в таких сенсорах уже нет особого смысла, когда можно купить камеры с imx290 с hi-si занедорого (разница с AR0130 на али — 3-4 бакса). Там будет HDR, больше разрешение, выше чувствительность.
                                                                              0
                                                                              Сервис обновления ПО, это готовое решение или сами делали? Обновления ПО на устройствах в автоматическом режиме происходят?
                                                                                0

                                                                                Сервис обновления — сами делали. Не знаю готовых и подходящих решений. Обновления происходят в автоматическом режиме.

                                                                                –1
                                                                                Красавчики. Интересно, многим вендорам пуканы посрывало? :)
                                                                                  +1
                                                                                  Не приходилось встречаться с драйвером 'r2_mii'? Камера DS_2CD2410FIW на SoC HK-2013-6, который очень похож на hi3516a, но сеть на нём не заводится.

                                                                                  Лог ядра с оригинальной прошивкой.
                                                                                  ...
                                                                                  <6>[ 2.198596] Fixed MDIO Bus: probed
                                                                                  <6>[ 2.317521] r2_mii: probed
                                                                                  <6>[ 2.430600] PHY r2_mii:03 found : id is : 0x1cc816
                                                                                  <6>[ 2.436090] rtl8201f_set_EEE: set eee capability successfully
                                                                                  ...
                                                                                  <6>[ 4.431208] PHY: r2_mii:03 - Link is Up - 100/Full
                                                                                  <6>[ 4.431452] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
                                                                                  ...


                                                                                  При загрузке ядра, собранного для hi3516a получается:
                                                                                  ...
                                                                                  Fixed MDIO Bus: probed
                                                                                  himii: probed
                                                                                  ...
                                                                                  PHY: himii:03 - Link is Up - 100/Full
                                                                                  ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready


                                                                                  Но сеть не работает.
                                                                                    0
                                                                                    Сделайте дамп MII для оригинального ядра может поможет.
                                                                                    По хорошему желательно весь трафик по MDIIO задампить и повторить, если дело только в phy. Но возможно какая-то ключевая инициализация проходит еще в u-boot или u-boot SPL части например включение для MAC RGMII/RMII режима. BTW почему-то по опыту не редко натыкаюсь на ошибки в u-boot инициализации MAC контроллеров или передачи параметров в ядро даже у уважаемого мной motorola AKA freescale AKA NXP.
                                                                                    0
                                                                                    Интересно зачем у вас в обновлении 2x кратная избыточность по времени, если можно было на уровне uboot через модификацию fdt или kernel cmdline делать switch APP и KERNEL mtd разделов?
                                                                                      0

                                                                                      Так флеш памяти не хватит постоянно держать два ядра.
                                                                                      А в момент записи ядра на флешку необходимо, что бы уже было записано второе, гарантированно не поврежденное ядро

                                                                                        0
                                                                                        Нет, хватает.
                                                                                        [uboot][env][old kernel+rootfs][old app][config] ->
                                                                                        [uboot][env][old kernel+rootfs][new kernel+rootfs][config] ->
                                                                                        [uboot][env][new app][new kernel+rootfs][config]
                                                                                        В этой схеме избыточности нет и экономится ресурс флешки. Кроме того ничего не мешает (кроме необходимости модификации uboot, которая итак есть) разделам [kernel+rootfs] и иметь [app] разные размеры.
                                                                                          0

                                                                                          А в смысле при каждом обновлении менять разделы местами — да, так можно. Но в самой прошивке прийдется обрабатывать два разных режима. Чуть менее детерминированно получается. Ну и по размеру в этой схеме есть требование: kernel не должен быть больше app (у нас в общем требование такое же по большому счету)

                                                                                            0
                                                                                            Конечно такая схема сложнее немножко, но менять размеры/порядок разделов это по сути только изменение адреса образа ядра/app во флешке и опционально cmdline к ядру или дескриптор флешки в fdt если app не загружается в память (мы обычно загружаем, т.к. ставим spi на embedded устройства сейчас SPI флешка это самый дешевый и сердитый вариант).
                                                                                      0
                                                                                      Пользуясь случаем спрошу: у меня есть камера от Видеокомфорт, одна из первых, модель DS-2CD-VC1. Какое-то время назад Видеокомфорт совсем прикрыли и она теперь лежит бесполезная. Можно ли ее каким-то образом превратить «обратно» в обычную onvif-камеру?

                                                                                      А еще, есть ли у нее внутри Ethernet PHY, чтобы превратить ее в проводную?
                                                                                        0

                                                                                        Привет,
                                                                                        Камеру видеокоморфт можно подключить к camera.rt.ru или lk.smarthome.rt.ru
                                                                                        Без них, как минимум, можно включить RTSP


                                                                                        ethernet PHY у нее нет.

                                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                      Самое читаемое