Pembaruan Peranti untuk tutorial Azure IoT Hub menggunakan Citra Referensi Raspberry Pi 3 B+

Pembaruan Perangkat untuk Azure IoT Hub mendukung pembaruan berbasis gambar, berbasis paket, dan berbasis skrip.

Pembaruan gambar menyediakan tingkat kepercayaan yang lebih tinggi dalam status akhir perangkat. Biasanya lebih mudah untuk mereplikasi hasil pembaruan gambar antara lingkungan pra-produksi dan produksi karena tidak menimbulkan tantangan yang sama seperti paket dan ketergantungan. Karena sifat atomnya, Anda juga dapat mengadopsi model failover A/B dengan mudah.

Tutorial ini memandu Anda melalui langkah-langkah untuk menyelesaikan pembaruan berbasis gambar menyekuruh menggunakan Device Update for IoT Hub di papan Raspberry Pi 3 B+.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Unduh gambar.
  • Tambahkan tag ke perangkat IoT Anda.
  • Mengimpor pembaruan.
  • Sebarkan pembaruan gambar.
  • Pantau penyebaran pembaruan.

Catatan

Pembaruan gambar dalam tutorial ini telah divalidasi di papan Raspberry Pi B3.

Prasyarat

Jika Anda belum melakukannya, buat akun dan instans Pembaruan Perangkat, dan mengonfigurasi IoT hub. Tutorial ini membutuhkan perangkat untuk terhubung melalui koneksi ethernet.

Unduh file di Aset di halaman rilis GitHub Pembaruan Perangkat. Tutorial_RaspberryPi.zip memiliki semua file yang diperlukan untuk tutorial.

Membuat perangkat di IoT Hub dan mendapatkan string koneksi

Sekarang, tambahkan perangkat ke IoT Hub. Dari dalam Azure IoT Hub, string koneksi akan dihasilkan untuk peranti.

  1. Dari portal Azure, navigasikan ke hub IoT Anda.

  2. Di panel kiri, pilih Perangkat. Kemudian pilih Baru.

  3. Di bawah ID Perangkat, masukkan nama untuk perangkat. Pastikan kotak centang Buat otomatis kunci dipilih.

  4. Pilih Simpan. Pada halaman Perangkat, perangkat yang Anda buat harus ada dalam daftar.

  5. Dapatkan string koneksi perangkat dengan menavigasi ke tampilan perangkat, pilih ikon Salin di samping String Koneksi Utama.

  6. Menempelkan karakter yang disalin di suatu tempat untuk digunakan nanti dalam langkah-langkah berikut:

    String yang disalin ini adalah string koneksi perangkat Anda.

Catatan

Tutorial ini menggunakan string koneksi perangkat untuk mengautentikasi dan terhubung dengan IoT Hub untuk kemudahan penyiapan. Untuk skenario produksi, sebaiknya gunakan identitas modul dan memanfaatkan AIS (IoT Identity Service) untuk memprovisikan perangkat. Pelajari selengkapnya

Siapkan Raspberry Pi

Kami menyediakan gambar dasar dan memperbarui file di Aset di halaman rilis GitHub Pembaruan Perangkat. Tutorial_RaspberryPi.zip memiliki semua file yang diperlukan untuk tutorial. File .wic adalah gambar dasar yang dapat Anda flash ke papan Raspberry Pi 3 B+. File swUpdate(.swu), skrip swupdate kustom, dan manifes adalah file pembaruan yang akan Anda impor melalui Pembaruan Perangkat untuk IoT Hub.

Gambar dasar ini menggunakan build Yocto (berdasarkan rilis 3.4.4) dengan:

  • SWUpdate yang memungkinkan pembaruan partisi ganda dengan DU
  • Agen Device Update

Untuk mempelajari lebih lanjut tentang lapisan Yocto yang digunakan, lihat Device Update Yocto GitHub..

Anda dapat menggunakan alat berkedip OS favorit Anda untuk menginstal gambar dasar Pembaruan Perangkat (adu-base-image) pada kartu SD yang akan digunakan di perangkat Raspberry Pi 3 B+. Di bawah ini adalah instruksi untuk menggunakan bmaptool untuk flash ke kartu SD.

