Azure Sphere OTA 시작하기

Rena Kim
WIZnet
Published in
8 min readJun 25, 2020

최초 배포 일자 : 2020/06/25
최종 수정 일자 : 2020/06/29

Azure Sphere OTA

OTA(Over The Air)는 새로운 소프트웨어나 설정을 네트워크를 통해 다양한 방식으로 배포하는 것을 가리킵니다.

Azure Sphere는 Azure Sphere Security Service(이하 AS3)를 통한 업데이트 서비스를 제공하고 있습니다. AS3는 유지 관리 및 업데이트 등을 사용하기 위해 Azure Sphere 칩과 통신하는 클라우드 기반 서비스입니다.

Azure Sphere OTA Service

사용자는 AS3의 업데이트 기능을 사용해 어플리케이션을 쉽게 배포하고 업데이트 할 수 있습니다.

Azure Sphere의 OTA는 테넌트, 그리고 테넌트 내 제품과 디바이스 그룹 기반으로 이루어집니다. 테넌트라는 개념이 생소할 수 있는데, MS의 Azure Sphere 가이드 문서에서 다음과 같이 설명하고 있습니다.

Azure sphere 테넌트는 Azure Sphere Security Service의 조직을 나타내는 특별한 클라우드 기반 엔터티입니다. Azure Sphere 테넌트는 조직에서 다른 조직의 디바이스와 격리된 상태로 해당 Azure Sphere 디바이스를 관리할 수 있는 안전한 방법을 제공합니다. 각 디바이스는 정확히 하나의 Azure Sphere 테넌트에 속합니다. “테넌트”라는 용어는 다른 곳에서 Azure Active Directory 인스턴스를 나타내는 데 사용되기도 합니다. 그러나 Azure Sphere 컨텍스트에서 “테넌트”는 Azure Sphere 테넌트만을 나타냅니다.

실제 디바이스를 사용해 Azure Sphere OTA를 진행하면서 어떤 방식으로 업데이트가 이루어지는지 확인해 봅니다.

사전 준비

디바이스 설정 및 제어를 위해 CLI (Command-line Interface) 기반의 azure sphere 프롬프트를 사용합니다.

Azure Sphere CLI는 SDK를 설치하면 사용할 수 있습니다.

네트워크 설정

OTA를 진행하기 위해서 네트워크 설정은 필수입니다. 다음의 명령을 사용해 WiFi 정보를 설정하고 연결 상태를 확인합니다.

// WiFi 설정
> azsphere dev wifi add –ssid <SSID> --psk <Password>
// WiFi 상태 확인
> azsphere dev wifi show-status
WiFi — Show status

Product 생성

현재 선택된 테넌트 내에 Product를 생성합니다. 이 때 5개의 기본 디바이스 그룹이 생성되며, 어플리케이션의 기능과 용도에 따라 각 그룹에 이미지를 배포할 수 있습니다.

Tenant, Product, Device group의 관계를 보면 다음과 같습니다. (Product name: ASG200)

Tenant — Product — Device groups

기본그룹 외 유저 환경에 맞는 디바이스 그룹을 생성할 수도 있습니다. (예: 지역 별 디바이스 그룹)

azsphere product create --name <product-name>
Product — create

디바이스 클라우드 로드 설정

디바이스가 OTA를 통해 설정된 디바이스 그룹으로부터 최신 이미지를 받아올 수 있도록 클라우드 로드 설정을 합니다. 이 때 로컬 디버그 기능은 제거됩니다.

파라미터로 디바이스를 어떤 제품의 어떤 그룹에 위치시킬 지 설정할 수 있습니다.

azsphere device enable-cloud-test --productname <product-name> --devicegroupname <devicegroup>
Device — enable cloud test

프로젝트 빌드

프로젝트를 빌드하여 배포할 이미지 패키지를 생성합니다.

ASG200_App은 M4 및 A7 코어를 함께 사용하므로 각 코어에 대한 어플리케이션을 빌드하여 각각의 결과물(imagepackage)을 사용합니다. 빌드가 완료되면 출력 창에 컴포넌트 및 이미지 ID 정보와 몇몇 정보들이 표시되고, 이 때 파일의 경로를 복사해 둡니다.

이미지 패키지의 파일 경로는 배포 명령 시 파라미터로 요구됩니다.

이미지 패키지는 이미지, 그리고 이미지와 관련된 메타데이터가 결합된 패키지 파일입니다. 배포 시 정보를 포함하고 있는 이미지 패키지를 사용합니다.

HL App build result
RT App build result

이미지 배포

이제 이전 단계에서 생성한 Product의 디바이스 그룹에 빌드한 이미지 패키지를 AS3에 배포합니다. 멀티 코어를 사용하는 경우 하나의 배포에 여러 이미지를 포함시키려면 공백 없이 콤마(,)를 사용하여 배포할 모든 이미지의 경로를 입력해 줍니다.

단일 이미지를 각각 AS3에업로드한 다음 이미지 ID를 파라미터로 주는 방법도 있습니다.

azsphere device-group deployment create --devicegroupname <name of device group> --productname <name of product> --filepath <path to image(can use multi image)> --force

— force 옵션은 배포할 어플리케이션에서 beta API를 사용할 경우 필요한 옵션입니다.

Deploy applications

배포 확인

배포를 완료했다면 다음 명령어를 사용해 배포 내역을 확인할 수 있습니다.

azsphere device-group show --devicegroupname <device-group-name> --productname <product-name>azsphere device-group dep list --devicegroupname <device-group-name> --productname <product-name>

커맨드 사용 결과는 다음과 같습니다. 배포한 이미지 ID 및 정보, 배포 일시 등이 표시됩니다.

Device Group — show
Device Group — deployment list

디바이스 업데이트 확인

AS3에 배포한 이미지가 실제 디바이스로 배포되는지 확인합니다.

AS3에 새로운 이미지가 배포되면 24시간 내에 업데이트 되며, 디바이스가 reset되면 인터넷에 연결 될 때즉시 업데이트가 수행됩니다.

다음 명령어를 사용해 현재 디바이스에 설치된 이미지를 확인합니다.

azsphere device image list-installed
Device — installed image list (before OTA)

OTA를 진행하기 위해 디바이스 reset 명령을 사용합니다.

azsphere device restart

네트워크 상태가 원활하다면 1분 이내에 OTA 업데이트가 진행됩니다. 잠시 후 설치된 이미지를 다시 확인합니다.

Device — installed image list (after OTA)

AS3를 통해 배포한 RT, HL 어플리케이션이 OTA를 통해 설치되어 동작중인 것을 확인할 수 있습니다.

OTA 기능은 제품 소프트웨어의 유지보수 및 관리를 위해 필수적입니다.

Azure Sphere의 경우 tenant, product, device group 구조를 사용하고 인증된 보안 연결을 통해서만 업데이트가 진행되도록 구성되어 있습니다. 이는 어플리케이션 소프트웨어의 원격 서비스와 업데이트를 가능하게 하고, 지속적이고 안정적인 운영을 보장합니다.

--

--