Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Hello a h-uile duine!

Is dòcha nach eil e na dhìomhaireachd gu bheil seirbheisean sgrùdaidh bhidio sgòthan air a bhith mòr-chòrdte o chionn ghoirid. Agus tha e soilleir carson a tha seo a’ tachairt, tha bhidio na shusbaint “trom”, agus tha feum air bun-structar agus tòrr stòraidh diosc airson a stòradh. Le bhith a’ cleachdadh siostam sgrùdaidh bhidio san togalach tha feum air airgead airson obrachadh agus taic, an dà chuid airson buidheann a tha a’ cleachdadh ceudan de chamarathan sgrùdaidh agus airson neach-cleachdaidh fa-leth le grunn chamarathan.

Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Bidh siostaman sgrùdaidh bhidio Cloud a ’fuasgladh na duilgheadas seo le bhith a’ toirt bun-structar stòraidh is giullachd bhidio a tha ann mar-thà do luchd-ceannach. Feumaidh neach-dèiligidh sgrùdaidh bhidio sgòthan dìreach an camara a cheangal ris an eadar-lìn agus a cheangal ris a’ chunntas sgòthan aige.

Tha grunn dhòighean teicneòlais ann airson camarathan a cheangal ris an sgòth. Gun teagamh, is e an dòigh as freagarraiche agus as saoire gum bi an camara a 'ceangal gu dìreach agus ag obair leis an sgòth, gun a bhith a' com-pàirteachadh uidheamachd a bharrachd leithid frithealaiche no inneal-clàraidh.

Gus seo a dhèanamh, feumar modal bathar-bog ag obair leis an sgòth a chuir a-steach air a’ chamara. Ach, ma bhruidhneas sinn mu dheidhinn camarathan saor, tha goireasan bathar-cruaidh glè bheag aca, a tha faisg air 100% air an cleachdadh le firmware dùthchasach neach-reic a’ chamara, agus chan eil goireasan sam bith riatanach airson plugan sgòthan. Thug luchd-leasachaidh bho ivideon seachad an duilgheadas seo artaigil, a tha a’ mìneachadh carson nach urrainn dhaibh am plugan a stàladh air camarathan saor. Mar thoradh air an sin, is e a ’phrìs as ìsle airson a’ chamara 5000 rubles ($ 80 dolar) agus milleanan de airgead air a chosg air uidheamachd.

Tha sinn air an duilgheadas seo fhuasgladh gu soirbheachail. Ma tha ùidh agad ciamar - fàilte don ghearradh

Pàirt de dh'eachdraidh

Ann an 2016, thòisich sinn a’ leasachadh àrd-ùrlar sgrùdaidh bhidio sgòthan airson Rostelecom.

A thaobh bathar-bog camara, aig a’ chiad ìre lean sinn an t-slighe “àbhaisteach” airson gnìomhan mar sin: leasaich sinn am plugan againn fhèin, a tha air a chuir a-steach ann am firmware àbhaisteach camara an neach-reic agus ag obair leis an sgòth againn. Ach, is fhiach a bhith mothachail gun do chleachd sinn na fuasglaidhean as aotrom agus as èifeachdaiche rè an dealbhadh (mar eisimpleir, buileachadh sìmplidh C de protobuf, libev, mbedtls agus leabharlannan goireasach ach trom mar àrdachadh) air an trèigsinn gu tur.

An-dràsta, chan eil fuasglaidhean amalachaidh uile-choitcheann air a’ mhargaidh camara IP: tha a dhòigh fhèin aig gach neach-reic air am plugan a chuir a-steach, an seata API aca fhèin airson am firmware obrachadh, agus inneal ùrachaidh sònraichte.

Tha seo a’ ciallachadh gum feumar sreath fharsaing de bhathar-bog amalachaidh a leasachadh airson gach solaraiche camara. Agus aig an àm a thòisichear air leasachadh, tha e ciallach a bhith ag obair a-mhàin le 1 reiceadair gus oidhirpean na sgioba a chuimseachadh air leasachadh loidsig airson a bhith ag obair leis an sgòth.

B’ e a’ chiad reiceadair a chaidh a thaghadh Hikvision, aon de na stiùirichean cruinne ann am margaidh a’ chamara, a’ toirt seachad API le deagh chlàr agus taic theicnigeach innleadaireachd comasach.

Chuir sinn air bhog a’ chiad phròiseact pìleat againn, sgrùdadh bhidio sgòthan Video Comfort, a’ cleachdadh camarathan Hikvision.

Cha mhòr sa bhad às deidh an fhoillseachadh, thòisich ar luchd-cleachdaidh a ’faighneachd cheistean mun chomas a bhith a’ ceangal camarathan nas saoire bho luchd-saothrachaidh eile ris an t-seirbheis.

