Oktatóanyag: Azure Device Update for IoT Hub Raspberry Pi-rendszerkép használatával

Az Azure IoT Hub eszközfrissítése támogatja a rendszerképalapú, csomagalapú és szkriptalapú frissítéseket. Ez az oktatóanyag bemutatja az IoT Hub teljes körű eszközfrissítését egy Yocto-lemezkép használatával egy Raspberry Pi 3 B+ táblán.

A rendszerkép-frissítések nagy megbízhatóságot biztosítanak az eszköz végső állapotában, és nem jelentenek ugyanazokat a csomag- és függőségkezelési kihívásokat, mint a csomag- vagy szkriptalapú frissítések. Egyszerűbb replikálni egy képfrissítés eredményét egy előgyártási és egy éles környezet között, vagy egyszerűen átvenni egy A/B feladatátvételi modellt.

Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:

  • Képfrissítés letöltése és telepítése.
  • Címkét rendelhet az IoT-eszközhöz.
  • Importálja a képfrissítést.
  • Telepítse a rendszerkép-frissítést.
  • Tekintse meg a frissítés üzembehelyezési előzményeit.

Előfeltételek

  • IoT Hubbal konfigurált eszközfrissítési fiók és példány.

  • Egy Raspberry Pi 3 IoT-alaplap, amely Etherneten keresztül csatlakozik a hardverhez, amely letölti és kinyeri a képfájlokat, és vezérli az eszközt.

    Feljegyzés

    Az oktatóanyag képfrissítéseit egy Raspberry Pi B3-táblán ellenőriztük.

Regisztrálja az eszközt, és kérje le a kapcsolati sztring

Adja hozzá az eszközt az IoT Hub eszközregisztrációs adatbázisához, és kérje le az eszközhöz létrehozott kapcsolati sztring IoT Hubot.

  1. Az Azure Portalon nyissa meg az eszközfrissítési példányhoz társított IoT Hub-lapot.
  2. A bal oldali navigációs panelen válassza az Eszközfelügyeleti>eszközök lehetőséget.
  3. Az Eszközök lapon válassza az Eszköz hozzáadása lehetőséget.
  4. Az Eszközazonosító területen adja meg az eszköz nevét. Győződjön meg arról, hogy a kulcsok automatikus létrehozása jelölőnégyzet be van jelölve.
  5. Válassza a Mentés lehetőséget. Az eszköz megjelenik az Eszközök lapon található listában.
  6. Az Eszközök lapon válassza ki a regisztrált eszközt.
  7. Az eszközoldalon válassza a Kapcsolati sztring (elsődleges kulcs) melletti Másolás ikont. Mentse ezt az eszközt kapcsolati sztring az eszközfrissítési ügynök konfigurálásakor.

Feljegyzés

Bemutató célokra ez az oktatóanyag egy eszköz kapcsolati sztring használatával hitelesít és csatlakozik az IoT Hubhoz. Éles helyzetekben jobb, ha modulidentitást és IoT Identity Service-t használ az eszközök kiépítéséhez. További információ: Eszközfrissítési ügynök kiépítése.

A Raspberry Pi beállítása

A Tutorial_RaspberryPi3.zip fájl tartalmazza az oktatóanyaghoz szükséges összes fájlt. Töltse le a fájlt a legújabb kiadás Eszközök szakaszából a GitHub Eszközfrissítési kiadások lapján, és bontsa ki.

A kinyert Tutorial_RaspberryPi3 mappában a Raspberry Pi táblára villogó alapkép adu-base-image-raspberrypi3.wic. Az alaprendszerkép a 3.4.4-es kiadáson alapuló Yocto-buildet használja. A lemezképen az Eszközfrissítési ügynök és a SWUpdate található, amely lehetővé teszi az eszközfrissítés kettős partíciófrissítését. További információ a Yocto-rétegekről: Egyéni Linux-alapú rendszer létrehozása Eszközfrissítési ügynökkel a Yocto Project használatával.

Az eszközfrissítésen keresztül importált frissítési fájlok a következők:

  • SWUpdate fájl adu-update-image-raspberrypi3-1.2.0.swu
  • Egyéni SWUpdate szkript example-a-b-update.sh
  • Jegyzék EDS-ADUClient.yocto-update.1.2.0.importmanifest.json

Bmaptool használata az SD-kártya villogásához

Fontos

