ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

ہر کسی کو خوش!

یہ شاید کوئی راز نہیں ہے کہ کلاؤڈ ویڈیو نگرانی کی خدمات حال ہی میں مقبولیت حاصل کر رہی ہیں۔ اور یہ واضح ہے کہ ایسا کیوں ہوتا ہے، ویڈیو "بھاری" مواد ہے، جس کے اسٹوریج کے لیے انفراسٹرکچر اور بڑی مقدار میں ڈسک اسٹوریج کی ضرورت ہوتی ہے۔ آن پریمیسس ویڈیو سرویلنس سسٹم کو استعمال کرنے کے لیے کام کرنے اور مدد کرنے کے لیے فنڈز کی ضرورت ہوتی ہے، سیکڑوں نگرانی والے کیمرے استعمال کرنے والی تنظیم کے لیے اور متعدد کیمرے والے انفرادی صارف کے لیے۔

ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

کلاؤڈ ویڈیو نگرانی کے نظام صارفین کو موجودہ ویڈیو اسٹوریج اور پروسیسنگ انفراسٹرکچر فراہم کرکے اس مسئلے کو حل کرتے ہیں۔ کلاؤڈ ویڈیو سرویلنس کلائنٹ کو بس کیمرے کو انٹرنیٹ سے جوڑنے اور اسے اپنے کلاؤڈ اکاؤنٹ سے لنک کرنے کی ضرورت ہوتی ہے۔

کیمروں کو کلاؤڈ سے جوڑنے کے کئی تکنیکی طریقے ہیں۔ بلاشبہ، سب سے آسان اور سستا طریقہ یہ ہے کہ کیمرہ سرور یا ریکارڈر جیسے اضافی آلات کی شرکت کے بغیر، براہ راست کلاؤڈ کے ساتھ جڑتا اور کام کرتا ہے۔

اس کے لیے ضروری ہے کہ کیمرہ پر کلاؤڈ کے ساتھ کام کرنے والا سافٹ ویئر ماڈیول انسٹال ہو۔ تاہم، اگر ہم سستے کیمروں کے بارے میں بات کریں، تو ان کے پاس ہارڈ ویئر کے بہت محدود وسائل ہیں، جن پر کیمرہ فروش کے مقامی فرم ویئر کا تقریباً 100 فیصد قبضہ ہے، اور کلاؤڈ پلگ ان کے لیے ضروری وسائل نہیں ہیں۔ ivideon کے ڈویلپرز نے اس مسئلے کو وقف کیا۔ مضمون، جو بتاتا ہے کہ وہ سستے کیمروں پر پلگ ان انسٹال کیوں نہیں کر سکتے۔ نتیجے کے طور پر، کیمرے کی کم از کم قیمت 5000 روبل ($80 ڈالر) ہے اور سامان پر خرچ ہونے والی لاکھوں رقم ہے۔

ہم نے اس مسئلے کو کامیابی سے حل کیا ہے۔ اگر آپ اس میں دلچسپی رکھتے ہیں تو - کٹ میں خوش آمدید

تاریخ کا ایک تھوڑا سا

2016 میں، ہم نے Rostelecom کے لیے کلاؤڈ ویڈیو سرویلنس پلیٹ فارم تیار کرنا شروع کیا۔

کیمرہ سافٹ ویئر کے لحاظ سے، پہلے مرحلے پر ہم نے ایسے کاموں کے لیے "معیاری" راستے کی پیروی کی: ہم نے اپنا پلگ ان تیار کیا، جو وینڈر کے کیمرے کے معیاری فرم ویئر میں انسٹال ہوتا ہے اور ہمارے کلاؤڈ کے ساتھ کام کرتا ہے۔ تاہم، یہ بات قابل غور ہے کہ ڈیزائن کے دوران ہم نے سب سے زیادہ ہلکے اور موثر حل استعمال کیے (مثال کے طور پر، پروٹوبف، libev، mbedtls کا سادہ C نفاذ اور مکمل طور پر ترک کر دی گئی آسان لیکن بھاری لائبریریوں جیسے فروغ)

فی الحال، IP کیمرہ مارکیٹ میں کوئی عالمگیر انضمام حل نہیں ہے: ہر وینڈر کے پاس پلگ ان انسٹال کرنے کا اپنا طریقہ، فرم ویئر کو چلانے کے لیے APIs کا اپنا سیٹ، اور ایک منفرد اپ ڈیٹ میکانزم ہے۔

