Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Hello sa tanan!

Tingali dili sekreto nga ang mga serbisyo sa pagpaniid sa video sa panganod nahimong popular karong bag-o. Ug kini tin-aw ngano nga kini mahitabo, ang video mao ang "bug-at" nga sulod, ang pagtipig niini nagkinahanglan sa imprastraktura ug dako nga kantidad sa disk storage. Ang paggamit sa usa ka on-premise nga video surveillance system nanginahanglan ug pondo para maka-operate ug makasuporta, para sa usa ka organisasyon nga naggamit ug gatosan ka surveillance camera ug para sa indibidwal nga user nga adunay daghang camera.

Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Ang mga sistema sa pagbantay sa video sa cloud nagsulbad niini nga problema pinaagi sa paghatag sa mga kustomer sa usa ka kasamtangan nga pagtipig sa video ug imprastraktura sa pagproseso. Ang usa ka kliyente sa pagpaniid sa video sa panganod kinahanglan nga ikonektar ang camera sa Internet ug i-link kini sa iyang cloud account.

Adunay ubay-ubay nga mga paagi sa teknolohiya sa pagkonektar sa mga camera sa panganod. Sa walay duhaduha, ang labing kombenyente ug labing barato nga pamaagi mao nga ang camera direkta nga nagkonektar ug nagtrabaho sa panganod, nga wala’y pag-apil sa dugang nga kagamitan sama sa usa ka server o recorder.

Aron mahimo kini, gikinahanglan nga ang usa ka module sa software nga nagtrabaho kauban ang panganod i-install sa camera. Bisan pa, kung maghisgot kita bahin sa barato nga mga camera, nan sila adunay limitado nga mga kahinguhaan sa hardware, nga hapit 100% nga giokupahan sa lumad nga firmware sa camera vendor, ug wala’y kinahanglan nga mga kapanguhaan alang sa cloud plugin. Ang mga developers gikan sa ivideon naghalad niini nga problema usa ka artikulo, nga nagpatin-aw nganong dili nila ma-install ang plugin sa barato nga mga camera. Ingon nga resulta, ang minimum nga presyo sa camera mao ang 5000 rubles ($80 dolyares) ug minilyon nga salapi nga gigasto sa kagamitan.

Malampuson natong nasulbad kini nga problema. Kung interesado ka kung giunsa - welcome sa cut

Usa ka gamay nga kasaysayan

Sa 2016, nagsugod kami sa paghimo og cloud video surveillance platform alang sa Rostelecom.

Sa mga termino sa software sa camera, sa una nga yugto gisundan namon ang "standard" nga agianan alang sa ingon nga mga buluhaton: gipalambo namon ang among kaugalingon nga plugin, nga gi-install sa standard firmware sa camera sa vendor ug nagtrabaho kauban ang among panganod. Bisan pa, angay nga matikdan nga sa panahon sa disenyo gigamit namon ang labing gaan ug episyente nga mga solusyon (pananglitan, yano nga C nga pagpatuman sa protobuf, libev, mbedtls ug hingpit nga gibiyaan nga komportable apan bug-at nga mga librarya sama sa pagpauswag)

Sa pagkakaron, walay universal integration solutions sa IP camera market: ang matag vendor adunay kaugalingong paagi sa pag-instalar sa plugin, kaugalingong set sa mga API alang sa pag-operate sa firmware, ug usa ka talagsaon nga mekanismo sa pag-update.

Nagpasabot kini nga alang sa matag vendor sa kamera gikinahanglan ang tagsa-tagsa nga paghimo og usa ka komprehensibo nga layer sa software sa panagsama. Ug sa panahon sa pagsugod sa kalamboan, kini mao ang advisable sa pagtrabaho lamang uban sa 1 vendor aron sa pagkonsentrar sa mga paningkamot sa team sa pagpalambo sa lohika alang sa pagtrabaho uban sa panganod.

Ang una nga vendor nga gipili mao ang Hikvision, usa sa mga nanguna sa kalibutan sa merkado sa kamera, nga naghatag usa ka maayo nga dokumentado nga API ug may katakus nga suporta sa teknikal sa engineering.

Among gilusad ang among unang pilot project, cloud video surveillance Video Comfort, gamit ang Hikvision cameras.

Hapit dayon pagkahuman sa paglansad, ang among mga tiggamit nagsugod sa pagpangutana bahin sa posibilidad sa pagkonektar sa mas barato nga mga camera gikan sa ubang mga tiggama sa serbisyo.