Dhiùlt mi an roghainn còmhdach amalachaidh a chuir an gnìomh airson gach reiceadair cha mhòr sa bhad - leis gu bheil e gu math scalable agus a ’cur fìor riatanasan teicnigeach air bathar-cruaidh a’ chamara. Cosgais camara a choinnicheas ris na riatanasan cuir a-steach seo: ~60-70$

Mar sin, chuir mi romhpa cladhach nas doimhne - gus am firmware agam fhèin a dhèanamh airson camarathan bho neach-reic sam bith. Tha an dòigh-obrach seo a 'lùghdachadh gu mòr na riatanasan airson goireasan bathar-cruaidh camara - oir Tha an còmhdach airson a bhith ag obair leis an sgòth mòran nas èifeachdaiche amalaichte leis an tagradh bhidio, agus chan eil geir neo-riatanach gun chleachdadh anns a’ firmware.

Agus is e an rud a tha cudromach, nuair a bhios tu ag obair leis a ’chamara aig ìre ìosal, gu bheil e comasach AES bathar-cruaidh a chleachdadh, a bhios a’ cuairteachadh dàta gun a bhith a ’cruthachadh luchd a bharrachd air an CPU cumhachd ìosal.

Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Aig an àm sin cha robh dad againn idir. Chan eil dad idir.

Cha mhòr nach robh a h-uile neach-reic deiseil airson obrachadh còmhla rinn aig ìre cho ìosal. Chan eil fiosrachadh sam bith ann mun chuairt-chuairt agus na co-phàirtean, chan eil SDK oifigeil ann de chipsets agus sgrìobhainnean mothachaidh.
Chan eil taic theicnigeach ann cuideachd.

Dh'fheumadh a h-uile ceist a fhreagairt tro innleadaireachd cùil - deuchainn agus mearachd. Ach rinn sinn riaghladh.

B’ iad na ciad mhodalan camara air an do rinn sinn deuchainn air camarathan Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link agus grunn chamarathan Sìneach gun ainm ultra-saor.

Teicneòlas

Camaraichean stèidhichte air chipset Hisilicon 3518E. Tha feartan bathar-cruaidh nan camarathan mar a leanas:

Xiaomi Yi Seangan
Noname

SoC
Hisilicon 3518E
Hisilicon 3518E

RAM
64MB
64MB

FLASH
16MB
8MB

WiFi
mt7601/bcm43143
-

Sensor
ubh 9732 (720p)
ubh 9712 (720p)

Ethernet
-
+

Taic mu Ruigsinneachd
+
+

Microfòn
+
+

Labhraiche
+
+

IRLed
+
+

IRCut
+
+

Thòisich sinn leotha.

Tha sinn an-dràsta a’ toirt taic do chipsets Hisilicon 3516/3518, a bharrachd air Ambarella S2L/S2LM. Tha dusanan de mhodalan camara ann.

Cruinneachadh firmware

uuchd

Is e uboot am boot loader, bidh e a’ bròg an toiseach às deidh cumhachd air, a’ tòiseachadh am bathar-cruaidh agus a’ luchdachadh an kernel linux.

Tha an sgriobt luchdachadh camara gu math beag:

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

Is e aon de na feartan gu bheil e air a ghairm dà uair bootm, barrachd mu dheidhinn seo beagan nas fhaide air adhart, nuair a ruigeas sinn an fho-shiostam ùrachaidh.

Thoir aire don loidhne mem=38M. Tha, tha, chan e typo a tha seo - an kernel Linux agus, uile, tha cothrom aig a h-uile aplacaid air dìreach 38 megabytes de RAM.

Cuideachd ri taobh uboot tha bloc sònraichte ris an canar reg_info, anns a bheil sgriobt ìre ìosal airson DDR a thòiseachadh agus grunn chlàran siostam den SoC. Susbaint reg_info Tha e an urra ri modail a’ chamara, agus mura h-eil e ceart, cha bhith e comasach don chamara eadhon uboot a luchdachadh, ach reothadh e aig ìre glè thràth den luchdachadh.

An toiseach, nuair a bha sinn ag obair às aonais taic reiceadair, cha do rinn sinn ach lethbhreac den bhloc seo bhon firmware camara tùsail.

Linux kernel agus rootfs

Bidh na camarathan a’ cleachdadh an kernel Linux, a tha na phàirt de SDK a’ chip; mar as trice chan e seo na kernels as ùire bhon mheur 3.x, agus mar sin feumaidh sinn gu tric dèiligeadh ris nach eil draibhearan airson uidheamachd a bharrachd co-chosmhail ris an kernel a thathar a’ cleachdadh. , agus feumaidh sinn an toirt air ais gu na camarathan kernel.

Is e cùis eile meud an kernel. Nuair nach eil meud FLASH ach 8MB, bidh a h-uile byte a’ cunntadh agus is e an obair againn a h-uile gnìomh kernel nach deach a chleachdadh a chuir dheth gu faiceallach gus am meud a lughdachadh chun ìre as ìsle.