اس کا مطلب ہے کہ ہر کیمرہ فروش کے لیے انفرادی طور پر انضمام سافٹ ویئر کی ایک جامع تہہ تیار کرنا ضروری ہے۔ اور ڈیولپمنٹ شروع کرنے کے وقت، صرف 1 وینڈر کے ساتھ کام کرنے کا مشورہ دیا جاتا ہے تاکہ ٹیم کی کوششوں کو کلاؤڈ کے ساتھ کام کرنے کے لیے منطق کو تیار کرنے پر مرکوز کیا جا سکے۔

پہلا وینڈر منتخب کیا گیا Hikvision تھا، جو کیمرہ مارکیٹ میں عالمی رہنماؤں میں سے ایک ہے، جو ایک اچھی طرح سے دستاویزی API اور قابل انجینئرنگ تکنیکی مدد فراہم کرتا ہے۔

ہم نے Hikvision کیمروں کا استعمال کرتے ہوئے اپنا پہلا پائلٹ پروجیکٹ، کلاؤڈ ویڈیو سرویلنس ویڈیو کمفرٹ شروع کیا۔

لانچ کے تقریباً فوراً بعد، ہمارے صارفین نے دوسرے مینوفیکچررز سے سستے کیمروں کو سروس سے منسلک کرنے کے امکان کے بارے میں سوالات پوچھنا شروع کر دیے۔

میں نے ہر وینڈر کے لیے انٹیگریشن پرت کو لاگو کرنے کے آپشن کو تقریباً فوراً مسترد کر دیا - کیونکہ یہ ناقص طور پر توسیع پذیر ہے اور کیمرہ ہارڈویئر پر سنگین تکنیکی تقاضے عائد کرتا ہے۔ ان پٹ ضروریات کو پورا کرنے والے کیمرے کی قیمت: ~60-70$

لہذا، میں نے گہری کھدائی کرنے کا فیصلہ کیا - کسی بھی وینڈر سے کیمروں کے لیے اپنا فرم ویئر بنانے کے لیے۔ یہ نقطہ نظر نمایاں طور پر کیمرے کے ہارڈویئر وسائل کی ضروریات کو کم کرتا ہے - کیونکہ کلاؤڈ کے ساتھ کام کرنے کی پرت ویڈیو ایپلیکیشن کے ساتھ بہت زیادہ مؤثر طریقے سے مربوط ہے، اور فرم ویئر میں کوئی غیر ضروری غیر استعمال شدہ چربی نہیں ہے۔

اور جو چیز اہم ہے وہ یہ ہے کہ جب کیمرے کے ساتھ کم سطح پر کام کر رہے ہوں، تو ہارڈ ویئر AES کا استعمال ممکن ہے، جو کم طاقت والے CPU پر اضافی بوجھ پیدا کیے بغیر ڈیٹا کو خفیہ کرتا ہے۔

ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

اس وقت ہمارے پاس کچھ بھی نہیں تھا۔ کچھ بھی نہیں.

تقریباً تمام دکاندار ہمارے ساتھ اتنی نچلی سطح پر کام کرنے کو تیار نہیں تھے۔ سرکٹری اور اجزاء کے بارے میں کوئی معلومات نہیں ہے، چپ سیٹ اور سینسر دستاویزات کا کوئی سرکاری SDK نہیں ہے۔
کوئی تکنیکی مدد بھی نہیں ہے۔

تمام سوالات کا جواب ریورس انجینئرنگ - ٹرائل اینڈ ایرر کے ذریعے دینا تھا۔ لیکن ہم نے انتظام کیا۔

پہلے کیمرہ ماڈلز جن پر ہم نے تجربہ کیا وہ تھے Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, D-Link کیمرے اور کئی انتہائی سستے بے نام چینی کیمرے۔

تکنیک

Hisilicon 3518E چپ سیٹ پر مبنی کیمرے۔ کیمروں کے ہارڈ ویئر کی خصوصیات درج ذیل ہیں:

Xiaomi Yi Ants
غیرقانونی

SOC
Hisilicon 3518E
Hisilicon 3518E

RAM
64MB
64MB

فلیش
16MB
8MB

وائی ​​فائی
mt7601/bcm43143
-

سینسر
ov9732 (720p)
ov9712 (720p)

ایتھرنیٹ
-
+

کے microSD
+
+

مائیکروفون
+
+

اسپیکر
+
+

آئی آر ایلڈ
+
+

آئی آر کٹ
+
+

ہم نے ان سے شروعات کی۔

ہم فی الحال Hisilicon 3516/3518 chipsets کے ساتھ ساتھ Ambarella S2L/S2LM کو سپورٹ کرتے ہیں۔ کیمرے کے درجنوں ماڈلز ہیں۔

فرم ویئر کی ترکیب

آبدوز