Gisalikway nako ang kapilian sa pagpatuman sa usa ka layer sa integrasyon alang sa matag vendor hapit dayon - tungod kay kini dili maayo nga masukod ug nagpahamtang sa seryoso nga teknikal nga mga kinahanglanon sa hardware sa camera. Ang gasto sa usa ka kamera nga nakab-ot niini nga mga kinahanglanon sa input: ~60-70$

Busa, nakahukom ko sa pagkalot sa mas lawom - sa paghimo sa akong kaugalingon nga firmware alang sa mga camera gikan sa bisan unsa nga vendor. Kini nga pamaagi labi nga nagpamenos sa mga kinahanglanon alang sa mga kapanguhaan sa hardware sa camera - tungod kay Ang layer alang sa pagtrabaho kauban ang panganod labi ka epektibo nga gisagol sa aplikasyon sa video, ug wala’y wala kinahanglana nga wala magamit nga tambok sa firmware.

Ug ang hinungdanon mao nga kung nagtrabaho kauban ang camera sa usa ka ubos nga lebel, posible nga gamiton ang hardware nga AES, nga nag-encrypt sa datos nga wala maghimo dugang nga load sa low-power nga CPU.

Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Niadtong higayuna wala mi bisan unsa. Wala gyud.

Hapit tanan nga mga vendor dili andam sa pagtrabaho uban kanamo sa ingon ka ubos nga lebel. Wala’y kasayuran bahin sa circuitry ug mga sangkap, wala’y opisyal nga SDK sa mga chipset ug dokumentasyon sa sensor.
Wala usab teknikal nga suporta.

Ang tanang pangutana kinahanglang tubagon pinaagi sa reverse engineeringβ€”trial and error. Pero nakaya namo.

Ang una nga mga modelo sa camera nga among gisulayan mao ang Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link nga mga kamera ug daghang mga ultra-barato nga walay ngalan nga Chinese nga mga kamera.

Ang teknik

Mga camera base sa Hisilicon 3518E chipset. Ang mga kinaiya sa hardware sa mga camera mao ang mga musunud:

Xiaomi Yi Ants
Dili Noname

SoC
Hisilicon 3518E
Hisilicon 3518E

RAM
64MB
64MB

flash
16MB
8MB

WiFi
mt7601/bcm43143
-

sensor
ov9732 (720p)
ov9712 (720p)

Ethernet
-
+

microSD
+
+

Mikropono
+
+

Mamumulong
+
+

IRLed
+
+

IRCut
+
+

Nagsugod mi sa ila.

Gisuportahan namon karon ang Hisilicon 3516/3518 chipsets, ingon man ang Ambarella S2L / S2LM. Adunay daghang mga modelo sa camera.

Ang komposisyon sa firmware

submarino

Ang uboot mao ang boot loader, kini nag-boot una human sa power on, nag-initialize sa hardware ug nag-load sa linux kernel.

Ang script sa pagkarga sa camera gamay ra kaayo:

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

Usa sa mga bahin mao nga kini gitawag kaduha bootm, dugang pa mahitungod niini sa ulahi, sa diha nga kita moabut ngadto sa update subsystem.

Hatagi'g pagtagad ang linya mem=38M. Oo, oo, kini dili usa ka typo - ang Linux kernel ug tanan, tanan, tanan nga mga aplikasyon adunay access sa 38 megabytes lamang sa RAM.

Sunod usab sa uboot adunay usa ka espesyal nga bloke nga gitawag reg_info, nga adunay usa ka ubos nga lebel nga script alang sa pagsugod sa DDR ug daghang mga rehistro sa sistema sa SoC. Kontento reg_info depende sa modelo sa camera, ug kung dili husto, ang camera dili gani maka-load sa uboot, apan mag-freeze sa sayo nga yugto sa pagkarga.

Sa sinugdanan, sa dihang nagtrabaho kami nga walay suporta sa vendor, gikopya lang namo kini nga block gikan sa orihinal nga firmware sa camera.

Linux kernel ug rootfs

Gigamit sa mga camera ang Linux kernel, nga kabahin sa SDK sa chip; kasagaran dili kini ang pinakabag-o nga kernels gikan sa 3.x branch, mao nga kanunay namong atubangon ang kamatuoran nga ang mga drayber alang sa dugang nga mga ekipo dili compatible sa kernel nga gigamit. , ug kinahanglan natong i-back-port kini sa mga kernel camera.

