Öğ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.

  1. Azure portal IoT hub'ınıza gidin.

  2. Sol bölmede Cihazlar’ı seçin. Ardından Yeni'yi seçin.

  3. Cihaz Kimliği'nin altında cihaz için bir ad girin. Anahtarları otomatik oluştur onay kutusunun seçili olduğundan emin olun.

  4. Kaydet’i seçin. Cihazlar sayfasında, oluşturduğunuz cihaz listede olmalıdır.

  5. Cihaz görünümüne giderek cihaz bağlantı dizesini alın, Birincil Bağlantı Dizesi'nin yanındaki Kopyala simgesini seçin.

  6. 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

  1. bmaptool Henüz yapmadıysanız yardımcı programını yükleyin.

    sudo apt-get install bmap-tools
    
  2. içindeki /devSD 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ı kullanabilirsiniz dmesg .

  3. Yanıp sönmeden önce tüm bağlı bölümleri çıkarın.

    sudo umount /dev/<device>
    
  4. Cihazda yazma izinlerinizin olduğundan emin olun.

    sudo chmod a+rw /dev/<device>
    
  5. İ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.

  6. 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

  1. Raspberry Pi 3'in ağa bağlı olduğundan emin olun.

  2. PowerShell penceresinde aşağıdaki komutu kullanarak Raspberry Pi 3'e SSH ekleyin:

      ssh raspberrypi3 -l root
    
  3. 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.

    1. Kullanarak dosyayı oluşturmak veya düzenlemek üzere açmak du-config.json için:
      nano /adu/du-config.json
    
    1. 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"
          }
       ]
    }  
    
    1. Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin Ctrl+X . Ardından, değişiklikleri kaydetmek için girin y .
  4. Şimdi benzer komutları kullanarak dosyayı oluşturmanız du-diagnostics-config.json gerekir.

    1. 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
    
    1. 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
    }
    
    1. Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin Ctrl+X . Ardından, değişiklikleri kaydetmek için girin y .
  5. 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/
    
  6. 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ış raspberrypiolan aşağıdaki komutu kullanın:

      systemctl start deviceupdate-agent
    
  7. 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

  1. Sol bölmede Cihazlar’ı seçin.

  2. Cihaz adınızı içeren bağlantıyı seçin.

  3. Sayfanın üst kısmında Cihaz İkizi'ni seçin.

  4. 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.

  5. 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

  1. Azure portalında IoT Hub'ınıza gidin.

  2. Sol bölmedeki Cihazlar'ın altında IoT cihazınızı bulun ve cihaz ikizi veya modül ikizi'ne gidin.

  3. 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.

  4. Gösterildiği gibi yeni bir Cihaz Güncelleştirmesi etiket değeri ekleyin:

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

    Etiket bilgilerini içeren ikizi gösteren ekran görüntüsü.

    Bu ekran görüntüsü, etiketin ikize eklenmesi gereken bölümü gösterir.

Güncelleştirmeyi içeri aktarma

  1. 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.

  2. 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.

  3. Güncelleştirmeler sekmesini seçin.

  4. + Yeni Güncelleştirmeyi İçeri Aktar'ı seçin.

  5. + 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.

    Depolama hesaplarını ve Kapsayıcıları gösteren ekran görüntüsü.

  6. 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.

    Karşıya yüklenen dosyaların seçilmesini gösteren ekran görüntüsü.

    Bu ekran görüntüsünde içeri aktarma adımı gösterilmektedir. Dosya adları örnekte kullanılan adlarla eşleşmeyebilir.

  7. 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.

    Güncelleştirmeyi içeri aktar'ı gösteren ekran görüntüsü.

  8. İç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.

    İş durumunu gösteren ekran görüntüsü.

İç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.

  1. Sayfanın üst kısmındaki Gruplar ve Dağıtımlar sekmesine gidin.

    Gruplanmamış cihazları gösteren ekran görüntüsü.

  2. 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.

    Güncelleştirme uyumluluğu görünümünü gösteren ekran görüntüsü.

  3. 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

  1. 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.

  2. Grup adını seçerek hedef grubu seçin. Grup temel bilgileri altındaki grup ayrıntılarına yönlendirilirsiniz.

    Grup ayrıntılarını gösteren ekran görüntüsü.

  3. 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.

    Güncelleştirme seçmeyi gösteren ekran görüntüsü.

  4. 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 oluşturmayı gösteren ekran görüntüsü.

  5. 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.

    Dağıtımı Etkin olarak gösteren ekran görüntüsü.

  6. Güncelleştirmenin devam ettiğini görmek için uyumluluk grafiğini görüntüleyin.

  7. 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ştirmenin başarılı olduğunu gösteren ekran görüntüsü.

Güncelleştirme dağıtımını izleme

  1. Sayfanın üst kısmındaki Dağıtım geçmişi sekmesini seçin.

    Dağıtım geçmişini gösteren ekran görüntüsü.

  2. Oluşturduğunuz dağıtımın yanındaki ayrıntılar bağlantısını seçin.

    Dağıtım ayrıntılarını gösteren ekran görüntüsü.

  3. 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.

Sonraki adımlar