uboot بوٹ لوڈر ہے، یہ پاور آن ہونے کے بعد پہلے بوٹ کرتا ہے، ہارڈ ویئر کو شروع کرتا ہے اور لینکس کرنل کو لوڈ کرتا ہے۔

کیمرہ لوڈنگ اسکرپٹ کافی معمولی ہے:

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. ہاں، ہاں، یہ کوئی ٹائپو نہیں ہے - لینکس کرنل اور تمام، تمام ایپلی کیشنز کو صرف 38 میگا بائٹس RAM تک رسائی حاصل ہے۔

نیز یوبوٹ کے آگے ایک خاص بلاک ہے جسے کہا جاتا ہے۔ reg_info، جس میں DDR شروع کرنے کے لیے ایک نچلی سطح کی اسکرپٹ اور SoC کے متعدد سسٹم رجسٹر ہوتے ہیں۔ مواد reg_info کیمرے کے ماڈل پر منحصر ہے، اور اگر یہ درست نہیں ہے، تو کیمرہ یوبوٹ کو لوڈ کرنے کے قابل بھی نہیں ہوگا، لیکن لوڈنگ کے ابتدائی مرحلے میں ہی جم جائے گا۔

سب سے پہلے، جب ہم نے وینڈر سپورٹ کے بغیر کام کیا، تو ہم نے اس بلاک کو اصل کیمرہ فرم ویئر سے کاپی کیا۔

لینکس کرنل اور روٹ ایف

کیمرے لینکس کرنل کا استعمال کرتے ہیں، جو چپ کے SDK کا حصہ ہے؛ عام طور پر یہ 3.x برانچ کے جدید ترین کرنل نہیں ہوتے ہیں، اس لیے ہمیں اکثر اس حقیقت سے نمٹنا پڑتا ہے کہ اضافی آلات کے لیے ڈرائیور استعمال کیے جانے والے کرنل کے ساتھ مطابقت نہیں رکھتے۔ ، اور ہمیں انہیں کرنل کیمروں میں بیک پورٹ کرنا ہوگا۔

ایک اور مسئلہ دانا کا سائز ہے۔ جب FLASH کا سائز صرف 8MB ہوتا ہے، تو ہر بائٹ کا شمار ہوتا ہے اور ہمارا کام تمام غیر استعمال شدہ کرنل فنکشنز کو احتیاط سے غیر فعال کرنا ہے تاکہ سائز کو کم سے کم کیا جا سکے۔

Rootfs ایک بنیادی فائل سسٹم ہے۔ اس میں شامل ہے۔ busybox، وائی فائی ماڈیول ڈرائیورز، معیاری سسٹم لائبریریوں کا ایک سیٹ، جیسے libld и libc، نیز ہمارا سافٹ ویئر، جو LED کنٹرول منطق، نیٹ ورک کنکشن مینجمنٹ اور فرم ویئر اپ ڈیٹس کے لیے ذمہ دار ہے۔

روٹ فائل سسٹم کرنل سے initramfs کے طور پر جڑا ہوا ہے اور اس کی تعمیر کے نتیجے میں ہمیں ایک فائل ملتی ہے۔ uImage، جس میں دانا اور جڑ دونوں شامل ہیں۔

ویڈیو ایپلی کیشن

فرم ویئر کا سب سے پیچیدہ اور وسائل کا حامل حصہ ایپلی کیشن ہے، جو ویڈیو-آڈیو کیپچر، ویڈیو انکوڈنگ، تصویر کے پیرامیٹرز کو ترتیب دیتا ہے، ویڈیو اینالیٹکس کو لاگو کرتا ہے، مثال کے طور پر، موشن یا ساؤنڈ ڈیٹیکٹر، پی ٹی زیڈ کو کنٹرول کرتا ہے اور دن کو سوئچ کرنے کے لیے ذمہ دار ہے۔ رات کے طریقوں.

ایک اہم، میں کلید بھی کہوں گا، خصوصیت یہ ہے کہ ویڈیو ایپلی کیشن کلاؤڈ پلگ ان کے ساتھ کیسے تعامل کرتی ہے۔

روایتی حل 'وینڈر فرم ویئر + کلاؤڈ پلگ ان' میں، جو سستے ہارڈ ویئر پر کام نہیں کر سکتا، کیمرے کے اندر موجود ویڈیو کو RTSP پروٹوکول کے ذریعے منتقل کیا جاتا ہے - اور یہ ایک بہت بڑا اوور ہیڈ ہے: ساکٹ کے ذریعے ڈیٹا کاپی کرنا اور منتقل کرنا، غیر ضروری سیسکالز۔