Az Azure Device Update for IoT Hub szoftverre a következő licencfeltételek vonatkoznak:

Az ügynök használata előtt olvassa el a licencfeltételeket. Az ügynök telepítése és használata a jelen feltételek elfogadását jelenti. Ha nem ért egyet a licencfeltételekkel, ne használja az eszközfrissítési ügynököt.

Az operációs rendszer villogó eszközével telepítse a Device Update alaprendszerképét a Raspberry Pi-eszközön használt SD-kártyára. Az alábbi utasítások az SD-kártya felvillanásához használhatók bmaptool . Cserélje le a <device> helyőrzőt az eszköz nevére és a <path to image> helyőrzőre a letöltött képfájl elérési útjára.

  1. Ha nem rendelkezik vele, telepítse a bmap-tools segédprogramot.

    sudo apt-get install bmap-tools
    
  2. Keresse meg az SD-kártya elérési útját a /dev fájlban. Az elérési útnak a /dev/sd* vagy a /dev/mmcblk* formátumhoz hasonlóan kell kinéznie. A segédprogrammal dmesg megkeresheti a megfelelő elérési utat.

  3. Villogás előtt bontsa le az összes csatlakoztatott partíciót.

    sudo umount /dev/<device>
    
  4. Győződjön meg arról, hogy rendelkezik írási engedélyekkel az eszközre.

    sudo chmod a+rw /dev/<device>
    
  5. Villogtasd az SD-kártyát.

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

    Tipp.

    A gyorsabb villogás érdekében letöltheti a bimap fájlt és a képfájlt, és ugyanabba a könyvtárba helyezheti őket.

Az Eszközfrissítési ügynök konfigurálása a Raspberry Pi-en

  1. Győződjön meg arról, hogy a Raspberry Pi csatlakozik a hálózathoz.

  2. Egy PowerShell-ablakban az alábbi paranccsal biztonságossá teheti a rendszerhéjat (SSH) a Raspberry Pi-be:

    ssh raspberrypi3 -l root
    

Az Eszközfrissítés konfigurációs fájljainak létrehozása

Az eszközfrissítési du-config.json és du-diagnostics-config.json konfigurációs fájloknak az eszközön kell lenniük. A fájlok létrehozásához futtassa a következő parancsokat a terminálon, amely bejelentkezett a Raspberry Pi-be.

  1. A du-config.json fájl létrehozásához vagy szerkesztéshez való megnyitásához futtassa a következő parancsot:

    nano /adu/du-config.json
    
  2. A szerkesztő megnyitja a du-config.json fájlt. Ha a fájlt hozza létre, az üres. Másolja és illessze be a következő kódot a fájlba, és cserélje le a példaértékeket az eszközhöz szükséges konfigurációkra. Cserélje le a példasztringet connectionData az eszközregisztrációs lépésben másolt eszközre kapcsolati sztring.

    {
       "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"
          }
       ]
    }  
    
  3. A Ctrl X billentyűkombinációval+ lépjen ki a szerkesztőből, és a módosítások mentéséhez írja be az y billentyűt.

  4. Hozza létre a du-diagnostics-config.json fájlt hasonló parancsokkal. Hozza létre és nyissa meg a fájlt:

    nano /adu/du-diagnostics-config.json
    
  5. Másolja és illessze be a következő du-diagnostics-config.json kódot a fájlba. Az értékek az eszközfrissítési napló alapértelmezett helyei, és csak akkor kell módosítania őket, ha a konfiguráció eltér az alapértelmezetttől.

    {
       "logComponents":[
          {
             "componentName":"adu",
             "logPath":"/adu/logs/"
          },
          {
             "componentName":"do",
             "logPath":"/var/log/deliveryoptimization-agent/"
          }
       ],
       "maxKilobytesToUploadPerLogPath":50
    }
    
  6. A Ctrl X billentyűkombinációval+ lépjen ki a szerkesztőből, és a módosítások mentéséhez írja be az y billentyűt.

  7. Az alábbi paranccsal megjelenítheti a /adu / könyvtárban található fájlokat. Mindkét konfigurációs fájlt látnia kell.

    ls -la /adu/
    
  8. Az eszközfrissítési rendszer démonjának újraindításához és a konfigurációk alkalmazásának ellenőrzéséhez használja az alábbi parancsot.

    systemctl start deviceupdate-agent
    
  9. Az ügynök élő állapotának ellenőrzéséhez futtassa a következő parancsot:

    systemctl status deviceupdate-agent
    

    Az állapotnak élőként és zöldként kell megjelennie.

