إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يدعم Device Update لـ Azure IoT Hub التحديثات المستندة إلى الصور والقائمة على الحزم والبرامج النصية. يوضح هذا البرنامج التعليمي تحديث الجهاز المستند إلى الصورة الشامل لتحديث IoT Hub باستخدام صورة Yocto على لوحة Raspberry Pi 3 B+.
توفر تحديثات الصور مستوى عاليا من الثقة في الحالة النهائية للجهاز، ولا تشكل نفس تحديات إدارة الحزمة والتبعية مثل التحديثات المستندة إلى الحزمة أو البرنامج النصي. من الأسهل نسخ نتائج تحديث الصورة بين بيئة ما قبل الإنتاج والإنتاج، أو اعتماد نموذج تجاوز الفشل A/B بسهولة.
في هذا البرنامج التعليمي، سوف تتعلّم:
- قم بتنزيل تحديث صورة وتثبيته.
- تعيين علامة إلى جهاز IoT الخاص بك.
- استيراد تحديث الصورة.
- نشر تحديث الصورة.
- عرض محفوظات نشر التحديث.
المتطلبات الأساسية
لوحة Raspberry Pi 3 IoT متصلة عبر Ethernet بالأجهزة التي يمكنها تنزيل ملفات الصور واستخراجها والتحكم في الجهاز.
إشعار
تم التحقق من صحة تحديثات الصور في هذا البرنامج التعليمي على لوحة Raspberry Pi B3.
تسجيل الجهاز والحصول على سلسلة الاتصال
أضف جهازك إلى سجل الجهاز في مركز IoT والحصول على سلسلة الاتصال IoT Hub الذي ينشئه الجهاز.
- في مدخل Microsoft Azure، افتح صفحة مركز IoT المقترنة بمثيل تحديث الجهاز.
- في جزء التنقل الأيمن، حدد أجهزة إدارة>الأجهزة.
- في صفحة الأجهزة ، حدد إضافة جهاز.
- ضمن Device ID، أدخل اسما للجهاز. تأكد من تحديد خانة الاختيار Autogenerate keys.
- حدد حفظ. يظهر الجهاز في القائمة على صفحة الأجهزة .
- في صفحة الأجهزة ، حدد الجهاز الذي قمت بتسجيله.
- في صفحة الجهاز، حدد أيقونة النسخ بجوار سلسلة الاتصال (المفتاح الأساسي) . احفظ هذا الجهاز سلسلة الاتصال لاستخدامه عند تكوين عامل تحديث الجهاز.
إشعار
لأغراض العرض التوضيحي، يستخدم هذا البرنامج التعليمي جهازا سلسلة الاتصال للمصادقة والاتصال بمركز IoT. بالنسبة لسيناريوهات الإنتاج، من الأفضل استخدام هوية الوحدة النمطية وخدمة هوية IoT لتوفير الأجهزة. لمزيد من المعلومات، راجع توفير عامل تحديث الجهاز.
إعداد Raspberry Pi
يحتوي ملف Tutorial_RaspberryPi3.zip على جميع الملفات المطلوبة لبرنامج تعليمي. قم بتنزيل الملف من قسم الأصول في الإصدار الأخير على صفحة إصدارات تحديث جهاز GitHub، وقم بفك ضغطه.
في مجلد Tutorial_RaspberryPi3 المستخرج، الصورة الأساسية التي يمكنك وميضها على لوحة Raspberry Pi هي adu-base-image-raspberrypi3.wic. تستخدم الصورة الأساسية بناء Yocto استنادا إلى الإصدار 3.4.4. تحتوي الصورة على عامل تحديث الجهاز و SWUpdate، والتي تمكن تحديث القسم المزدوج لتحديث الجهاز. لمزيد من المعلومات حول طبقات Yocto، راجع إنشاء نظام مخصص يستند إلى Linux باستخدام عامل تحديث الجهاز باستخدام مشروع Yocto.
ملفات التحديث التي تقوم باستيرادها من خلال تحديث الجهاز هي:
- ملف SWUpdate adu-update-image-raspberrypi3-1.2.0.swu
- example-a-b-update.sh البرنامج النصي المخصص ل SWUpdate
- EDS-ADUClient.yocto-update.1.2.0.importmanifest.json البيان
استخدام bmaptool لاستخدام بطاقة SD
هام
يخضع تحديث جهاز Azure لبرنامج IoT Hub لشروط الترخيص التالية:
اقرأ شروط الترخيص قبل استخدام العامل. تركيب العامل واستخدامه يشكل قبولا لهذه الشروط. إذا لم توافق على شروط الترخيص، فلا تستخدم عامل تحديث الجهاز.
استخدم أداة وميض لنظام التشغيل لتثبيت الصورة الأساسية لتحديث الجهاز على بطاقة SD التي تستخدمها في جهاز Raspberry Pi. تستخدم bmaptool الإرشادات التالية للوميض إلى بطاقة SD.
<device> استبدل العنصر النائب باسم جهازك والعن <path to image> العنصر النائب بالمسار إلى ملف الصورة الذي تم تنزيله.
bmap-toolsقم بتثبيت الأداة المساعدة إذا لم يكن لديك.sudo apt-get install bmap-toolsحدد موقع مسار بطاقة SD في /dev. يجب أن يبدو المسار مثل /dev/sd* أو /dev/mmcblk*. يمكنك استخدام
dmesgالأداة المساعدة للمساعدة في تحديد موقع المسار الصحيح.قم بإلغاء تحميل جميع الأقسام المثبتة قبل الوميض.
sudo umount /dev/<device>تأكد من أن لديك أذونات الكتابة إلى الجهاز.
sudo chmod a+rw /dev/<device>فلاش بطاقة SD.
sudo bmaptool copy <path to image> /dev/<device>تلميح
لوميض أسرع، يمكنك تنزيل ملف bimap وملف الصورة ووضعهما في نفس الدليل.
تكوين عامل Device Update على Raspberry Pi
تأكد من اتصال Raspberry Pi بالشبكة.
تأمين shell (SSH) في Raspberry Pi باستخدام الأمر التالي في نافذة PowerShell:
ssh raspberrypi3 -l root
إنشاء ملفات تكوين تحديث الجهاز
يجب أن يكون du-config.json تحديث الجهاز وملفات تكوين du-diagnostics-config.json على الجهاز. لإنشاء الملفات، قم بتشغيل الأوامر التالية في المحطة الطرفية التي سجلت الدخول إلى Raspberry Pi.
لإنشاء ملف du-config.json أو فتحه للتحرير، قم بتشغيل الأمر التالي:
nano /adu/du-config.jsonيفتح المحرر ملف du-config.json . إذا كنت تقوم بإنشاء الملف، فهو فارغ. انسخ التعليمات البرمجية التالية والصقها في الملف، واستبدل قيم المثال بأي تكوينات مطلوبة لجهازك. استبدل سلسلة المثال
connectionDataبالجهاز سلسلة الاتصال نسخته في خطوة تسجيل الجهاز.{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "virtual-vacuum-v2", "agents": [ { "name": "main", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": "HostName=<hub_name>.azure-devices.net;DeviceId=<device_id>;SharedAccessKey=<device_key>" }, "manufacturer": "contoso", "model": "virtual-vacuum-v2" } ] }اضغط على Ctrl+X للخروج من المحرر، وأدخل y لحفظ التغييرات.
إنشاء ملف du-diagnostics-config.json باستخدام أوامر مماثلة. إنشاء الملف وفتحه:
nano /adu/du-diagnostics-config.jsonانسخ والصق التعليمات البرمجية du-diagnostics-config.json التالية في الملف. القيم هي مواقع سجل تحديث الجهاز الافتراضية، وتحتاج إلى تغييرها فقط إذا كان التكوين الخاص بك يختلف عن الإعداد الافتراضي.
{ "logComponents":[ { "componentName":"adu", "logPath":"/adu/logs/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }اضغط على Ctrl+X للخروج من المحرر، وأدخل y لحفظ التغييرات.
استخدم الأمر التالي لإظهار الملفات الموجودة في الدليل /adu/ . يجب أن تشاهد كلا ملفي التكوين.
ls -la /adu/استخدم الأمر التالي لإعادة تشغيل البرنامج الخفي لنظام تحديث الجهاز والتأكد من تطبيق التكوينات.
systemctl start deviceupdate-agentتحقق من أن العامل مباشر عن طريق تشغيل الأمر التالي:
systemctl status deviceupdate-agentيجب أن تظهر الحالة على أنها حية وأخضر.
الاتصال بالجهاز في IoT Hub وإضافة علامة مجموعة
في صفحة مركز IoT لمدخل Microsoft Azure لمثيل Device Update، حدد Device management>Devices من التنقل الأيسر.
في صفحة الأجهزة ، حدد اسم جهازك.
في أعلى صفحة الجهاز، حدد Device twin.
في صفحة Device twin ، ضمن
"reported"قسم من قسم device twin"properties"، ابحث عن إصدار Linux kernel لجهازك.بالنسبة لجهاز جديد لم يتلق تحديثا من Device Update، تمثل قيمة الخاصية DeviceManagement:DeviceInformation:1.swVersion إصدار البرنامج الثابت الذي يعمل على الجهاز. بعد تطبيق تحديث على الجهاز، تمثل قيمة الخاصية AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId إصدار البرنامج الثابت.
تحتوي أسماء ملفات الصور الأساسية والتحديثية على تنسيق adu-image< type-image-machine-version><<> number.<>ملحق>. لاحظ أرقام الإصدارات التي يجب استخدامها عند استيراد التحديث.
إضافة علامة مجموعة
ينظم تحديث الجهاز الأجهزة تلقائيا في مجموعات استنادا إلى العلامات المعينة وخصائص التوافق الخاصة بها. يمكن أن ينتمي كل جهاز إلى مجموعة واحدة فقط، ولكن يمكن أن تحتوي المجموعات على مجموعات فرعية متعددة لفرز فئات أجهزة مختلفة. لمزيد من المعلومات حول العلامات والمجموعات، راجع إدارة مجموعات الأجهزة.
في الجهاز المزدوج، احذف أي قيم علامة Device Update موجودة عن طريق تعيينها إلى قيمة خالية، ثم أضف علامة مجموعة Device Update الجديدة التالية. إذا كنت تستخدم هوية الوحدة النمطية مع عامل تحديث الجهاز، أضف العلامة في Module Identity Twin بدلا من الجهاز المزدوج.
"tags": { "ADUGroup": "<CustomTagValue>" },تظهر لقطة الشاشة التالية مكان إضافة العلامة في الملف.
حدد حفظ.
قم باستيراد تحديث
في صفحة مركز IoT لمدخل Microsoft Azure لمثيل تحديث الجهاز، حدد إدارة الجهاز> Updates من التنقل الأيسر.
في صفحة التحديثات ، حدد استيراد تحديث جديد.
في صفحة Import update ، حدد Select from storage container.
في صفحة Storage accounts ، حدد حساب تخزين موجودا أو أنشئ حسابا جديدا عن طريق تحديد Storage account.
في صفحة Containers ، حدد حاوية موجودة أو أنشئ حاوية جديدة عن طريق تحديد Container. يمكنك استخدام الحاوية لتنظيم ملفات التحديث للاستيراد.
تلميح
لتجنب استيراد الملفات من التحديثات السابقة عن طريق الخطأ، استخدم حاوية جديدة في كل مرة تقوم فيها باستيراد تحديث. إذا لم تستخدم حاوية جديدة، فتأكد من حذف أي ملفات من الحاوية الموجودة.
في صفحة الحاوية، حدد Upload. اسحب ملفات التحديث التالية من مجلد Tutorial_RaspberryPi3 الذي قمت بتنزيله أو استعرض للوصول إليها وحددها:
- adu-update-image-raspberrypi3-1.2.0.swu
- example-a-b-update.sh
- EDS-ADUClient.yocto-update.1.2.0.importmanifest.json
حدد تحميل. بعد تحميلها، تظهر الملفات على صفحة الحاوية.
في صفحة الحاوية، راجع الملفات المراد استيرادها وحددها، ثم حدد تحديد.
في شاشة Import update ، حدد Import update.
تبدأ عملية الاستيراد، وتتحول الشاشة إلى شاشة التحديثات . بعد نجاح الاستيراد، يظهر في علامة التبويب تحديثات . لمزيد من المعلومات حول عملية الاستيراد، راجع استيراد تحديث إلى تحديث الجهاز.
تحديد مجموعة الأجهزة
يمكنك استخدام علامة المجموعة التي قمت بتطبيقها على جهازك لنشر التحديث إلى مجموعة الأجهزة. حدد علامة التبويب Groups and Deployments في أعلى صفحة Updates لعرض قائمة المجموعات والنشرات ومخطط توافق التحديث.
يعرض مخطط توافق التحديث عدد الأجهزة في حالات التوافق المختلفة: في آخر تحديث، تتوفر تحديثات جديدة، وتحديثات قيد التقدم. لمزيد من المعلومات، راجع توافق تحديث الجهاز.
ضمن اسم المجموعة، سترى قائمة بجميع مجموعات الأجهزة للأجهزة المتصلة بمركز IoT هذا وتحديثاتها المتوفرة، مع ارتباطات لنشر التحديثات ضمن الحالة. تظهر أي أجهزة لا تفي بمتطلبات فئة الجهاز لمجموعة في مجموعة غير صالحة مقابلة. لمزيد من المعلومات حول العلامات والمجموعات، راجع إدارة مجموعات الأجهزة.
يجب أن تشاهد مجموعة الأجهزة التي تحتوي على الجهاز الذي قمت بإعداده في هذا البرنامج التعليمي، جنبا إلى جنب مع التحديثات المتوفرة للأجهزة في المجموعة. قد تحتاج إلى تحديث الصفحة. لنشر أفضل تحديث متوفر لمجموعة من طريقة العرض هذه، حدد Deploy بجوار المجموعة.
توزيع تحديث
في صفحة تفاصيل المجموعة، حدد علامة التبويب النشر الحالي، ثم حدد نشر بجوار التحديث المطلوب في قسم التحديثات المتوفرة. يتم الإشارة إلى أفضل تحديث متوفر للمجموعة باستخدام أفضل تمييز.
في صفحة Create deployment ، قم بجدولة التوزيع لبدء تشغيله على الفور أو في المستقبل، ثم حدد Create.
تلميح
يكون تاريخ ووقت البدء 24 ساعة من وقتك الحالي بشكل افتراضي. تأكد من تحديد تاريخ ووقت مختلفين إذا كنت تريد بدء النشر في وقت أقرب.
ضمن "تفاصيل التوزيع"، تتحول "الحالة" إلى "نشط". ضمن التحديثات المتوفرة، يتم وضع علامة (نشر) على التحديث المحدد.
في صفحة التحديثات ، اعرض مخطط التوافق للتأكد من أن التحديث قيد التقدم الآن. بعد تحديث جهازك بنجاح، يتم تحديث مخطط التوافق وتفاصيل النشر لتعكس هذه الحالة.
عرض محفوظات نشر التحديث
لعرض محفوظات النشر:
حدد علامة التبويب محفوظات النشر في أعلى صفحة تفاصيل المجموعة، وحدد ارتباط التفاصيل بجوار النشر الذي أنشأته.
في صفحة Deployment details ، حدد Refresh لعرض أحدث تفاصيل الحالة.
تنظيف الموارد
عندما لم تعد بحاجة إلى الموارد التي أنشأتها لهذا البرنامج التعليمي، يمكنك حذفها.
- في مدخل Microsoft Azure، انتقل إلى مجموعة الموارد التي تحتوي على الموارد.
- إذا كنت تريد حذف كافة الموارد في المجموعة، فحدد حذف مجموعة الموارد.
- إذا كنت تريد حذف بعض الموارد فقط، فاستخدم خانات الاختيار لتحديد الموارد ثم حدد حذف.