یہاں ہم مشترکہ میموری میکانزم کا استعمال کرتے ہیں - ویڈیو کو کیمرہ سافٹ ویئر کے اجزاء کے درمیان ساکٹ کے ذریعے کاپی یا بھیجا نہیں جاتا ہے، اس طرح کیمرہ کی معمولی ہارڈویئر صلاحیتوں کو بہتر طریقے سے اور احتیاط سے استعمال کیا جاتا ہے۔

ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

سب سسٹم کو اپ ڈیٹ کریں۔

خصوصی فخر کا نقطہ آن لائن فرم ویئر اپ ڈیٹس کے لیے غلطی برداشت کرنے والا سب سسٹم ہے۔

مجھے مسئلہ کی وضاحت کرنے دو۔ فرم ویئر کو اپ ڈیٹ کرنا تکنیکی طور پر کوئی ایٹم آپریشن نہیں ہے، اور اگر اپ ڈیٹ کے وسط میں پاور فیل ہو جاتی ہے، تو فلیش میموری میں نئے فرم ویئر کا "انڈر رائٹ" حصہ ہوگا۔ اگر آپ خصوصی اقدامات نہیں کرتے ہیں، تو کیمرہ پھر ایک "اینٹ" بن جائے گا جسے سروس سینٹر لے جانے کی ضرورت ہے۔

ہم نے اس مسئلے سے بھی نمٹا ہے۔ یہاں تک کہ اگر اپ ڈیٹ کے دوران کیمرہ بند ہو جائے تو، یہ خود بخود اور صارف کی مداخلت کے بغیر کلاؤڈ سے فرم ویئر ڈاؤن لوڈ کر کے آپریشن کو بحال کر دے گا۔

آئیے اس تکنیک کو مزید تفصیل سے دیکھیں:

سب سے زیادہ خطرناک نقطہ لینکس کرنل اور روٹ فائل سسٹم کے ساتھ پارٹیشن کو اوور رائٹ کرنا ہے۔ اگر ان اجزاء میں سے کسی ایک کو نقصان پہنچا ہے تو، کیمرہ یوبوٹ بوٹ لوڈر سے باہر بالکل بھی بوٹ نہیں ہوگا، جو کلاؤڈ سے فرم ویئر ڈاؤن لوڈ نہیں کرسکتا۔

اس کا مطلب یہ ہے کہ ہمیں اس بات کو یقینی بنانا ہوگا کہ اپ ڈیٹ کے عمل کے دوران کسی بھی وقت کیمرے میں کام کرنے والا دانا اور روٹ ایف ہے۔ ایسا لگتا ہے کہ آسان ترین حل یہ ہوگا کہ کرنل کی دو کاپیاں روٹ ایف کے ساتھ فلیش میموری پر لگاتار اسٹور کریں اور اگر مین کرنل خراب ہو جائے تو اسے بیک اپ کاپی سے لوڈ کریں۔

ایک اچھا حل - تاہم، rootfs کے ساتھ دانا تقریباً 3.5MB لیتا ہے اور مستقل بیک اپ کے لیے آپ کو 3.5MB مختص کرنے کی ضرورت ہے۔ سب سے سستے کیمروں میں بیک اپ کرنل کے لیے اتنی خالی جگہ نہیں ہوتی۔

لہذا، فرم ویئر اپ ڈیٹ کے دوران دانا کا بیک اپ لینے کے لیے، ہم ایپلیکیشن پارٹیشن کا استعمال کرتے ہیں۔
اور کرنل کے ساتھ مطلوبہ پارٹیشن کو منتخب کرنے کے لیے دو کمانڈز استعمال کی جاتی ہیں۔ bootm uboot میں - شروع میں ہم مین کرنل کو لوڈ کرنے کی کوشش کرتے ہیں اور اگر یہ خراب ہو جائے تو بیک اپ۔

ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

یہ یقینی بناتا ہے کہ کسی بھی وقت کیمرہ کے پاس روٹ ایف کے ساتھ صحیح دانا ہوگا، اور یہ فرم ویئر کو بوٹ اور بحال کرنے کے قابل ہوگا۔

فرم ویئر کی تعمیر اور تعیناتی کے لیے CI/CD نظام

فرم ویئر بنانے کے لیے، ہم gitlab CI استعمال کرتے ہیں، جو خود بخود تمام معاون کیمرہ ماڈلز کے لیے فرم ویئر بناتا ہے، اور فرم ویئر بنانے کے بعد، یہ خود بخود کیمرہ سافٹ ویئر اپ ڈیٹ سروس میں تعینات ہو جاتا ہے۔