Csatlakozás az eszközhöz az IoT Hubban, és csoportcímke hozzáadása

  1. Az Eszközfrissítési példány Azure Portal IoT Hub lapján válassza az Eszközfelügyeleti>eszközök lehetőséget a bal oldali navigációs sávon.

  2. Az Eszközök lapon válassza ki az eszköz nevét.

  3. Az eszközoldal tetején válassza az Ikereszköz lehetőséget.

  4. Az Ikereszköz lapon, az "reported" ikereszköz "properties" szakaszában keresse meg az eszköz Linux kernelverzióját.

    Olyan új eszköz esetén, amely nem kapott frissítést az Eszközfrissítéstől, a DeviceManagement:DeviceInformation:1.swVersion tulajdonság értéke az eszközön futó belső vezérlőprogram-verziót jelöli. Az eszköz frissítésének alkalmazása után az AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId tulajdonság értéke a belső vezérlőprogram verzióját jelöli.

    Az alap- és frissítési képfájlnevek formátuma adu-image type-image-machine-version<>>< number.<><bővítményt>. Figyelje meg a frissítés importálásakor használni kívánt verziószámokat.

Csoportcímke hozzáadása

Az Eszközfrissítés automatikusan csoportokba rendezi az eszközöket a hozzájuk rendelt címkék és kompatibilitási tulajdonságok alapján. Minden eszköz csak egy csoporthoz tartozhat, de a csoportok több alcsoporttal is rendelkezhetnek a különböző eszközosztályok rendezéséhez. További információ a címkékről és csoportokról: Eszközcsoportok kezelése.

  1. Az ikereszközben törölje a meglévő eszközfrissítési címkeértékeket úgy, hogy null értékre állítja őket, majd adja hozzá az alábbi új eszközfrissítési csoportcímkét. Ha modulidentitást használ az Eszközfrissítési ügynökkel, vegye fel a címkét a Modulidentitás ikerpéldányba az ikereszköz helyett.

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

    Az alábbi képernyőképen látható, hogy a fájlban hol szeretné hozzáadni a címkét.

    Képernyőkép az ikerpéldányról címkeadatokkal.

  2. Válassza a Mentés lehetőséget.

A frissítés importálása

  1. Az Eszközfrissítési példány Azure Portal IoT Hub lapján válassza Eszközkezelés >Updates elemet a bal oldali navigációs sávon.

  2. A Frissítések lapon válassza az Új frissítés importálása lehetőséget.

  3. A Frissítés importálása lapon válassza a Kiválasztás a tárolóból lehetőséget.

  4. A Tárfiókok lapon válasszon ki egy meglévő tárfiókot, vagy hozzon létre egy új fiókot a Storage-fiók kiválasztásával.

  5. A Tárolók lapon válasszon ki egy meglévő tárolót, vagy hozzon létre egy új tárolót a Tároló kiválasztásával. A tárolóval a frissítési fájlokat importálhatja.

    A Tárfiókokat és -tárolókat bemutató képernyőkép.

    Tipp.

    A korábbi frissítésekből származó fájlok véletlen importálásának elkerülése érdekében minden egyes frissítés importálásakor használjon egy új tárolót. Ha nem használ új tárolót, mindenképpen törölje a fájlokat a meglévő tárolóból.

  6. A tárolólapon válassza a Feltöltés lehetőséget. Húzza az egérrel, vagy keresse meg és jelölje ki a következő frissítési fájlokat a letöltött Tutorial_RaspberryPi3 mappából:

    • adu-update-image-raspberrypi3-1.2.0.swu
    • example-a-b-update.sh
    • EDS-ADUClient.yocto-update.1.2.0.importmanifest.json
  7. Válassza a Feltöltés lehetőséget. A feltöltés után a fájlok megjelennek a tárolólapon.

  8. A tárolólapon tekintse át és jelölje ki az importálni kívánt fájlokat, majd válassza a Kiválasztás lehetőséget.

    A feltöltött fájlok kiválasztását bemutató képernyőkép.

  9. A Frissítés importálása képernyőn válassza a Frissítés importálása lehetőséget.

    Képernyőkép az Importálás frissítésről.