Tha Rootfs na shiostam faidhle bunaiteach. Tha e a’ toirt a-steach busybox, draibhearan modal wifi, seata de leabharlannan siostam àbhaisteach, leithid libld и libc, a bharrachd air ar bathar-bog, a tha an urra ri loidsig smachd LED, stiùireadh ceangal lìonra agus ùrachaidhean firmware.

Tha an siostam freumh-fhaidhlichean ceangailte ris an kernel mar initramfs agus mar thoradh air an togail gheibh sinn aon fhaidhle uImage, anns a bheil an dà chuid an kernel agus rootfs.

Iarrtas bhidio

Is e am pàirt as iom-fhillte agus as dian de ghoireasan den firmware an tagradh, a bheir seachad glacadh bhidio-claisneachd, còdachadh bhidio, a ’rèiteachadh paramadairean dhealbhan, a’ cur an gnìomh mion-sgrùdadh bhidio, mar eisimpleir, lorgairean gluasad no fuaim, a ’cumail smachd air PTZ agus a tha an urra ri atharrachadh latha agus modhan oidhche.

Is e feart cudromach, chanainn eadhon, prìomh fheart mar a bhios an tagradh bhidio ag eadar-obrachadh leis a’ plugan sgòthan.

Ann am fuasglaidhean traidiseanta ‘firmware reiceadair + plugan sgòthan’, nach urrainn obrachadh air bathar-cruaidh saor, tha bhidio taobh a-staigh a’ chamara air a chraoladh tro phròtacal RTSP - agus tha seo na àrdachadh mòr: a’ dèanamh copaidh agus a’ sgaoileadh dàta tro shocaid, syscalls neo-riatanach.

An seo bidh sinn a’ cleachdadh an inneal cuimhne co-roinnte - chan eil am bhidio air a chopaigeadh no air a chuir tro socaid eadar na pàirtean bathar-bog camara, mar sin a’ cleachdadh comasan bathar-cruaidh beag a’ chamara gu dòigheil agus gu faiceallach.

Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Luchdaich a-nuas an subsystem

Is e adhbhar moit sònraichte am fo-shiostam a tha a’ fulang le lochdan airson ùrachadh firmware air-loidhne.

Leig leam an duilgheadas a mhìneachadh. Gu teicnigeach chan e obrachadh atamach a th’ ann an ùrachadh a’ firmware, agus ma thachras fàilligeadh cumhachd ann am meadhan an ùrachaidh, bidh pàirt den firmware ùr “fo-sgrìobhte” anns a’ chuimhne flash. Mura gabh thu ceumannan sònraichte, bidh an camara an uairsin na “breige” a dh’ fheumar a thoirt gu ionad seirbheis.

Tha sinn air dèiligeadh ris an duilgheadas seo cuideachd. Fiù ma thèid an camara a chuir dheth rè an ùrachaidh, bidh e gu fèin-ghluasadach agus às aonais eadar-theachd neach-cleachdaidh a ’luchdachadh sìos am firmware bhon sgòth agus ag ath-nuadhachadh gnìomhachd.

Bheir sinn sùil nas mionaidiche air an teicneòlas:

Is e a’ phuing as so-leònte a bhith a’ sgrìobhadh thairis air an sgaradh leis an kernel Linux agus siostam faidhle freumh. Ma thèid aon de na co-phàirtean sin a mhilleadh, cha bhith an camara a’ tòiseachadh idir nas fhaide na an uboot bootloader, nach urrainn firmware a luchdachadh sìos bhon sgòth.

Tha seo a’ ciallachadh gum feum sinn dèanamh cinnteach gu bheil kernel obrach agus rootfs aig a’ chamara aig àm sam bith tron ​​phròiseas ùrachaidh. Bhiodh e coltach gur e am fuasgladh as sìmplidh dà leth-bhreac den kernel a stòradh gu cunbhalach le rootfs air cuimhne flash agus, ma thèid am prìomh kernel a mhilleadh, luchdaich e bhon leth-bhreac cùl-taic.

Fuasgladh math - ge-tà, bidh an kernel le rootfs a 'toirt suas mu 3.5MB agus airson cùl-taic maireannach feumaidh tu 3.5MB a riarachadh. Chan eil na camarathan as saoire dìreach cho mòr an-asgaidh airson kernel cùl-taic.

Mar sin, gus cùl-taic a dhèanamh den kernel rè ùrachadh firmware, bidh sinn a’ cleachdadh sgaradh an tagraidh.
Agus gus an sgaradh a tha thu ag iarraidh a thaghadh leis an kernel, thathas a’ cleachdadh dà àithne bootm ann an uboot - aig an toiseach bidh sinn a 'feuchainn ris a' phrìomh kernel a luchdachadh agus ma thèid a mhilleadh, an uairsin am fear cùl-taic.

Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Bidh seo a’ dèanamh cinnteach gum bi an kernel ceart aig a’ chamara aig àm sam bith le rootfs, agus bidh e comasach dha am firmware a bhrùthadh agus a thoirt air ais.