Gunakan bmaptool untuk mem-flash kartu SD

  1. Pasang utilitas bmaptool, jika Anda belum melakukannya.

    sudo apt-get install bmap-tools
    
  2. Temukan jalur untuk kartu SD di /dev. Hasilnya akan terlihat seperti /dev/sd* atau /dev/mmcblk*. Anda dapat menggunakan utilitas dmesg untuk membantu menemukan jalur yang benar.

  3. Lepaskan semua partisi yang dipasang sebelum flash.

    sudo umount /dev/<device>
    
  4. Pastikan Anda memiliki izin tertulis pada peranti.

    sudo chmod a+rw /dev/<device>
    
  5. Opsional: Untuk flash lebih cepat, unduh file bimap dan file gambar dan letakkan di direktori yang sama.

  6. Lakukan flash pada kartu SD.

    sudo bmaptool copy <path to image> /dev/<device>
    

Perangkat lunak Device Update for Azure IoT Hub tunduk pada ketentuan syarat lisensi:

Baca syarat lisensi sebelum menggunakan agen. Penginstalan dan penggunaan Anda merupakan persetujuan Anda atas persyaratan ini. Jika Anda tidak setuju dengan syarat lisensi, jangan gunakan agen Device Update for IoT Hub.

Mengonfigurasi agen Pembaruan Perangkat di Raspberry Pi

  1. Pastikan bahwa Raspberry Pi 3 tersambung ke jaringan.

  2. SSH ke Raspberry Pi 3 dengan menggunakan perintah berikut di jendela PowerShell:

      ssh raspberrypi3 -l root
    
  3. File konfigurasi DU (du-config.json dan du-diagnostics-config.json) harus ada di perangkat sehingga Pembaruan Perangkat untuk IoT Hub dikonfigurasi dengan benar.

    1. Untuk membuat atau membuka du-config.json file untuk pengeditan dengan menggunakan:
      nano /adu/du-config.json
    
    1. Setelah Anda menjalankan perintah, Anda akan melihat editor terbuka dengan file. Jika Anda belum pernah membuat file, file tersebut akan kosong. Sekarang salin konten du-config.json di bawah ini, dan ganti konfigurasi yang diperlukan untuk perangkat Anda. Kemudian ganti contoh string koneksi dengan yang untuk perangkat yang Anda buat pada langkah-langkah sebelumnya.

      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. Setelah Anda menyelesaikan perubahan, pilih Ctrl+X untuk keluar dari editor. Kemudian masukkan y untuk menyimpan perubahan.
  4. Sekarang Anda perlu membuat du-diagnostics-config.json file dengan menggunakan perintah serupa.

    1. Mulailah dengan du-diagnostics-config.json membuat atau membuka file untuk diedit dengan menggunakan:
      nano /adu/du-diagnostics-config.json
    
    1. Salin konten du-diagnostics-config.json yang disediakan di bawah ini, dan ganti konfigurasi apa pun yang berbeda dari build default. Contoh file du-diagnostics-config.json mewakili lokasi log default untuk Device Update for IoT Hub. Anda hanya perlu mengubah nilai default ini jika implementasi Anda berbeda.

    du-diagnostics-config.json

    {
       "logComponents":[
          {
             "componentName":"adu",
             "logPath":"/adu/logs/"
          },
          {
             "componentName":"do",
             "logPath":"/var/log/deliveryoptimization-agent/"
          }
       ],
       "maxKilobytesToUploadPerLogPath":50
    }
    
    1. Setelah Anda menyelesaikan perubahan, pilih Ctrl+X untuk keluar dari editor. Kemudian masukkan y untuk menyimpan perubahan.
  5. Gunakan perintah berikut untuk menampilkan file yang terletak di /adu/ direktori. Anda akan melihat kedua file konfigurasi file.du-diagnostics-config.json untuk diedit dengan menggunakan:

      ls -la /adu/
    
  6. Mulai ulang daemon sistem Pembaruan Perangkat untuk memastikan konfigurasi diterapkan. Gunakan perintah berikut di dalam terminal yang masuk ke raspberrypi:

      systemctl start deviceupdate-agent
    
  7. Periksa apakah agen tersebut langsung dengan menggunakan perintah berikut:

      systemctl status deviceupdate-agent
    

    Anda akan melihat status muncul sebagai hidup dan hijau.