Ang laing isyu mao ang gidak-on sa kernel. Kung ang gidak-on sa FLASH kay 8MB ra, nan ang matag byte maihap ug ang among tahas mao ang pag-amping sa pag-disable sa tanan nga wala magamit nga kernel function aron makunhuran ang gidak-on sa labing gamay.

Ang Rootfs usa ka sukaranan nga sistema sa file. Naglakip kini busybox, wifi module drivers, usa ka set sa standard system library, sama sa libld ΠΈ libc, ingon man ang among software, nga responsable sa LED control logic, pagdumala sa koneksyon sa network ug mga update sa firmware.

Ang gamut nga sistema sa file konektado sa kernel isip initramfs ug isip resulta sa pagtukod makakuha kita og usa ka file uImage, nga naglangkob sa kernel ug rootfs.

Aplikasyon sa video

Ang labing komplikado ug resource-intensive nga bahin sa firmware mao ang aplikasyon, nga naghatag og video-audio capture, video encoding, nag-configure sa mga parameter sa hulagway, nag-implementar sa video analytics, pananglitan, motion o sound detector, nagkontrol sa PTZ ug responsable sa pagbalhin sa adlaw ug mga mode sa gabii.

Ang usa ka importante, bisan ako moingon nga yawe, ang feature mao ang paagi nga ang video application nakig-interact sa cloud plugin.

Sa tradisyonal nga mga solusyon 'vendor firmware + cloud plugin', nga dili molihok sa barato nga hardware, ang video sa sulod sa camera gipasa pinaagi sa RTSP protocol - ug kini usa ka dako nga overhead: pagkopya ug pagpadala sa datos pinaagi sa socket, dili kinahanglan nga mga syscalls.

Niini nga lugar gigamit namon ang gipaambit nga mekanismo sa panumduman - ang video wala gikopya o gipadala pinaagi sa socket taliwala sa mga sangkap sa software sa camera, sa ingon maayo ug mabinantayon nga gigamit ang kasarangan nga kapabilidad sa hardware sa camera.

Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Pag-update sa subsystem

Usa ka punto sa espesyal nga garbo mao ang fault-tolerant subsystem alang sa mga update sa online firmware.

Pasabta ko sa problema. Ang pag-update sa firmware sa teknikal dili usa ka atomic nga operasyon, ug kung ang usa ka power failure mahitabo sa tunga-tunga sa update, nan ang flash memory adunay bahin sa "under-written" nga bag-ong firmware. Kung dili ka maghimo mga espesyal nga lakang, ang camera mahimo’g usa ka "brick" nga kinahanglan dad-on sa usa ka sentro sa serbisyo.

Among gisagubang usab kini nga problema. Bisan kung ang camera gipalong sa panahon sa pag-update, kini awtomatiko ug wala’y interbensyon sa gumagamit nga mag-download sa firmware gikan sa panganod ug ibalik ang operasyon.

Atong tan-awon ang teknik sa mas detalyado:

Ang labing huyang nga punto mao ang pag-overwrite sa partition gamit ang Linux kernel ug root file system. Kung ang usa niini nga mga sangkap nadaot, ang camera dili na mag-boot lapas sa uboot bootloader, nga dili maka-download sa firmware gikan sa panganod.

Nagpasabot kini nga kinahanglan natong sigurohon nga ang camera adunay nagtrabaho nga kernel ug rootfs bisan unsang orasa sa proseso sa pag-update. Mopatim-aw nga ang pinakasimple nga solusyon mao ang kanunay nga pagtipig sa duha ka kopya sa kernel nga adunay mga rootf sa flash memory ug, kung ang punoan nga kernel nadaot, i-load kini gikan sa backup nga kopya.

Usa ka maayo nga solusyon - bisan pa, ang kernel nga adunay mga rootfs mokabat sa mga 3.5MB ug alang sa usa ka permanente nga backup kinahanglan nimo nga igahin ang 3.5MB. Ang labing barato nga mga camera wala’y daghang libre nga wanang alang sa usa ka backup nga kernel.