Az importálási folyamat megkezdődik, és a képernyő a Frissítések képernyőre vált. Az importálás sikeres végrehajtása után megjelenik a Frissítések lapon. Az importálási folyamatról további információt az Eszközfrissítés frissítésének importálása című témakörben talál.

Képernyőkép a feladat állapotáról.

Válassza ki az eszközcsoportot

Az eszközre alkalmazott csoportcímkével telepítheti a frissítést az eszközcsoporton. A Csoportok és üzemelő példányok lapfülre kattintva a Frissítések lap tetején megtekintheti a csoportok és üzemelő példányok listáját, valamint a frissítési megfelelőségi diagramot.

A frissítésmegfelelőségi diagram a különböző megfelelőségi állapotokban lévő eszközök számát mutatja: a legújabb frissítés, az elérhető új frissítések és a folyamatban lévő frissítések. További információ: Eszközfrissítések megfelelősége.

A Csoportnév csoportban megjelenik az IoT Hubhoz csatlakoztatott eszközök összes eszközcsoportjának és az elérhető frissítéseknek a listája, amelyek hivatkozásokkal telepíthetik a frissítéseket az Állapot területen. Minden olyan eszköz, amely nem felel meg egy csoport eszközosztály-követelményeinek, érvénytelen csoportban jelenik meg. További információ a címkékről és csoportokról: Eszközcsoportok kezelése.

Látnia kell az oktatóanyagban beállított eszközt tartalmazó eszközcsoportot, valamint a csoport eszközeinek elérhető frissítéseit. Lehetséges, hogy frissítenie kell az oldalt. Ha a legjobban elérhető frissítést szeretné üzembe helyezni egy csoporton ebből a nézetben, válassza a csoport melletti Üzembe helyezés lehetőséget.

Képernyőkép a frissítésmegfeleltségi nézetről.

A frissítés üzembe helyezése

  1. A Csoport részletei lapon válassza az Aktuális üzembe helyezés lapot, majd az Elérhető frissítések szakaszban válassza a kívánt frissítés melletti Üzembe helyezés lehetőséget. A csoport számára elérhető legjobb frissítés a legjobb kiemeléssel van jelölve.

    A frissítés kiválasztását bemutató képernyőkép.

  2. Az Üzembe helyezés létrehozása lapon ütemezze az üzembe helyezés azonnali vagy jövőbeli indítását, majd válassza a Létrehozás lehetőséget.

    Az üzembe helyezést bemutató képernyőkép.

    Tipp.

    Alapértelmezés szerint a kezdési dátum és időpont az aktuális időponttól számított 24 óra. Mindenképpen válasszon másik dátumot és időpontot, ha azt szeretné, hogy az üzembe helyezés hamarabb kezdődjön.

  3. Az üzembe helyezés részletei alatt az állapot aktív állapotúvá válik. Az Elérhető frissítések területen a kijelölt frissítés megjelölése (üzembe helyezés).

    Képernyőkép az üzemelő példányról aktívként.

  4. A Frissítések lapon tekintse meg a megfelelőségi diagramot, és ellenőrizze, hogy a frissítés folyamatban van-e. Az eszköz sikeres frissítése után a megfelelőségi diagram és az üzembe helyezés részletei frissülnek, hogy tükrözzék ezt az állapotot.

    Képernyőkép a sikeres frissítésről.

Frissítéstelepítési előzmények megtekintése

Az üzembe helyezési előzmények megtekintése:

  1. Válassza az Üzembe helyezési előzmények lapot a Csoport részletei lap tetején, és válassza a létrehozott üzembe helyezés melletti részletes hivatkozást.

    Képernyőkép az üzembe helyezési előzményekről.

  2. Az Üzembe helyezés részletei lapon válassza a Frissítés lehetőséget a legújabb állapotadatok megtekintéséhez.

    Képernyőkép az üzembe helyezés részleteiről.

Az erőforrások eltávolítása

Ha már nincs szüksége az oktatóanyaghoz létrehozott erőforrásokra, törölheti őket.

  1. Az Azure Portalon keresse meg az erőforrásokat tartalmazó erőforráscsoportot.
  2. Ha törölni szeretné a csoport összes erőforrását, válassza az Erőforráscsoport törlése lehetőséget.
  3. Ha csak néhány erőforrást szeretne törölni, jelölje ki az erőforrásokat a jelölőnégyzetek használatával, majd válassza a Törlés lehetőséget.

Következő lépések