Menyambungkan peranti di Device Update for IoT Hub

  1. Di panel kiri, pilih Perangkat.

  2. Pilih tautan dengan nama perangkat Anda.

  3. Di bagian atas halaman, pilih Device Twin.

  4. Di bawah bagian yang dilaporkan pada properti Perangkat Kembar, cari versi kernel Linux.

    Untuk peranti baru, yang belum menerima pembaruan dari Pembaruan Peranti, nilai DeviceManagement:DeviceInformation:1.swVersion akan mewakili versi firmware yang berjalan di peranti. Setelah pembaruan telah diterapkan pada peranti, Pembaruan Peranti akan menggunakan nilai properti AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId untuk mewakili versi firmware yang berjalan di peranti.

  5. File gambar dasar dan pembaruan memiliki nomor versi dalam nama file.

     adu-<image type>-image-<machine>-<version number>.<extension>
    

    Gunakan nomor versi itu di bagian "Impor pembaruan" nanti.

Menambahkan tag grup Pembaruan Perangkat ke perangkat Anda

  1. Di portal Microsoft Azure, navigasi ke hub IoT Anda.

  2. Di panel kiri, di bawah Perangkat, temukan perangkat IoT Anda dan buka perangkat kembar atau modul kembar.

  3. Dalam Modul Kembar pada modul agen Pembaruan Perangkat, hapus semua nilai tag Pembaruan Perangkat yang sudah ada dengan mengaturnya ke null. Jika Anda menggunakan identitas perangkat dengan agen Pembaruan Perangkat, buat perubahan ini pada perangkat kembar.

  4. Menambahkan nilai tag Pembaruan Perangkat baru, seperti yang ditunjukkan:

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

    Cuplikan layar yang memperlihatkan kembar dengan informasi tag.

    Cuplikan layar ini memperlihatkan bagian di mana tag perlu ditambahkan di kembaran.

Mengimpor pembaruan

  1. Unduh sampel manifes tutorial dan contoh pembaruan (file.swu) dan sampel skrip A/B dari Tutorial_RaspberryPi.zip di bawah Aset Rilis untuk agen terbaru.

  2. Masuk ke portal Azure dan buka IoT hub Anda dengan Pembaruan Perangkat. Di panel di sebelah kiri, di bawah Manajemen Perangkat Otomatis, pilih Perbarui.

  3. Pilih tab Pembaruan.

  4. Pilih+ Mengimpor Pembaruan Baru.

  5. Pilih + Memilih dari wadah penyimpanan. Memilih akun yang sudah ada atau membuat akun baru dengan menggunakan + Akun penyimpanan. Kemudian pilih kontainer yang ada atau buat kontainer baru dengan menggunakan + Kontainer. Kontainer ini akan digunakan untuk mementahkan file pembaruan Anda untuk diimpor.

    Catatan

    Sebaiknya gunakan kontainer baru setiap kali mengimpor pembaruan untuk menghindari mengimpor file secara tidak sengaja dari pembaruan sebelumnya. Jika Anda tidak menggunakan kontainer baru, pastikan untuk menghapus file apa pun dari kontainer yang ada sebelum Anda menyelesaikan langkah ini.

    Cuplikan layar yang menampilkan akun Penyimpanan dan Kontainer.

  6. Di kontainer Anda, pilih Unggah dan buka file yang Anda unduh di langkah 1. Setelah memilih semua file pembaruan, pilih Unggah. Kemudian pilih tombol Pilih untuk kembali ke halaman Pembaruan impor.

    Cuplikan layar yang menampilkan pemilihan file yang diunggah.

    Cuplikan layar ini menunjukkan langkah impor. Nama file mungkin tidak cocok dengan yang digunakan dalam contoh.

  7. Pada halaman Impor pembaruan, tinjau file yang akan diimpor. Kemudian pilih Perbarui impor untuk memulai proses impor. Untuk tutorial, impor sampel manifes tutorial dan contoh pembaruan (file.swu) dan sampel skrip A/B yang diunduh sebelumnya.

    Cuplikan layar yang menampilkan Impor pembaruan.

  8. Proses impor dimulai, dan layar akan berubah ke bagian Riwayat impor. Ketika kolom Status menunjukkan impor telah berhasil, pilih header Pembaruan yang tersedia. Sekarang Anda akan melihat pembaruan yang diimpor dalam daftar.

    Cuplikan layar yang menampilkan status pekerjaan.

Untuk informasi selengkapnya tentang proses impor, lihat Mengimpor pembaruan ke Pembaruan Perangkat.

Melihat grup perangkat