ہم نے 1000 روبل کے چینی کیمروں کو کلاؤڈ سے جوڑنے کا طریقہ سیکھا۔ کوئی لاگرز یا SMS نہیں (اور لاکھوں ڈالر بچائے گئے)

سروس سے، فرم ویئر اپ ڈیٹس ہمارے QA ٹیسٹ کیمروں کو، اور تمام ٹیسٹنگ مراحل کی تکمیل کے بعد، صارفین کے کیمروں تک پہنچائی جاتی ہیں۔

معلومات کی حفاظت

یہ کوئی راز نہیں ہے کہ آج کل معلومات کی حفاظت کسی بھی IoT ڈیوائس کا سب سے اہم پہلو ہے، بشمول کیمرے۔ میرائی جیسے بوٹنیٹس انٹرنیٹ پر گھوم رہے ہیں، لاکھوں کیمروں کو وینڈرز کے معیاری فرم ویئر سے متاثر کر رہے ہیں۔ کیمرہ فروشوں کے تمام احترام کے ساتھ، میں مدد نہیں کرسکتا لیکن نوٹ کریں کہ معیاری فرم ویئر میں بہت ساری فعالیت ہوتی ہے جس کی کلاؤڈ کے ساتھ کام کرنے کی ضرورت نہیں ہوتی ہے، لیکن اس میں بہت سی کمزوریاں ہوتی ہیں جن سے بوٹنیٹس فائدہ اٹھاتے ہیں۔

لہذا، ہمارے فرم ویئر میں تمام غیر استعمال شدہ فعالیت کو غیر فعال کر دیا گیا ہے، تمام tcp/udp بندرگاہیں بند ہیں، اور فرم ویئر کو اپ ڈیٹ کرتے وقت، سافٹ ویئر کے ڈیجیٹل دستخط کو چیک کیا جاتا ہے۔

اور اس کے علاوہ انفارمیشن سیکیورٹی لیبارٹری میں فرم ویئر کی باقاعدہ جانچ ہوتی ہے۔

حاصل يہ ہوا

اب ہمارا فرم ویئر ویڈیو نگرانی کے منصوبوں میں فعال طور پر استعمال ہوتا ہے۔ شاید ان میں سب سے بڑا روسی فیڈریشن کے صدر کے انتخاب کے دن ووٹنگ کی نشریات ہے۔
اس منصوبے میں ہمارے فرم ویئر کے ساتھ 70 ہزار سے زیادہ کیمرے شامل تھے، جو ہمارے ملک کے پولنگ اسٹیشنوں پر نصب تھے۔

بہت سے پیچیدہ اور بعض جگہوں پر، اس وقت تقریباً ناممکن مسائل کو حل کرنے کے بعد، ہمیں انجینئرز کی حیثیت سے یقیناً بڑا اطمینان حاصل ہوا، لیکن اس کے علاوہ، ہم نے کیمروں کی خریداری پر لاکھوں ڈالر کی بچت بھی کی۔ اور اس صورت میں، بچت نہ صرف الفاظ اور نظریاتی حسابات ہیں، بلکہ سامان کی خریداری کے لیے پہلے سے مکمل شدہ ٹینڈر کے نتائج ہیں۔ اسی مناسبت سے، اگر ہم کلاؤڈ ویڈیو سرویلنس کے بارے میں بات کرتے ہیں: دو طریقے ہیں - حکمت عملی کے لحاظ سے کم سطح کی مہارت اور ترقی پر انحصار کرتے ہیں، جس کے نتیجے میں آلات پر بہت زیادہ بچت ہوتی ہے، یا مہنگے آلات کا استعمال ہوتا ہے، جو کہ اگر آپ خاص طور پر صارفین کی خصوصیات کو دیکھیں، تو عملی طور پر کوئی نہیں ہے۔ اسی طرح کے سستے سے مختلف۔

انضمام کے نقطہ نظر کے انتخاب کے بارے میں جلد از جلد فیصلہ کرنا حکمت عملی کے لحاظ سے کیوں اہم ہے؟ پلگ ان تیار کرتے وقت، ڈویلپرز بعض ٹیکنالوجیز (لائبریریاں، پروٹوکول، معیارات) پر انحصار کرتے ہیں۔ اور اگر ٹیکنالوجیز کا ایک سیٹ صرف مہنگے آلات کے لیے منتخب کیا جاتا ہے، تو مستقبل میں سستے کیمروں پر سوئچ کرنے کی کوشش، کم از کم، بہت زیادہ وقت لگے گی یا اس سے بھی ناکام ہو جائے گی اور مہنگے آلات کی طرف واپسی ہو گی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں