Funzionalità del dispositivo e comunicazioneDevice capabilities and communication

Le funzionalità del dispositivo determinano i criteri del sistema operativo specifici del dispositivo, ad esempio se sono consentite le comunicazioni tra computer e dispositivo.Device capabilities determine device-specific OS policies, such as whether computer-to-device communications are allowed. I produttori, gli sviluppatori di software e i tecnici dell'assistenza usano le funzionalità per sbloccare l'accesso alle funzionalità del dispositivo necessarie, garantendo al tempo stesso la protezione del dispositivo da utenti malintenzionati.Manufacturers, software developers, and field service technicians use capabilities to unlock access to the device features they require, while ensuring that the device is protected against malicious users. Le funzionalità del dispositivo vengono concesse per ogni singolo dispositivo dal servizio di sicurezza Azure Sphere.Device capabilities are granted on a per-device basis by the Azure Sphere Security Service.

Nota

Le funzionalità del dispositivo non sono correlate alle funzionalità dell'applicazione.Device capabilities are not related to application capabilities. Le funzionalità dell'applicazione specificano le risorse richieste da un'applicazione in fase di esecuzione.Application capabilities specify the resources that an application requires at runtime. Per altre informazioni sulle funzionalità dell'applicazione, vedere il manifesto dell'applicazione.See application manifest for more information about application capabilities.

Funzionalità del dispositivo predefiniteDefault device capabilities

A partire dalla versione 20,01, i produttori e gli OEM del dispositivo connesso possono bloccare le comunicazioni da computer a dispositivo, ad esempio le comunicazioni tramite USB, per impedire l'uso non autorizzato da parte di utenti che dispongono di accesso fisico al dispositivo.Starting with the 20.01 release, connected device manufacturers and OEMs can lock down computer-to-device communications (such as communications over USB) to prevent unauthorized use by those who have physical access to the device. Il blocco di tale accesso fa parte della finalizzazione del dispositivo.Locking down such access is part of device finalization. Dopo la finalizzazione, un utente può ottenere l'ID di un dispositivo, ma niente di più. Tutte le altre operazioni richiedono una funzionalità del dispositivo.After finalization, a user can get the ID of a device, but nothing more; all other operations require a device capability. La finalizzazione viene in genere eseguita in fabbrica prima che il produttore spedisca il dispositivo alla sede di un utente finale, ma in alcuni casi viene eseguita anche dai produttori di kit di sviluppo.Finalization is typically performed on the factory floor before the manufacturer ships the device to an end user site, but some dev kit manufacturers may finalize devices as well.

Se si dispone di un kit di sviluppo di Azure Sphere, le operazioni che è possibile eseguire dipendono dalla versione del sistema operativo installata nel kit e dall'eventuale finalizzazione del dispositivo da parte del produttore.If you have an Azure Sphere dev kit, the operations that you can perform depend on which version of the OS is installed on the kit and whether the manufacturer finalized the device.

  • I kit di sviluppo forniti con un sistema operativo precedente a 20,01 consentono le comunicazioni da computer a dispositivo per ottenere l'ID del dispositivo, configurare il Wi-Fi e ottenere lo stato del dispositivo.Dev kits that are shipped with a pre-20.01 OS allow computer-to-device communications to get the device ID, configure Wi-Fi, and get device status. Per trasferire localmente un pacchetto immagine o rimuoverlo oppure per arrestare, avviare o eseguire il debug di un'applicazione, è necessario usare la funzionalità appDevelopment.To sideload or remove an image package, or to stop, start, or debug an application, you need to use the appDevelopment capability.

  • I kit di sviluppo forniti con il sistema operativo 20,01 o versioni successive possono consentire la comunicazione da computer a dispositivo solo per ottenere l'ID del dispositivo o consentire la configurazione di Wi-Fi e ottenere lo stato del dispositivo, a seconda del produttore.Dev kits that are shipped with the 20.01 OS or later may allow computer-to-device communication only to get the device ID, or may allow you to configure Wi-Fi and get device status, depending on the manufacturer. In ogni caso, se si prevede di usare il kit di sviluppo per lo sviluppo di applicazioni, sarà necessario usare la funzionalità appDevelopment.Regardless, if you plan to use the dev kit for application development, you'll need to use the appDevelopment capability.

Per determinare se il kit di sviluppo sblocca la comunicazione tra computer e dispositivo, usare il comando azsphere device manufacturing-state show.To determine whether your dev kit unlocks computer-to-device communication, use the azsphere device manufacturing-state show command. Se il comando mostra che il dispositivo si trova nello stato DeviceComplete o restituisce Device access is forbidden, la comunicazione è bloccata ed è necessaria una funzionalità del dispositivo per comunicare con il dispositivo dal computer.If the command shows that the device is in the DeviceComplete state or returns Device access is forbidden, communication is locked and you need a device capability to communicate with the device from your computer.

Per determinare la configurazione della funzionalità archiviata nel dispositivo collegato, usare il comando azsphere Device Capability Show-Attached .To determine the capability configuration stored on the attached device, use the azsphere device capability show-attached command. Il comando Visualizza le funzionalità configurate utilizzando un file di funzionalità e alcune, ma non tutte, le funzionalità presenti per impostazione predefinita nelle lavagne.The command displays the capabilities configured using a capability file and some, but not all, capabilities present by default on boards.

Per un elenco completo dei comandi azsphere che richiedono una funzionalità del dispositivo, vedere Panoramica di azsphere.For a complete list of the azsphere commands that require a device capability, see Overview of azsphere.

Funzionalità appDevelopmentThe appDevelopment capability

La funzionalità del dispositivo appDevelopment sblocca la comunicazione tra computer e dispositivo e cambia il tipo di firma considerata attendibile dal dispositivo.The appDevelopment device capability unlocks computer-to-device communication and changes the type of signing that the device trusts. È progettata per essere usata durante lo sviluppo di applicazioni.It is intended for use during application development.

Per impostazione predefinita, i dispositivi Azure Sphere considerano attendibili i pacchetti immagine firmati dal produttore scaricati dal servizio di sicurezza Azure Sphere, ma non quelli firmati tramite SDK.By default, Azure Sphere devices trust production-signed image packages that are downloaded by the Azure Sphere Security Service, but do not trust SDK-signed image packages. Non è quindi possibile creare un pacchetto immagine con l'SDK e trasferirlo localmente nel dispositivo Azure Sphere per il debug, a meno che il dispositivo non disponga della funzionalità appDevelopment.Therefore, you cannot create an image package with the SDK and sideload it onto your Azure Sphere device for debugging unless the device has the appDevelopment capability. La funzionalità appDevelopment fa sì che il dispositivo consideri attendibile il pacchetto immagine e consente di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo.The appDevelopment capability causes the device to trust the image package and enables you to start, stop, debug, or remove an application from the device.

In breve, la funzionalità appDevelopment sblocca le operazioni seguenti:In summary, the appDevelopment capability unlocks the following operations:

  • Trasferire localmente un pacchetto immagine creato con Visual Studio, Visual Studio Code, l'interfaccia della riga di comando o il comando azsphere image-package.Sideloading an image package that was built with Visual Studio, Visual Studio Code, the CLI, or the azsphere image-package command.
  • Avviare, arrestare, eseguire il debug o rimuovere un pacchetto immagine dal dispositivo Azure Sphere, indipendentemente dal tipo di firma del pacchetto immagine.Starting, stopping, debugging, or removing an image package from the Azure Sphere device, regardless of how the image package is signed.

Per aggiungere la funzionalità appDevelopment durante lo sviluppo di applicazioni, usare il comando azsphere device enable-development.To add the appDevelopment capability during application development, use the azsphere device enable-development command. Questo comando sblocca le comunicazioni tra dispositivo e computer, consente il trasferimento locale e altre attività di sviluppo e sposta il dispositivo nel gruppo di dispositivi di sviluppo predefinito.This command unlocks device-to-computer communications, enables sideloading and other development activities, and moves the device to the default Development device group. Per specificare un gruppo di dispositivi diverso, aggiungere il parametro --devicegroupid o --devicegroupname.To specify a different device group, add the --devicegroupid or --devicegroupname parameter.

Quando si usa azsphere device enable-development, il dispositivo rimane sbloccato fino a quando non viene bloccato in modo esplicito.When you use azsphere device enable-development, the device remains unlocked until you explicitly lock it. Per ribloccare il dispositivo, usare il comando azsphere device enable-cloud-test.To relock the device, use the azsphere device enable-cloud-test command. Questo comando rimuove la funzionalità e modifica il gruppo di dispositivi, a seconda dei parametri della riga di comando forniti.This command removes the capability and changes the device group, depending on the command-line parameters supplied.

Se successivamente si installa il dispositivo in un sito dell'utente finale, è necessario assicurarsi che il dispositivo sia finalizzato nello stato DeviceComplete prima dell'installazione.If you later install the device at an end-user site, you should ensure that the device is finalized to the DeviceComplete state before installation. Per informazioni dettagliate, vedere Finalizzare il dispositivo di Azure Sphere e azsphere device manufacturing-state.See Finalize the Azure Sphere device and azsphere device manufacturing-state for details.

I comandi Abilita -sviluppo e azsphere del dispositivo azsphere Enable-cloud-test eseguono una sequenza di azioni che preparano rispettivamente un dispositivo per lo sviluppo e il debug o per le distribuzioni cloud.The azsphere device enable-development and azsphere device enable-cloud-test commands perform a sequence of actions that prepare a device for development and debugging or for cloud deployments, respectively. Invece di usare questi comandi, è possibile usare il comando azsphere Device Capability per scaricare o aggiornare una funzionalità del dispositivo o per individuare le funzionalità attualmente presenti in un dispositivo.Instead of using these commands, you can use the azsphere device capability command to download or update a device capability, or to find out which capabilities a device currently has.

Le funzionalità scaricate sono specifiche del dispositivo. una volta scaricati, possono essere usati ripetutamente sul dispositivo associato.Downloaded capabilities are device-specific; once downloaded, they can be used repeatedly on the associated device.

Funzionalità fieldServicingThe fieldServicing capability

La funzionalità fieldServicing sblocca le comunicazioni tra dispositivo e computer nei dispositivi che si trovano nello stato di produzione DeviceComplete.The fieldServicing capability unlocks device-to-computer communications on devices that are in the DeviceComplete manufacturing state. Non viene sbloccata la possibilità di modificare i pacchetti immagine nel dispositivo.It does not unlock the ability to manipulate image packages on the device. È concepita per l'uso a breve termine durante una sessione di manutenzione, un periodo limitato durante il quale l'accesso al dispositivo viene sbloccato.It is intended for short-term use during a servicing session, a limited period during which access to the device is unlocked.

È necessario l'accesso a Internet per scaricare la funzionalità fieldServicing per un dispositivo, ma non è necessaria una connessione tra computer e dispositivo.Internet access is required to download the fieldServicing capability for a device, but a computer-to-device connection is not required. Se è necessario effettuare la manutenzione di un dispositivo in un luogo in cui non è disponibile l'accesso a Internet, è possibile scaricare prima la funzionalità da un computer connesso a Internet.If you need to service a device in a location where internet access is not available, you can download the capability beforehand from an internet-connected computer.

Per scaricare la funzionalità per un dispositivo collegato:To download the capability for an attached device:

  1. Accedere al tenant di Azure Sphere in cui è richiesto il dispositivo.Log in to the Azure Sphere tenant in which the device is claimed.

  2. Usare il comando azsphere device capability download con i parametri --type e --output per scaricare un file delle funzionalità per il dispositivo collegato.Use the azsphere device capability download command with the --type and --output parameters to download a capability file for the attached device. Ad esempio:For example:

    azsphere device capability download --type fieldServicing --output <capability-file>

    Sostituire <capability-file> con la posizione del computer in cui archiviare il file delle funzionalità.Replace <capability-file> with the location on your computer in which to store the capability file.