Siostam CI/CD airson firmware a thogail agus a chleachdadh

Gus firmware a thogail, bidh sinn a’ cleachdadh gitlab CI, a bhios gu fèin-obrachail a’ togail firmware airson a h-uile modal camara le taic, agus às deidh dhuinn am firmware a thogail, thèid a chuir gu fèin-ghluasadach gu seirbheis ùrachadh bathar-bog a’ chamara.

Mar a dh’ ionnsaich sinn camarathan Sìneach a cheangal airson 1000 rubles ris an sgòth. Gun luchd-logaidh no SMS (agus shàbhail e milleanan dolar)

Bhon t-seirbheis, thèid ùrachaidhean firmware a lìbhrigeadh gu na camarathan deuchainn QA againn, agus nuair a bhios gach ìre deuchainn deiseil, gu camarathan luchd-cleachdaidh.

Tèarainteachd fiosrachaidh

Chan eil e na dhìomhaireachd gur e tèarainteachd fiosrachaidh an-diugh an taobh as cudromaiche de inneal IoT sam bith, a’ toirt a-steach camarathan. Tha botnets mar Mirai a ’gluasad air an eadar-lìn, a’ fulang milleanan de chamarathan le firmware àbhaisteach bho luchd-reic. Le spèis iomchaidh do luchd-reic camara, chan urrainn dhomh cuideachadh ach toirt fa-near gu bheil mòran de ghnìomhachd ann am firmware àbhaisteach nach eil a dhìth airson a bhith ag obair leis an sgòth, ach tha mòran so-leòntachd ann a bhios botnets a’ gabhail brath air.

Mar sin, tha a h-uile gnìomh nach deach a chleachdadh nar firmware ciorramach, tha a h-uile port tcp / udp dùinte, agus nuair a bhios tu ag ùrachadh am firmware, thèid ainm-sgrìobhte didseatach a’ bhathar-bog a sgrùdadh.

Agus a bharrachd air an seo, bidh am firmware a’ dol tro dheuchainnean cunbhalach anns an obair-lann tèarainteachd fiosrachaidh.

co-dhùnadh

A-nis tha ar firmware air a chleachdadh gu gnìomhach ann am pròiseactan sgrùdaidh bhidio. Is dòcha gur e am fear as motha dhiubh craoladh bhòtaidh air latha taghadh Ceann-suidhe Caidreachas na Ruis.
Bha am pròiseact a’ toirt a-steach còrr air 70 mìle camara leis a’ firmware againn, a chaidh a chuir a-steach aig stèiseanan bhòtaidh san dùthaich againn.

An dèidh grunn iom-fhillte fhuasgladh, agus ann an cuid de dh'àiteachan, eadhon aig an àm sin cha mhòr do-dhèanta duilgheadasan, tha sinn, gu dearbh, a fhuair deagh riarachadh mar innleadairean, ach a bharrachd air an seo, tha sinn cuideachd a shàbhaladh milleanan dolar air a 'ceannach camarathan. Agus anns a 'chùis seo, chan e a-mhàin faclan agus àireamhachadh teòiridheach a th' ann an sàbhalaidhean, ach toraidhean tairgse a chaidh a chrìochnachadh mu thràth airson ceannach uidheamachd. Mar sin, ma bhruidhneas sinn mu sgrùdadh bhidio sgòthan: tha dà dhòigh-obrach ann - gu ro-innleachdail an urra ri eòlas agus leasachadh aig ìre ìosal, a ’leantainn gu sàbhalaidhean mòra air uidheamachd, no cleachd uidheamachd daor, a tha, ma choimheadas tu gu sònraichte air feartan luchd-cleachdaidh, gu ìre mhòr gun fheum. eadar-dhealaichte bho fheadhainn saor coltach.

Carson a tha e cudromach gu ro-innleachdail co-dhùnadh a dhèanamh air an roghainn dòigh-obrach amalachaidh cho tràth 'sa ghabhas? Nuair a bhios iad a’ leasachadh plugan, bidh luchd-leasachaidh an urra ri teicneòlasan sònraichte (leabharlannan, protocolaidhean, inbhean). Agus ma thèid seata de theicneòlasan a thaghadh a-mhàin airson uidheamachd daor, an uairsin san àm ri teachd bidh oidhirp gluasad gu camarathan saor dualtach, aig a ’char as lugha, ùine fhada a ghabhail no eadhon fàiligeadh agus tillidh e gu uidheamachd daor.

Source: www.habr.com

Cuir beachd ann