Funzionalità e comunicazione del dispositivo
Le funzionalità del dispositivo determinano i criteri del sistema operativo specifici del dispositivo per la comunicazione UART-servizio . Tutta la comunicazione tra il computer host e un dispositivo collegato avviene tramite il servizio UART. Il computer host comunica con un dispositivo collegato per eseguire operazioni sul dispositivo. Produttori, sviluppatori di software e tecnici dell'assistenza sul campo usano le funzionalità per sbloccare le comunicazioni UART del servizio per le operazioni di cui hanno bisogno, assicurando al contempo che il dispositivo sia protetto da utenti malintenzionati.
I produttori di dispositivi e gli OEM possono bloccare le comunicazioni UART-servizio per impedire l'uso non autorizzato da parte di utenti che hanno accesso fisico al dispositivo. Il blocco di tale comunicazione fa parte della finalizzazione del dispositivo. 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. La finalizzazione viene in genere eseguita in fabbrica prima che il produttore spedi il dispositivo a un sito del cliente.
Un file di funzionalità del dispositivo contiene zero o più funzionalità solo per un singolo dispositivo. Il file di funzionalità non funzionerà se applicato a un dispositivo che non è quello a cui è destinato. Un dispositivo può disporre delle funzionalità seguenti, ognuna delle quali è descritta più avanti in questo argomento:
Nota
Le funzionalità del dispositivo non sono correlate alle funzionalità dell'applicazione. Le funzionalità dell'applicazione specificano le risorse necessarie a un'applicazione in fase di esecuzione. Per altre informazioni sulle funzionalità dell'applicazione, vedere manifesto dell'applicazione .
Come determinare le funzionalità del dispositivo o lo stato di produzione
Per determinare la configurazione della capacità memorizzata sul dispositivo collegato, utilizza il comando show-attached della funzionalità del dispositivo az sphere . Il comando visualizza le funzionalità configurate usando un file di funzionalità e alcune funzionalità, ma non tutte, presenti per impostazione predefinita nelle bacheche.
Le funzionalità del dispositivo possono essere influenzate dallo stato di produzione del dispositivo. Per determinare lo stato di produzione del dispositivo, utilizzare il comando show show della sfera az. Se il comando indica che il dispositivo si trova nello stato di produzione di DeviceComplete o restituisce Device access is forbidden
, la comunicazione service-UART è bloccata ed è necessaria una funzionalità del dispositivo per comunicare con il dispositivo dal computer. Quando un dispositivo si trova nello stato di produzione di DeviceComplete , le operazioni di produzione sono consentite solo quando il dispositivo è sbloccato tramite un file di funzionalità.
Nota
Se installi un dispositivo in un sito del cliente, assicurati che il dispositivo venga finalizzato allo stato di produzione di DeviceComplete prima dell'installazione. Vedi Finalizzare il dispositivo Azure Sphere.
Lo stato di fabbricazione di DeviceComplete non è in genere appropriato per un kit di sviluppo. Per consentire il test delle operazioni di produzione in fase di sviluppo da parte di tecnici di produzione, un kit di sviluppo deve essere nello stato di produzione Vuoto o nello stato di produzione Module1Complete .
In che modo i dispositivi acquisiscono funzionalità
I dispositivi possono acquisire funzionalità in uno dei tre modi seguenti:
Aperto per impostazione predefinita. Un dispositivo in stato di produzione Vuoto o Modulo1Completamento include alcune funzionalità aperte per impostazione predefinita. Questa operazione viene eseguita in modo che i dispositivi ancora nella fase di produzione non debbano essere connessi al cloud o rivendicati nei cataloghi, come richiesto dal processo di utilizzo dei file di funzionalità del dispositivo per sbloccare le funzionalità. Man mano che la produzione avanza, i produttori possono modificare lo stato di produzione del dispositivo per bloccare le funzionalità non più appropriate, come descritto nelle attività di produzione.
Sideload sul dispositivo. Un dispositivo potrebbe avere un file di funzionalità caricato localmente nel dispositivo dal computer host. Utilizza il comando di download della funzionalità di download della sfera az per recuperare il file di funzionalità. Questo set di funzionalità sideload persiste finché non viene sideload un nuovo file di funzionalità (che potrebbe essere un file vuoto senza funzionalità). Questa è la situazione usuale durante lo sviluppo dell'applicazione, ad esempio, quando viene eseguito il comando di abilitazione-sviluppo del dispositivo az sphere . Lo sviluppo di applicazioni è aiutato dalla presenza del dispositivo in uno stato sbloccato in cui lo sviluppatore può eseguire operazioni come il debug e facilmente eliminare e distribuire versioni sideload dell'applicazione.
Passato al dispositivo con ogni operazione. A un dispositivo possono essere applicate funzionalità selezionate localmente per ogni operazione. Il comando az sphere device apply seleziona un file di funzionalità archiviato localmente nel computer host. Una volta eseguito questo comando, la funzionalità selezionata viene passata dal computer al dispositivo con ogni comando successivo. Questo è il modo consigliato per usare le funzionalità per i dispositivi che si trovano nel campo perché le funzionalità sono archiviate nel computer anziché nel dispositivo. Il rischio che un tecnico sul campo lasci accidentalmente il dispositivo in uno stato non protetto dimenticando di rimuovere la funzionalità viene evitato.
Prima che un file di funzionalità possa essere sideload su un dispositivo o passato a un dispositivo con un'operazione, deve essere scaricato da Azure Sphere Security Service (AS3), come descritto in Apportare modifiche a un dispositivo dopo la produzione. I file delle funzionalità scaricate sono specifici del dispositivo; dopo il download, un file di funzionalità può essere usato ripetutamente nel dispositivo associato.
Funzionalità enableRfTestMode
La funzionalità enableRfTestMode è presente per impostazione predefinita nel dispositivo quando lo stato di produzione del dispositivo è Vuoto. Questa funzionalità consente la programmazione di fusibili e la configurazione e test del funzionamento RF. I proprietari del catalogo non possono scaricare questa funzionalità in un computer host. Se hai bisogno di questa funzionalità, contatta il tuo rappresentante Microsoft.
Quando lo stato di produzione del dispositivo è Vuoto, la funzionalità del dispositivo az sphere mostra il comando enableRfTestMode .
La funzionalità AppSviluppo
AppLa funzionalità di sviluppo del dispositivo sblocca la comunicazione service-UART e modifica il tipo di firma attendibile per il dispositivo. È destinato all'uso durante lo sviluppo di applicazioni.
Per impostazione predefinita, i dispositivi Azure Sphere si fidano dei pacchetti di immagini firmati dalla produzione scaricati dal servizio Azure Sphere Security Service, ma non considera attendibili i pacchetti di immagini firmati con SDK. Pertanto, non è possibile creare un pacchetto di immagini con l'SDK e sideload sul dispositivo Azure Sphere per il debug a meno che il dispositivo non dispone della funzionalità appSviluppo . La funzionalità appSviluppo consente al dispositivo di considerare attendibile il pacchetto di immagini e consente di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo.
In sintesi, la funzionalità di sviluppo dell'app sblocca le comunicazioni service-UART per consentire le operazioni seguenti:
Sideload di un pacchetto di immagini creato con Visual Studio, Visual Studio Code, CLI o il comando az sphere image-package .
Avvio, arresto, debug o rimozione di un pacchetto di immagini dal dispositivo Azure Sphere, indipendentemente da come è firmato il pacchetto di immagini.
Per aggiungere la funzionalità AppSviluppo , usa il comando enable-development del dispositivo az sphere . Questo comando scarica la funzionalità Disviluppo dell'app per il dispositivo collegato, sposta la funzionalità nel dispositivo e sposta il dispositivo nel gruppo di dispositivi di sviluppo predefinito. Per specificare un gruppo di dispositivi diverso, includere il --device-group
parametro.
Quando si utilizza il dispositivo az sphere enable-development, il dispositivo rimane sbloccato fino a quando non lo si blocca esplicitamente. Per ribloccare il dispositivo, usa il comando az sphere device enable-cloud-test . Questo comando rimuove la funzionalità e modifica il gruppo di dispositivi, a seconda dei parametri della riga di comando forniti.
Il dispositivo az sphere enable-development e az sphere device enable-cloud-test comandi eseguono una sequenza di azioni che preparano un dispositivo per lo sviluppo e il debug o per distribuzioni cloud, rispettivamente. Invece di usare questi comandi, puoi utilizzare il comando di funzionalità del dispositivo az sphere per scaricare o aggiornare una funzionalità del dispositivo o per scoprire quali funzionalità ha attualmente un dispositivo.
Funzionalità Diservicing dei campi
La funzionalità Diservicing campo è presente in un dispositivo per impostazione predefinita quando il dispositivo ha uno stato di produzione vuoto o Module1Complete. Quando un dispositivo si trova nello stato di produzione di DeviceComplete , la funzionalità di manutenzione del campo può essere sideload, ma in genere viene passata al dispositivo con ogni operazione durante una sessione di manutenzione. Per informazioni dettagliate su come avviare una sessione di manutenzione, vedi Apportare modifiche a un dispositivo dopo la produzione.
Indipendentemente dallo stato di produzione del dispositivo, la funzionalità manutenzione campo sblocca le comunicazioni UART-servizio per consentire le operazioni seguenti:
- Sideload di un pacchetto di immagini con firma di produzione.
- Avvio, arresto ed eliminazione di un pacchetto di immagini con firma di produzione contrassegnato come temporaneo.
- Esecuzione di attività di manutenzione di routine, ad esempio la configurazione di una rete Wi-Fi.
Sebbene la funzionalità Diservicing campo sia presente per impostazione predefinita nel dispositivo quando lo stato di produzione del dispositivo è Vuoto o Module1Complete, la funzionalità az sphere device show-attached comando non visualizza la funzionalità Diservicing campo .
Dipendenza da un keystore attendibile aggiornato
Quando un file di funzionalità viene creato da AS3, viene firmato usando la chiave di firma dell'immagine corrente. Ogni dispositivo dispone di un keystore attendibile nell'ambito del sistema operativo in cui vengono conservate tali chiavi. Tuttavia, se il dispositivo non è connesso a Internet, è possibile che una funzionalità non sia attendibile dal dispositivo di destinazione se il keystore attendibile del dispositivo non è aggiornato.
Per risolvere il problema, un metodo consiste nel consentire al dispositivo di connettersi a Internet in modo che aggiorni il keystore attendibile. Connetti il dispositivo a Internet e premi Reimposta per attivare un aggiornamento del sistema operativo.
Se questo non è possibile, è possibile trasferire in sideload di un keystore attendibile aggiornato. A tale scopo, accettare le condizioni di licenza , quindi scaricare le immagini di ripristino del sistema operativo più recenti e da questo file ZIP estrarre solo il file "trusted-keystore.bin". Quindi puoi usare il comando az sphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> per sideload del keystore attendibile e la funzionalità dovrebbe ora essere attendibile dal dispositivo.
Un terzo metodo è Recuperare il software di sistema per aggiornare il sistema operativo Azure Sphere all'ultima versione rilasciata, incluso l'ultimo keystore attendibile.