Per scaricare la funzionalità per un dispositivo non collegato:To download the capability for an unattached device:

  1. Accedere al tenant di Azure Sphere in cui è richiesto il dispositivo.Log in to the Azure Sphere tenant in which the device is claimed.

  2. Usare il comando azsphere Device Capability download con i --deviceid --type parametri, e --output per scaricare un file di funzionalità per il dispositivo non collegato.Use the azsphere device capability download command with the --deviceid, --type, and --output parameters to download a capability file for the unattached device. Ad esempio:For example:

    azsphere device capability download --deviceid <deviceID> --type fieldServicing --output <capability-file>

    Sostituire <deviceID> con l'ID del dispositivo per cui è necessaria la funzionalità e <capability-file> con il percorso nel computer in cui archiviare il file delle funzionalità.Replace <deviceID> with the ID of the device for which you need the capability, and <capability-file> with the location on your computer in which to store the capability file.

Creare una sessione di manutenzioneCreate a servicing session

Per configurare o eseguire la manutenzione di un dispositivo presso la sede di un cliente, è necessario creare una sessione di manutenzione selezionando una funzionalità.To set up or service a device at a customer site, you create a servicing session by selecting a capability. Durante la sessione di manutenzione, è possibile configurare il Wi-Fi ed eseguire altre attività di manutenzione.During the servicing session, you can configure Wi-Fi and perform other maintenance tasks. Ogni volta che viene eseguito il comando azsphere durante la sessione, la funzionalità selezionata viene passata al dispositivo, sbloccando così l'accesso.Each time the azsphere command is issued during the session, the selected capability is passed to the device, thus unlocking access. Il file delle funzionalità rimane nel computer.The capability file remains on your computer. Quando la sessione di manutenzione termina, termina anche la comunicazione tra computer e dispositivo e il dispositivo viene bloccato.When the servicing session ends, so does computer-to-device communication, and the device is locked.

Per creare una sessione di manutenzione:To create a servicing session:

  • Usare il comando azsphere Device Capability Select con il parametro --filePath <capability-file> .Use the azsphere device capability select command with the --filepath <capability-file> parameter. Sostituire <capability-file> con il percorso del file specificato quando è stata scaricata la funzionalità.Replace <capability-file> with the file path you specified when you downloaded the capability.

Dopo aver selezionato il file, viene avviata la sessione.After you select the file, your session starts. Ogni volta che viene eseguito il comando azsphere durante la sessione, le informazioni sulla funzionalità vengono passate al dispositivo, sbloccando così la comunicazione.Each time the azsphere command is issued during the session, the capability information is passed to the device, thus unlocking communication. La funzionalità viene archiviata nel computer e viene associata ai dati dell'account di accesso di Windows o Linux, non all'account di accesso di Azure Sphere.The capability is stored on your computer and is associated with your Windows or Linux login data, not with your Azure Sphere login. La sessione di manutenzione si applica a tutti i comandi azsphere che vengono indirizzati al dispositivo dal computer, non solo a quelli eseguiti dal prompt dei comandi corrente.The servicing session applies to all azsphere commands that are directed at the device from your computer, not just those issued from the current command prompt.

Per terminare la sessione di manutenzione:To end the servicing session:

  • Usare il comando azsphere device capability select --noneUse the azsphere device capability select --none command

Quando questo comando riesce, le informazioni sulle funzionalità non vengono più passate al dispositivo.When this command succeeds, the capability information is no longer passed to the device. Se non si termina la sessione, la prossima volta che si esegue un comando azsphere da questo computer, la funzionalità di dispositivo corrente verrà passata insieme al comando e quindi il comando avrà esito negativo se si utilizza un dispositivo diverso.If you do not end the session, the next time you issue an azsphere command from this computer, the current device capability will be passed along with the command, and thus the command will fail if you are working with a different device. È inoltre consigliabile eliminare il file delle funzionalità dal computer.We also recommend that you delete the capability file from your computer. Se si elimina il file di funzionalità senza terminare la sessione di manutenzione, il comando successivo avviserà l'utente che il file di funzionalità selezionato è mancante e deselezionare la selezione per eventuali altri comandi.If you delete the capability file without ending the servicing session, the next command will warn you that the selected capability file is missing and clear the selection for any further commands.