Busa, aron i-backup ang kernel sa panahon sa pag-update sa firmware, gigamit namo ang partition sa aplikasyon.
Ug aron mapili ang gusto nga partisyon nga adunay kernel, duha ka mga sugo ang gigamit bootm sa uboot - sa sinugdanan gisulayan namon nga i-load ang panguna nga kernel ug kung kini nadaot, unya ang backup.

Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Gipaneguro niini nga sa bisan unsang oras ang camera adunay husto nga kernel nga adunay mga rootfs, ug kini makahimo sa pag-boot ug pag-uli sa firmware.

Sistema sa CI/CD alang sa pagtukod ug pag-deploy sa firmware

Aron matukod ang firmware, gigamit namon ang gitlab CI, nga awtomatiko nga nagtukod og firmware alang sa tanan nga gisuportahan nga mga modelo sa camera, ug pagkahuman sa pagtukod sa firmware, awtomatiko kini nga gipadala sa serbisyo sa pag-update sa software sa camera.

Giunsa namon nahibal-an ang pagkonektar sa mga camera sa China alang sa 1000 nga mga rubles sa panganod. Kung wala’y mga rehistro ug SMS (ug nakatipig milyon-milyon nga dolyar)

Gikan sa serbisyo, ang mga update sa firmware gihatag sa among mga QA test camera, ug pagkahuman sa tanan nga mga yugto sa pagsulay, sa mga camera sa mga tiggamit.

Kasegurohan sa Impormasyon

Dili kini sekreto nga karon ang kasiguruhan sa kasayuran mao ang labing hinungdanon nga aspeto sa bisan unsang aparato nga IoT, lakip ang mga camera. Ang mga botnet sama sa Mirai nagsuroysuroy sa Internet, nag-impeksyon sa minilyon ka mga kamera nga adunay standard firmware gikan sa mga vendor. Uban sa tanan nga angay nga pagtahud sa mga tigbaligya sa camera, dili nako malikayan nga matikdan nga ang standard firmware adunay daghang mga gamit nga dili kinahanglan alang sa pagtrabaho sa panganod, apan adunay daghang mga kahuyangan nga gipahimuslan sa mga botnet.

Busa, ang tanan nga wala magamit nga pag-andar sa among firmware gi-disable, ang tanan nga tcp / udp port gisirhan, ug kung gi-update ang firmware, ang digital nga pirma sa software gisusi.

Ug gawas pa niini, ang firmware miagi sa regular nga pagsulay sa laboratoryo sa seguridad sa impormasyon.

konklusyon

Karon ang among firmware aktibo nga gigamit sa mga proyekto sa pagpaniid sa video. Tingali ang pinakadako kanila mao ang pagsibya sa pagboto sa adlaw sa eleksyon sa Presidente sa Russian Federation.
Ang proyekto naglakip sa labaw pa sa 70 ka libo nga mga camera sa among firmware, nga gi-install sa mga polling station sa among nasud.

Nasulbad ang usa ka gidaghanon sa mga komplikado, ug sa pipila ka mga dapit, halos imposible nga mga problema nianang panahona, kami, siyempre, nakadawat og dakong katagbawan isip mga inhenyero, apan gawas pa niini, nakatipig usab kami og minilyon nga dolyar sa pagpalit sa mga camera. Ug sa kini nga kaso, ang pagtipig dili lamang mga pulong ug teoretikal nga mga kalkulasyon, apan ang mga resulta sa usa ka nahuman na nga tender alang sa pagpalit sa mga kagamitan. Busa, kung maghisgot kita bahin sa cloud video surveillance: adunay duha ka mga pamaagi - estratehikong nagsalig sa ubos nga lebel nga kahanas ug kalamboan, nga miresulta sa dako nga savings sa mga ekipo, o paggamit sa mahal nga mga ekipo, nga, kon imong tan-awon ilabi na sa consumer nga mga kinaiya, mao ang halos walay lahi sa parehas nga barato.

Ngano nga hinungdanon nga estratehikong magdesisyon sa pagpili sa pamaagi sa paghiusa sa labing sayo nga mahimo? Kung nag-develop sa usa ka plugin, ang mga developer nagsalig sa pipila nga mga teknolohiya (mga librarya, protocol, mga sumbanan). Ug kung ang usa ka hugpong sa mga teknolohiya gipili lamang alang sa mahal nga kagamitan, nan sa umaabot ang usa ka pagsulay sa pagbalhin sa barato nga mga camera lagmit, sa labing gamay, magdugay nga dugay o mapakyas ug ang pagbalik sa mahal nga kagamitan mahitabo.

Source: www.habr.com

Idugang sa usa ka comment