Öğretici: Raspberry Pi 3 B+ başvuru görüntüsünü kullanarak Azure IoT Hub için Cihaz Güncelleştirmesi
Azure IoT Hub için Cihaz Güncelleştirmesi görüntü tabanlı, paket tabanlı ve betik tabanlı güncelleştirmeleri destekler.
Görüntü güncelleştirmeleri, cihazın son durumunda daha yüksek bir güvenilirlik düzeyi sağlar. Bir görüntü güncelleştirmesinin sonuçlarını üretim öncesi ortamla üretim ortamı arasında çoğaltmak genellikle daha kolaydır çünkü paketler ve bağımlılıklarıyla aynı zorlukları oluşturmaz. Atomik yapısı nedeniyle, bir A/B yük devretme modelini kolayca benimseyebilirsiniz.
Bu öğretici, Raspberry Pi 3 B+ panosunda IoT Hub için Cihaz Güncelleştirmesi'ni kullanarak uçtan uca görüntü tabanlı bir güncelleştirmeyi tamamlama adımlarında size yol gösterir.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Bir resim indirin.
- IoT cihazınıza bir etiket ekleyin.
- Bir güncelleştirmeyi içeri aktarma.
- Görüntü güncelleştirmesi dağıtma.
- Güncelleştirme dağıtımını izleyin.
Not
Bu öğreticideki görüntü güncelleştirmeleri Raspberry Pi B3 panosunda doğrulanmıştır.
Önkoşullar
Henüz yapmadıysanız, bir Cihaz Güncelleştirmesi hesabı ve örneği oluşturun ve bir IoT hub'ı yapılandırın. Bu öğreticide cihazın Ethernet bağlantısı üzerinden bağlanması gerekir.
Cihaz Güncelleştirmesi GitHub yayınları sayfasındaVarlıklar'daki dosyaları indirin. Tutorial_RaspberryPi.zip, öğretici için gerekli tüm dosyalara sahiptir.
IoT Hub'de cihaz oluşturma ve bağlantı dizesi alma
Şimdi cihazı IoT Hub ekleyin. IoT Hub içinden cihaz için bir bağlantı dizesi oluşturulur.
Azure portal IoT hub'ınıza gidin.
Sol bölmede Cihazlar’ı seçin. Ardından Yeni'yi seçin.
Cihaz Kimliği'nin altında cihaz için bir ad girin. Anahtarları otomatik oluştur onay kutusunun seçili olduğundan emin olun.
Kaydet’i seçin. Cihazlar sayfasında, oluşturduğunuz cihaz listede olmalıdır.
Cihaz görünümüne giderek cihaz bağlantı dizesini alın, Birincil Bağlantı Dizesi'nin yanındaki Kopyala simgesini seçin.
Kopyalanan karakterleri aşağıdaki adımlarda daha sonra kullanmak üzere bir yere yapıştırın:
Bu kopyalanan dize, cihaz bağlantı dizenizdir.
Not
Bu öğreticide, kurulum kolaylığı için kimlik doğrulaması yapmak ve IoT Hub bağlanmak için bir cihaz bağlantı dizesi kullanılır. Üretim senaryoları için modül kimliğini kullanmanızı ve cihazları sağlamak için AIS'yi (IoT Kimlik Hizmeti) kullanmanızı öneririz. Daha fazla bilgi edinin
Raspberry Pi'yı ayarlama
Temel görüntü ve güncelleştirme dosyalarını Cihaz Güncelleştirmesi GitHub yayınları sayfasındaVarlıklar'da sağlıyoruz. Tutorial_RaspberryPi.zip, öğretici için gerekli tüm dosyalara sahiptir. .wic dosyası, Raspberry Pi 3 B+ panosuna yanıp sönebileceğiniz temel görüntüdür. swUpdate(.swu) dosyası, özel swupdate betiği ve bildirimi, IoT Hub için Cihaz Güncelleştirmesi aracılığıyla içeri aktaracağınız güncelleştirme dosyalarıdır.
Bu temel görüntüde şu şekilde bir Yocto derlemesi (3.4.4 sürümünü temel alır) kullanılır:
- DU ile ikili bölüm güncelleştirmesini etkinleştiren SWUpdate
- Cihaz Güncelleştirme aracısı
Kullanılan Yocto katmanları hakkında daha fazla bilgi edinmek için bkz. Cihaz Güncelleştirmesi Yocto GitHub..
Raspberry Pi 3 B+ cihazında kullanılacak SD karta Cihaz Güncelleştirmesi temel görüntüsünü (adu-base-image) yüklemek için sık kullandığınız işletim sistemi yanıp sönen aracı kullanabilirsiniz. SD karta yanıp sönmek için bmaptool kullanma yönergeleri aşağıdadır.
SD kartı yanıp sönmek için bmaptool kullanma
bmaptool
Henüz yapmadıysanız yardımcı programını yükleyin.sudo apt-get install bmap-tools
içindeki
/dev
SD kartın yolunu bulun. Yol veya/dev/mmcblk*
gibi/dev/sd*
görünmelidir. Doğru yolu bulmanıza yardımcı olması için yardımcı programını kullanabilirsinizdmesg
.Yanıp sönmeden önce tüm bağlı bölümleri çıkarın.
sudo umount /dev/<device>
Cihazda yazma izinlerinizin olduğundan emin olun.
sudo chmod a+rw /dev/<device>
İsteğe bağlı: Daha hızlı yanıp sönerken bimap dosyasını ve görüntü dosyasını indirin ve bunları aynı dizine yerleştirin.
SD kartı yanıp söner.
sudo bmaptool copy <path to image> /dev/<device>
Azure IoT Hub yazılımı için Cihaz Güncelleştirmesi aşağıdaki lisans koşullarına tabidir:
Aracıyı kullanmadan önce lisans koşullarını okuyun. Yüklemeniz ve kullanımınız, bu koşulları kabul ettiğiniz anlamına gelir. Lisans koşullarını kabul etmiyorsanız IoT Hub aracısı için Cihaz Güncelleştirmesi'ni kullanmayın.
Raspberry Pi'de Cihaz Güncelleştirme aracısını yapılandırma
Raspberry Pi 3'in ağa bağlı olduğundan emin olun.
PowerShell penceresinde aşağıdaki komutu kullanarak Raspberry Pi 3'e SSH ekleyin:
ssh raspberrypi3 -l root
IoT Hub için Cihaz Güncelleştirmesi'nin düzgün yapılandırılması için DU yapılandırma dosyalarının (du-config.json ve du-diagnostics-config.json) cihazda olması gerekir.
- Kullanarak dosyayı oluşturmak veya düzenlemek üzere açmak
du-config.json
için:
nano /adu/du-config.json
Komutu çalıştırdıktan sonra dosyasını içeren açık bir düzenleyici görmeniz gerekir. Dosyayı hiç oluşturmadıysanız boş olur. Şimdi aşağıdaki du-config.json içeriğini kopyalayın ve cihazınız için gereken yapılandırmaları değiştirin. Ardından örnek bağlantı dizesini önceki adımlarda oluşturduğunuz cihazla değiştirin.
du-config.json
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "virtual-vacuum-v2", "agents": [ { "name": "main", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU=" }, "manufacturer": "contoso", "model": "virtual-vacuum-v2" } ] }
- Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin
Ctrl+X
. Ardından, değişiklikleri kaydetmek için giriny
.
- Kullanarak dosyayı oluşturmak veya düzenlemek üzere açmak
Şimdi benzer komutları kullanarak dosyayı oluşturmanız
du-diagnostics-config.json
gerekir.- Aşağıdakileri kullanarak dosyayı oluşturarak veya düzenlemek üzere açarak
du-diagnostics-config.json
başlayın:
nano /adu/du-diagnostics-config.json
- Aşağıda sağlanan du-diagnostics-config.json içeriğini kopyalayın ve varsayılan derlemeden farklı yapılandırmaları değiştirin. Örnek du-diagnostics-config.json dosyası, IoT Hub için Cihaz Güncelleştirmesi için varsayılan günlük konumlarını temsil eder. Bu varsayılan değerleri yalnızca uygulamanız farklıysa değiştirmeniz gerekir.
du-diagnostics-config.json
{ "logComponents":[ { "componentName":"adu", "logPath":"/adu/logs/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
- Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin
Ctrl+X
. Ardından, değişiklikleri kaydetmek için giriny
.
- Aşağıdakileri kullanarak dosyayı oluşturarak veya düzenlemek üzere açarak
Dizininde
/adu/
bulunan dosyaları göstermek için aşağıdaki komutu kullanın. Şunları kullanarak düzenleme için yapılandırma dosyalarınızın.du-diagnostics-config.json dosyalarının ikisini de görmeniz gerekir:ls -la /adu/
Yapılandırmaların uygulandığından emin olmak için Cihaz Güncelleştirmesi sistem daemon'unu yeniden başlatın. terminalinde oturum açmış
raspberrypi
olan aşağıdaki komutu kullanın:systemctl start deviceupdate-agent
Aşağıdaki komutu kullanarak aracının canlı olup olmadığını denetleyin:
systemctl status deviceupdate-agent
Durumun canlı ve yeşil olarak göründüğünü görmeniz gerekir.
cihazı IoT Hub için Cihaz Güncelleştirmesi'ne bağlama
Sol bölmede Cihazlar’ı seçin.
Cihaz adınızı içeren bağlantıyı seçin.
Sayfanın üst kısmında Cihaz İkizi'ni seçin.
Cihaz İkizi özelliklerinin bildirilen bölümünde Linux çekirdek sürümünü arayın.
Cihaz Güncelleştirmesi'nden güncelleştirme almamış olan yeni bir cihaz için DeviceManagement:DeviceInformation:1.swVersion değeri, cihazda çalışan üretici yazılımı sürümünü temsil eder. Bir cihaza güncelleştirme uygulandıktan sonra, Cihaz Güncelleştirmesi cihazda çalışan üretici yazılımı sürümünü temsil etmek için AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId özellik değerini kullanır.
Temel ve güncelleştirme görüntü dosyalarının dosya adında bir sürüm numarası vardır.
adu-<image type>-image-<machine>-<version number>.<extension>
Sonraki "Güncelleştirmeyi içeri aktarma" bölümünde bu sürüm numarasını kullanın.
Cihazınıza Cihaz Güncelleştirmesi grup etiketi ekleme
Azure portalında IoT Hub'ınıza gidin.
Sol bölmedeki Cihazlar'ın altında IoT cihazınızı bulun ve cihaz ikizi veya modül ikizi'ne gidin.
Cihaz Güncelleştirme aracısı modülünün modül ikizinde, mevcut Cihaz Güncelleştirmesi etiket değerlerini null olarak ayarlayarak silin. Cihaz kimliğini Cihaz Güncelleştirmesi aracısıyla kullanıyorsanız bu değişiklikleri cihaz ikizinde yapın.
Gösterildiği gibi yeni bir Cihaz Güncelleştirmesi etiket değeri ekleyin:
"tags": { "ADUGroup": "<CustomTagValue>" }
Bu ekran görüntüsü, etiketin ikize eklenmesi gereken bölümü gösterir.
Güncelleştirmeyi içeri aktarma
En son aracı için Yayın Varlıkları altındaki Tutorial_RaspberryPi.zip'den örnek öğretici bildirimini ve örnek güncelleştirmeyi (.swu dosyası) ve örnek A/B betiğini indirin.
Azure portal oturum açın ve Cihaz Güncelleştirmesi ile IoT hub'ınıza gidin. Sol bölmedeki Otomatik Cihaz Yönetimi altında Güncelleştirmeler'ı seçin.
Güncelleştirmeler sekmesini seçin.
+ Yeni Güncelleştirmeyi İçeri Aktar'ı seçin.
+ Depolama kapsayıcısından seç'i seçin. Var olan bir hesabı seçin veya + Depolama hesabı kullanarak yeni bir hesap oluşturun. Ardından var olan bir kapsayıcıyı seçin veya + Kapsayıcı kullanarak yeni bir kapsayıcı oluşturun. Bu kapsayıcı, güncelleştirme dosyalarınızı içeri aktarma için hazırlamak için kullanılır.
Not
Önceki güncelleştirmelerden yanlışlıkla dosya içeri aktarmayı önlemek için bir güncelleştirmeyi her içeri aktardığınızda yeni bir kapsayıcı kullanmanızı öneririz. Yeni bir kapsayıcı kullanmıyorsanız, bu adımı tamamlamadan önce var olan kapsayıcıdaki dosyaları sildiğinizden emin olun.
Kapsayıcınızda Karşıya Yükle'yi seçin ve 1. adımda indirdiğiniz dosyalara gidin. Tüm güncelleştirme dosyalarınızı seçtikten sonra Karşıya Yükle'yi seçin. Ardından Seç düğmesini seçerek güncelleştirmeyi içeri aktar sayfasına dönün.
Bu ekran görüntüsünde içeri aktarma adımı gösterilmektedir. Dosya adları örnekte kullanılan adlarla eşleşmeyebilir.
Güncelleştirmeyi içeri aktar sayfasında, içeri aktarılacak dosyaları gözden geçirin. Ardından içeri aktarma işlemini başlatmak için Güncelleştirmeyi içeri aktar'ı seçin. Öğretici için, örnek öğretici bildirimini ve örnek güncelleştirmeyi (.swu dosyası) ve daha önce indirilen örnek A/B betiğini içeri aktarın.
İçeri aktarma işlemi başlar ve ekran İçeri aktarma geçmişi bölümüne geçer. Durum sütunu içeri aktarma işleminin başarılı olduğunu gösterdiğinde Kullanılabilir güncelleştirmeler üst bilgisini seçin. İçeri aktarılan güncelleştirmenizi şimdi listede görmeniz gerekir.
İçeri aktarma işlemi hakkında daha fazla bilgi için bkz. Cihaz Güncelleştirmesi'ne güncelleştirme aktarma.
Cihaz gruplarını görüntüleme
Cihaz Güncelleştirmesi, cihazları düzenlemek için grupları kullanır. Cihaz Güncelleştirmesi, cihazları atanan etiketlerine ve uyumluluk özelliklerine göre otomatik olarak gruplar halinde sıralar. Her cihaz yalnızca bir gruba aittir, ancak grupların farklı cihaz sınıflarını sıralamak için birden çok alt grubu olabilir.
Sayfanın üst kısmındaki Gruplar ve Dağıtımlar sekmesine gidin.
Grup listesini ve güncelleştirme uyumluluk grafiğini görüntüleyin. Güncelleştirme uyumluluk grafiği, çeşitli uyumluluk durumlarındaki cihazların sayısını gösterir: En son güncelleştirmede, Yeni güncelleştirmeler kullanılabilir ve devam eden Güncelleştirmeler. Güncelleştirme uyumluluğu hakkında bilgi edinin.
Bu öğreticide ayarladığınız simülasyon cihazını ve yeni gruptaki cihazlar için kullanılabilir güncelleştirmeleri içeren bir cihaz grubu görmeniz gerekir. Grubun cihaz sınıfı gereksinimlerini karşılamayen cihazlar varsa, bunlar ilgili geçersiz grupta gösterilir. Bu görünümden yeni kullanıcı tanımlı gruba kullanılabilir en iyi güncelleştirmeyi dağıtmak için grubun yanındaki Dağıt'ı seçin.
Etiketler ve gruplar hakkında daha fazla bilgi için bkz. Cihaz gruplarını yönetme.
Güncelleştirmeyi dağıtma
Grup oluşturulduktan sonra, cihaz grubunuz için En iyi güncelleştirme'nin altında güncelleştirmenin bağlantısını içeren yeni bir güncelleştirme görmeniz gerekir. Bir kez yenilemeniz gerekebilir.
Uyumluluk hakkında daha fazla bilgi için bkz . Cihaz Güncelleştirmesi uyumluluğu.
Grup adını seçerek hedef grubu seçin. Grup temel bilgileri altındaki grup ayrıntılarına yönlendirilirsiniz.
Dağıtımı başlatmak için Geçerli dağıtım sekmesine gidin. Kullanılabilir güncelleştirmeler bölümünden istediğiniz güncelleştirmenin yanındaki dağıtım bağlantısını seçin. Belirli bir grup için en iyi kullanılabilir güncelleştirme , En iyi vurgulama ile belirtilir.
Dağıtımınızı hemen veya gelecekte başlayacak şekilde zamanlayın. Ardından Oluştur’u seçin.
İpucu
Varsayılan olarak, Başlangıç tarihi ve saati geçerli saatinizden 24 saattir. Dağıtımın daha önce başlamasını istiyorsanız farklı bir tarih ve saat seçtiğinizden emin olun.
Dağıtım ayrıntıları'nın altında DurumEtkin'e dönüşür. Dağıtılan güncelleştirme (dağıtılıyor) ile işaretlenir.
Güncelleştirmenin devam ettiğini görmek için uyumluluk grafiğini görüntüleyin.
Cihazınız başarıyla güncelleştirildikten sonra uyumluluk grafiğinizin ve dağıtım ayrıntılarınızın aynı şekilde güncelleştirildiğini görürsünüz.
Güncelleştirme dağıtımını izleme
Sayfanın üst kısmındaki Dağıtım geçmişi sekmesini seçin.
Oluşturduğunuz dağıtımın yanındaki ayrıntılar bağlantısını seçin.
En son durum ayrıntılarını görüntülemek için Yenile'yi seçin.
Raspberry Pi 3 B+ cihazında IoT Hub için Cihaz Güncelleştirmesi'ni kullanarak başarılı bir uçtan uca görüntü güncelleştirmesini tamamladınız.
Kaynakları temizleme
Artık gerekli olmadığında Cihaz Güncelleştirmesi hesabınızı, örneğinizi, IoT hub'ınızı ve IoT cihazınızı temizleyin.