Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure IoT Hub için Cihaz Güncelleştirmesi görüntü tabanlı, paket tabanlı ve betik tabanlı güncelleştirmeleri destekler. Bu öğreticide Raspberry Pi 3 B+ panosunda Yocto görüntüsü kullanılarak IoT Hub için uçtan uca görüntü tabanlı Cihaz Güncelleştirmesi gösterilmektedir.
Görüntü güncelleştirmeleri, cihazın son durumunda yüksek düzeyde güven sağlar ve paket veya betik tabanlı güncelleştirmelerle aynı paket ve bağımlılık yönetimi zorluklarını ortaya çıkarmıyor. Görüntü güncelleştirmesinin sonuçlarını üretim öncesi ve üretim ortamı arasında çoğaltmak veya A/B yük devretme modelini kolayca benimsemek daha kolaydır.
Bu öğreticide şunları yaptınız:
- Görüntü güncelleştirmesini indirin ve yükleyin.
- IoT cihazınıza bir etiket atayın.
- Görüntü güncelleştirmesini içeri aktarın.
- Görüntü güncelleştirmesini dağıtın.
- Güncelleştirme dağıtım geçmişini görüntüleyin.
Önkoşullar
IoT hub'ı ile yapılandırılmış bir Cihaz Güncelleştirme hesabı ve örneği.
Görüntü dosyalarını indirip ayıklayıp cihazı denetleyebilen donanıma Ethernet aracılığıyla bağlanan Raspberry Pi 3 IoT kartı.
Not
Bu öğreticideki görüntü güncelleştirmeleri Raspberry Pi B3 panosunda doğrulandı.
Cihazı kaydetme ve bağlantı dizesi alma
Cihazınızı IoT hub'ınızdaki cihaz kayıt defterine ekleyin ve IoT Hub'ın cihaz için oluşturduğu bağlantı dizesi alın.
- Azure portalında, Cihaz Güncelleştirmesi örneğiniz ile ilişkili IoT hub sayfasını açın.
- Sol gezinti bölmesinde Cihaz yönetimi>Cihazları'nı seçin.
- Cihazlar sayfasında Cihaz Ekle'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. Cihaz, Cihazlar sayfasındaki listede görünür.
- Cihazlar sayfasında, kaydettiğiniz cihazı seçin.
- Cihaz sayfasında Bağlantı dizesi (birincil anahtar) öğesinin yanındaki Kopyala simgesini seçin. Cihaz Güncelleştirme aracısını yapılandırırken kullanmak üzere bu cihazı bağlantı dizesi kaydedin.
Not
Tanıtım amacıyla bu öğreticide kimlik doğrulaması yapmak ve IoT hub'ına bağlanmak için bir cihaz bağlantı dizesi kullanılır. Üretim senaryolarında cihaz sağlamak için modül kimliğini ve IoT Kimlik Hizmeti'ni kullanmak daha iyidir. Daha fazla bilgi için bkz . Cihaz Güncelleştirmesi aracısı sağlama.
Raspberry Pi'i ayarlama
Tutorial_RaspberryPi3.zip dosyasında öğretici için gerekli tüm dosyalar bulunur. GitHub Cihaz Güncelleştirme Sürümleri sayfasındaki en son sürümün Varlıklar bölümünden dosyayı indirin ve sıkıştırmasını açın.
Ayıklanan Tutorial_RaspberryPi3 klasöründe Raspberry Pi panosuna yanıp sönebileceğiniz temel görüntü adu-base-image-raspberrypi3.wic şeklindedir. Temel görüntü, 3.4.4 sürümünü temel alan bir Yocto derlemesi kullanır. Görüntüde, Cihaz Güncelleştirmesi çift bölüm güncelleştirmesini etkinleştiren Cihaz Güncelleştirmesi aracısı ve SWUpdate bulunur. Yocto katmanları hakkında daha fazla bilgi için bkz . Yocto Projesini kullanarak Cihaz Güncelleştirmesi aracısı ile özel linux tabanlı sistem oluşturma.
Cihaz Güncelleştirmesi aracılığıyla içeri aktardığınız güncelleştirme dosyaları şunlardır:
- SWUpdate dosyası adu-update-image-raspberrypi3-1.2.0.swu
- Özel SWUpdate betiği example-a-b-update.sh
- Bildirim EDS-ADUClient.yocto-update.1.2.0.importmanifest.json
SD kartı yanıp sönmek için bmaptool kullanma
Önemli
IoT Hub için Azure Cihaz Güncelleştirmesi yazılımı aşağıdaki lisans koşullarına tabidir:
Aracıyı kullanmadan önce lisans koşullarını okuyun. Aracı yükleme ve kullanımı bu koşulların kabulünü oluşturur. Lisans koşullarını kabul etmiyorsanız Cihaz Güncelleştirmesi aracısını kullanmayın.
Raspberry Pi cihazında kullandığınız SD karta Cihaz Güncelleştirmesi temel görüntüsünü yüklemek için bir işletim sistemi yanıp sönme aracı kullanın. SD karta yanıp sönmek için aşağıdaki yönergeler kullanılır bmaptool
. Yer tutucuyu <device>
cihazınızın adıyla, yer tutucuyu <path to image>
ise indirilen görüntü dosyasının yoluyla değiştirin.
bmap-tools
Yardımcı programınız yoksa yükleyin.sudo apt-get install bmap-tools
/dev dosyasında SD kart yolunu bulun. Yol /dev/sd* veya /dev/mmcblk* gibi görünmelidir. Yardımcı programını kullanarak
dmesg
doğru yolu bulabilirsiniz.Yanıp sönmeden önce bağlı tüm bölümleri çıkarın.
sudo umount /dev/<device>
Cihazda yazma izinlerinizin olduğundan emin olun.
sudo chmod a+rw /dev/<device>
SD kartı yanıp söner.
sudo bmaptool copy <path to image> /dev/<device>
İpucu
Daha hızlı yanıp sönerken bimap dosyasını ve görüntü dosyasını indirip aynı dizine yerleştirebilirsiniz.
Raspberry Pi'de Cihaz Güncelleştirme aracısını yapılandırma
Raspberry Pi'nin ağa bağlı olduğundan emin olun.
PowerShell penceresinde aşağıdaki komutu kullanarak Raspberry Pi'ye güvenli kabuk (SSH) ekleyin:
ssh raspberrypi3 -l root
Cihaz Güncelleştirmesi yapılandırma dosyalarını oluşturma
Cihaz Güncelleştirme du-config.json ve du-diagnostics-config.json yapılandırma dosyaları cihazda olmalıdır. Dosyaları oluşturmak için Raspberry Pi'de oturum açmış terminalde aşağıdaki komutları çalıştırın.
du-config.json dosyasını oluşturmak veya düzenlemek üzere açmak için aşağıdaki komutu çalıştırın:
nano /adu/du-config.json
Düzenleyici du-config.json dosyasını açar. Dosyayı oluşturuyorsanız, dosya boş olur. Aşağıdaki kodu kopyalayıp dosyaya yapıştırın ve örnek değerleri cihazınız için gerekli yapılandırmalarla değiştirin. Örnek
connectionData
dizeyi, cihaz kayıt adımında kopyaladığınız cihaz bağlantı dizesi ile değiştirin.{ "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" } ] }
Düzenleyiciden çıkmak için Ctrl+X tuşuna basın ve değişikliklerinizi kaydetmek için y girin.
Benzer komutları kullanarak du-diagnostics-config.json dosyasını oluşturun. Dosyayı oluşturun ve açın:
nano /adu/du-diagnostics-config.json
Aşağıdaki du-diagnostics-config.json kodunu kopyalayıp dosyaya yapıştırın. Değerler varsayılan Cihaz Güncelleştirmesi günlük konumlarıdır ve bunları yalnızca yapılandırmanız varsayılandan farklıysa değiştirmeniz gerekir.
{ "logComponents":[ { "componentName":"adu", "logPath":"/adu/logs/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
Düzenleyiciden çıkmak için Ctrl+X tuşuna basın ve değişikliklerinizi kaydetmek için y girin.
/adu/ dizininde bulunan dosyaları göstermek için aşağıdaki komutu kullanın. Her iki yapılandırma dosyasını da görmeniz gerekir.
ls -la /adu/
Cihaz Güncelleştirme sistem daemon'ını yeniden başlatmak ve yapılandırmaların uygulandığından emin olmak için aşağıdaki komutu kullanın.
systemctl start deviceupdate-agent
Aşağıdaki komutu çalıştırarak aracının canlı olup olmadığını denetleyin:
systemctl status deviceupdate-agent
Durum canlı ve yeşil olarak görünmelidir.
IoT Hub'da cihaza bağlanma ve grup etiketi ekleme
Cihaz Güncelleştirmesi örneğinizin Azure portalı IoT hub sayfasında sol gezinti bölmesinden Cihaz yönetimi>Cihazları'nı seçin.
Cihazlar sayfasında cihazınızın adını seçin.
Cihaz sayfasının üst kısmında Cihaz ikizi'ni seçin.
Cihaz ikizi sayfasında, cihaz ikizi
"properties"
bölümünün altında"reported"
cihazınız için Linux çekirdek sürümünü arayın.Cihaz Güncelleştirmesi'nden güncelleştirme almamış yeni bir cihaz için DeviceManagement :DeviceInformation:1.swVersion özellik değeri, cihazda çalışan üretici yazılımı sürümünü temsil eder. Cihazda bir güncelleştirme uygulandıktan sonra AzureDeviceUpdateCore :ClientMetadata:4.installedUpdateId özellik değeri üretici yazılımı sürümünü temsil eder.
Temel ve güncelleştirme görüntüsü dosya adları adu-image type-image-machine-version><<<> numarası> biçimindedir.<uzantısını seçin>. Güncelleştirmeyi içeri aktarırken kullanılacak sürüm numaralarını not edin.
Grup etiketi ekleme
Cihaz Güncelleştirmesi, cihazları atanan etiketlerine ve uyumluluk özelliklerine göre otomatik olarak gruplar halinde düzenler. Her cihaz yalnızca bir gruba ait olabilir, ancak grupların farklı cihaz sınıflarını sıralamak için birden çok alt grubu olabilir. Etiketler ve gruplar hakkında daha fazla bilgi için bkz . Cihaz gruplarını yönetme.
Cihaz ikizi içinde, mevcut Cihaz Güncelleştirmesi etiket değerlerini null olarak ayarlayarak silin ve ardından aşağıdaki yeni Cihaz Güncelleştirmesi grup etiketini ekleyin. Cihaz Güncelleştirme aracısı ile Modül Kimliği kullanıyorsanız, cihaz ikizi yerine Modül Kimliği İkizi'ne etiketini ekleyin.
"tags": { "ADUGroup": "<CustomTagValue>" },
Aşağıdaki ekran görüntüsünde dosyanın neresinde etiketin ekleneceği gösterilmektedir.
Kaydet'i seçin.
Güncelleştirmeyi içeri aktarma
Cihaz Güncelleştirmesi örneğinizin Azure portalı IoT hub sayfasında sol gezinti bölmesinden Cihaz Yönetimi> Güncelleştirmeler'i seçin.
Güncelleştirmeler sayfasında Yeni güncelleştirmeyi içeri aktar'ı seçin.
Güncelleştirmeyi içeri aktar sayfasında Depolama kapsayıcısından seç'i seçin.
Depolama hesapları sayfasında mevcut bir depolama hesabını seçin veya Depolama hesabı'nı seçerek yeni bir hesap oluşturun.
Kapsayıcılar sayfasında mevcut bir kapsayıcıyı seçin veya Kapsayıcı'yı seçerek yeni bir kapsayıcı oluşturun. İçeri aktarma için güncelleştirme dosyalarını hazırlamak için kapsayıcıyı kullanırsınız.
İpucu
Önceki güncelleştirmelerden dosyaları yanlışlıkla içeri aktarmaktan kaçınmak için, her güncelleştirme içeri aktarışınızda yeni bir kapsayıcı kullanın. Yeni bir kapsayıcı kullanmıyorsanız, var olan kapsayıcıdaki dosyaları sildiğinizden emin olun.
Kapsayıcı sayfasında Karşıya Yükle'yi seçin. İndirdiğiniz Tutorial_RaspberryPi3 klasöründen aşağıdaki güncelleştirme dosyalarını sürükleyip bırakın veya gidip seçin:
- adu-update-image-raspberrypi3-1.2.0.swu
- example-a-b-update.sh
- EDS-ADUClient.yocto-update.1.2.0.importmanifest.json
Yükle'yi seçin. Dosyalar karşıya yüklendikten sonra kapsayıcı sayfasında görünür.
Kapsayıcı sayfasında, içeri aktaracak dosyaları gözden geçirip seçin ve ardından Seç'i seçin.
Güncelleştirmeyi içeri aktar ekranında Güncelleştirmeyi içeri aktar'ı seçin.
İçeri aktarma işlemi başlar ve ekran Güncelleştirmeler ekranına geçer. İçeri aktarma işlemi başarılı olduktan sonra Güncelleştirmeler sekmesinde görünür. İçeri aktarma işlemi hakkında daha fazla bilgi için bkz. Cihaz Güncelleştirmesi'ne güncelleştirme aktarma.
Cihaz grubunu seçin
Güncelleştirmeyi cihaz grubuna dağıtmak için cihazınıza uyguladığınız grup etiketini kullanabilirsiniz. Grupların ve dağıtımların listesini ve güncelleştirme uyumluluk grafiğini görüntülemek için Güncelleştirmeler sayfasının üst kısmındaki Gruplar ve Dağıtımlar sekmesini seçin.
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. Daha fazla bilgi için bkz . Cihaz Güncelleştirmesi uyumluluğu.
Grup adı altında, bu IoT hub'ına bağlı cihazlar için tüm cihaz gruplarının ve bunların kullanılabilir güncelleştirmelerinin listesini ve Durum'un altında güncelleştirmeleri dağıtma bağlantılarını görürsünüz. Bir grubun cihaz sınıfı gereksinimlerini karşılamayen tüm cihazlar, karşılık gelen geçersiz bir grupta görünür. Etiketler ve gruplar hakkında daha fazla bilgi için bkz . Cihaz gruplarını yönetme.
Bu öğreticide ayarladığınız cihazı içeren cihaz grubunu ve gruptaki cihazlar için kullanılabilir güncelleştirmeleri görmeniz gerekir. Sayfayı yenilemeniz gerekebilir. Bu görünümden bir gruba en iyi kullanılabilir güncelleştirmeyi dağıtmak için grubun yanındaki Dağıt'ı seçin.
Güncelleştirmeyi dağıtma
Grup ayrıntıları sayfasında Geçerli dağıtım sekmesini seçin ve ardından Kullanılabilir güncelleştirmeler bölümünde istediğiniz güncelleştirmenin yanındaki Dağıt'ı seçin. Grup için kullanılabilir en iyi güncelleştirme, En iyi vurgulanmış olarak belirtilir.
Dağıtım oluştur sayfasında, dağıtımınızı hemen veya gelecekte başlayacak şekilde zamanlayın ve oluştur'u seçin.
İpucu
Varsayılan olarak, Başlangıç tarihi ve saati geçerli saatinizden 24 saattir. Dağıtımın daha erken 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 Durum Etkin'e döner. Kullanılabilir güncelleştirmeler'in altında, seçili güncelleştirme (dağıtım) ile işaretlenir.
Güncelleştirmeler sayfasında, 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ğiniz ve dağıtım ayrıntılarınız bu durumu yansıtacak şekilde güncelleştirilir.
Güncelleştirme dağıtım geçmişini görüntüleme
Dağıtım geçmişini görüntülemek için:
Grup ayrıntıları sayfasının üst kısmındaki Dağıtım geçmişi sekmesini seçin ve 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 Dağıtım ayrıntıları sayfasında Yenile'yi seçin.
Kaynakları temizleme
Bu öğretici için oluşturduğunuz kaynaklara artık ihtiyacınız kalmadığında bunları silebilirsiniz.
- Azure portalında, kaynakları içeren kaynak grubuna gidin.
- Gruptaki tüm kaynakları silmek istiyorsanız Kaynak grubunu sil'i seçin.
- Kaynakların yalnızca bir bölümünü silmek istiyorsanız, onay kutularını kullanarak kaynakları seçin ve ardından Sil'i seçin.
Sonraki adımlar
- Simülatör aracısı kullanarak IoT Hub için Cihaz Güncelleştirmesi
- Paket aracısı kullanarak IoT Hub için Cihaz Güncelleştirmesi