Pembaruan Perangkat menggunakan grup untuk mengatur perangkat. Pembaruan Perangkat secara otomatis mengurutkan perangkat ke dalam grup berdasarkan tag dan properti kompatibilitas yang ditetapkan. Setiap perangkat hanya termasuk dalam satu grup, tetapi grup dapat memiliki beberapa subgrup untuk mengurutkan kelas perangkat yang berbeda.

  1. Buka tab Grup dan Penyebaran di bagian atas halaman.

    Cuplikan layar yang menunjukkan perangkat yang tidak dikelompokkan.

  2. Menampilkan daftar grup dan bagan kepatuhan pembaruan. Bagan kepatuhan pembaruan memperlihatkan jumlah perangkat di berbagai status kepatuhan: Pada pembaruan terbaru, Pembaruan baru tersedia, dan Pembaruan sedang Berlangsung. Pelajari kepatuhan pembaruan.

    Cuplikan layar yang menunjukkan pembaruan tampilan kepatuhan.

  3. Anda akan melihat grup perangkat yang berisi perangkat simulasi yang Anda siapkan dalam tutorial ini bersama dengan pembaruan yang tersedia untuk perangkat di grup baru. Jika ada perangkat yang tidak memenuhi persyaratan kelas perangkat grup, perangkat tersebut akan muncul dalam grup tidak valid yang sesuai. Untuk menyebarkan pembaruan terbaik yang tersedia ke grup baru yang ditentukan pengguna dari tampilan ini, pilih Sebarkan di samping grup.

Untuk informasi selengkapnya tentang tag dan grup, lihat Mengelola grup perangkat.

Menyebarkan pembaruan

  1. Setelah grup dibuat, Anda akan melihat pembaruan baru yang tersedia untuk grup perangkat, dengan tautan ke pembaruan di bawah Pembaruan terbaik. Anda mungkin perlu refresh lagi.

    Untuk informasi selengkapnya tentang kepatuhan, lihat Kepatuhan Pembaruan Perangkat.

  2. Pilih grup target dengan memilih nama grup. Anda diarahkan ke detail grup di bagian Dasar-dasar grup.

    Cuplikan layar yang menampilkan detail Grup.

  3. Untuk memulai penyebaran, buka tab Penyebaran saat ini. Pilih tautan sebarkan di samping pembaruan yang diinginkan dari bagian Pembaruan yang tersedia. Pembaruan terbaik yang tersedia untuk grup tertentu dilambangkan dengan sorotan Terbaik.

    Cuplikan layar yang menunjukkan pemilihan pembaruan.

  4. Jadwalkan penyebaran Anda untuk segera dimulai atau di masa mendatang. Kemudian pilih Buat.

    Tip

    Secara default, tanggal dan waktu Mulai adalah 24 jam dari waktu Anda saat ini. Pastikan untuk memilih tanggal dan waktu yang berbeda jika Anda ingin penyebaran dimulai lebih awal.

    Cuplikan layar yang menampilkan membuat penyebaran.

  5. Di bawah Detail penyebaran, Status berubah menjadi Aktif. Pembaruan yang disebarkan ditandai dengan (menyebarkan).

    Cuplikan layar yang menunjukkan penyebaran sebagai Aktif.

  6. Lihat bagan kepatuhan untuk melihat bahwa pembaruan sedang berlangsung.

  7. Setelah perangkat berhasil diperbarui, Anda akan melihat bahwa bagan kepatuhan dan detail penyebaran diperbarui untuk mencerminkan hal yang sama.

    Cuplikan layar yang menunjukkan pembaruan berhasil.

Memantau penyebaran pembaruan

  1. Pilih tab Riwayat penyebaran di bagian atas halaman.

    Cuplikan layar yang menampilkan Riwayat penyebaran.

  2. Pilih tautan detail di samping penyebaran yang Anda buat.

    Cuplikan layar yang menampilkan detail penyebaran.

  3. Pilih Refresh untuk melihat detail status terbaru.

Anda sekarang telah menyelesaikan pembaruan gambar ujung ke ujung yang berhasil menggunakan Device Update for IoT Hub pada perangkat Raspberry Pi 3 B+.

Membersihkan sumber daya

Saat tidak lagi diperlukan, bersihkan akun Pembaruan Perangkat Anda, instans, IoT Hub, dan perangkat IoT.

Langkah berikutnya