Funkcje urządzenia i komunikacja
Funkcje urządzenia określają zasady dotyczące specyficznych dla urządzenia systemów operacyjnych dla komunikacji service-UART . Cała komunikacja między komputerem-hostem a dołączonym urządzeniem odbywa się za pośrednictwem usługi UART. Komputer-host komunikuje się z dołączonym urządzeniem w celu wykonywania operacji na urządzeniu. Producenci, deweloperzy oprogramowania i technicy usług terenowych używają funkcji do odblokowywania komunikacji service-UART na potrzeby operacji, których wymagają, zapewniając jednocześnie ochronę urządzenia przed złośliwymi użytkownikami.
Producenci urządzeń i producenci OEM mogą zablokować komunikację service-UART, aby zapobiec nieautoryzowanemu użyciu przez tych, którzy mają fizyczny dostęp do urządzenia. Zablokowanie takiej komunikacji jest częścią finalizacji urządzenia. Po zakończeniu użytkownik może uzyskać identyfikator urządzenia, ale nic więcej; wszystkie inne operacje wymagają obsługi urządzenia. Finalizacja jest zazwyczaj wykonywana w fabryce, zanim producent przekaże urządzenie do witryny klienta.
Plik funkcji urządzenia zawiera zero lub więcej możliwości tylko dla jednego urządzenia. Plik funkcji nie będzie działać, jeśli zostanie zastosowany do urządzenia, które nie jest tym, dla którego jest przeznaczony. Urządzenie może mieć następujące możliwości, z których każda jest opisana w dalszej części tego tematu:
Uwaga
Funkcje urządzenia nie są związane z możliwościami aplikacji. Funkcje aplikacji określają zasoby wymagane przez aplikację w czasie wykonywania. Aby uzyskać więcej informacji o możliwościach aplikacji, zobacz manifest aplikacji .
Jak określić możliwości urządzenia lub stan produkcji
Aby określić konfigurację możliwości przechowywaną na dołączonym urządzeniu, użyj polecenia az sphere device capability show-attached . Polecenie wyświetla możliwości skonfigurowane przy użyciu pliku funkcji oraz niektóre (ale nie wszystkie) funkcje domyślnie obecne na tablicach.
Na możliwości urządzenia może mieć wpływ stan produkcji urządzenia. Aby określić stan produkcji urządzenia, użyj polecenia pokazu az sphere device manufacturing-state . Jeśli polecenie pokazuje, że urządzenie jest w stanie produkcji DeviceComplete lub zwraca Device access is forbidden
, komunikacja service-UART jest zablokowana i potrzebujesz funkcji urządzenia do komunikowania się z urządzeniem z komputera. Gdy urządzenie jest w stanie produkcji DeviceComplete, operacje produkcyjne są dozwolone tylko wtedy, gdy urządzenie jest odblokowane za pośrednictwem pliku funkcji.
Uwaga
Jeśli zainstalujesz urządzenie w witrynie klienta, przed instalacją upewnij się, że urządzenie zostało sfinalizowane w stanie produkcji DeviceComplete . Zobacz Finalizowanie urządzenia Azure Sphere.
Stan manufacuringu DeviceComplete zwykle nie jest odpowiedni dla zestawu deweloperów. Aby umożliwić testowanie operacji produkcyjnych opracowywanych przez inżynierów produkcji, zestaw deweloperów powinien znajdować się w stanie Produkcji pustej lub Module1Complete .
Jak urządzenia uzyskują możliwości
Urządzenia mogą uzyskiwać możliwości na jeden z trzech sposobów:
Otwarte domyślnie. Urządzenie, które jest w stanie Produkcji puste lub Module1Ukończ produkcji ma pewne możliwości otwarte domyślnie. Dzieje się tak, że urządzenia, które są jeszcze na etapie produkcji, nie muszą być podłączone do chmury ani pobrane do katalogów, co jest wymagane przez proces korzystania z plików funkcji urządzenia w celu odblokowania możliwości. W miarę postępu produkcji producenci mogą zmienić stan produkcji urządzenia, aby zablokować funkcje, które nie są już odpowiednie, zgodnie z opisem w temacie Zadania na hali produkcyjnej.
Załadowane bezpośrednio do urządzenia. Urządzenie może mieć plik funkcji załadowany bezpośrednio do urządzenia z komputera hosta. Użyj polecenia pobierania funkcji urządzenia azsphere , aby pobrać plik funkcji. Ten zestaw funkcji ładowanych lokalnie utrzymuje się do momentu, aż zostanie załadowany nowy plik funkcji (który może być pustym plikiem bez możliwości). Jest to zwykła sytuacja podczas tworzenia aplikacji, na przykład po uruchomieniu polecenia az sphere device enable-development . Tworzenie aplikacji jest wspomagane przez posiadanie urządzenia w stanie odblokowanym, w którym deweloper może wykonywać operacje takie jak debugowanie oraz łatwe usuwanie i wdrażanie wersji aplikacji ładowanych lokalnie.
Przekazywane do urządzenia przy każdej operacji. Urządzenie może korzystać z wybranych lokalnie funkcji w zależności od operacji. Polecenie AZ sphere device capability apply wybiera plik funkcji, który jest przechowywany lokalnie na komputerze hosta. Po uruchomieniu tego polecenia wybrana funkcja jest przekazywana z komputera do urządzenia z każdym kolejnym poleceniem. Jest to zalecany sposób korzystania z funkcji dla urządzeń znajdujących się w polu, ponieważ funkcje są przechowywane na komputerze, a nie na urządzeniu. Unika się ryzyka przypadkowego opuszczenia urządzenia przez inżyniera polowego w stanie niezabezpieczonym, zapominając o usunięciu tej funkcji.
Aby plik funkcji mógł zostać załadowany bezpośrednio na urządzenie lub przekazany do urządzenia z operacją, musi zostać pobrany z usługi zabezpieczeń Azure Sphere (AS3), zgodnie z opisem w artykule Wprowadzanie zmian na urządzeniu po zakończeniu produkcji. Pobrane pliki funkcji są specyficzne dla urządzenia; po pobraniu plik funkcji może być wielokrotnie używany na skojarzonym urządzeniu.
Funkcja EnableRfTestMode
Funkcja enableRfTestMode jest domyślnie dostępna na urządzeniu, gdy stan produkcji urządzenia jest pusty. Ta funkcja umożliwia programowanie bezpieczników e-bezpieczników oraz konfigurację i testowanie operacji RF. Właściciele wykazów nie mogą pobrać tej funkcji na komputer hosta. Jeśli potrzebujesz tej możliwości, skontaktuj się z przedstawicielem firmy Microsoft.
Gdy stan produkcji urządzenia jest pusty, polecenie az sphere device capability show-attached wyświetla funkcjęRfTestMode .
Funkcja appDevelopment
Funkcja appDevelopment urządzenia odblokowuje komunikację service-UART i zmienia typ podpisu zaufanego przez urządzenie. Jest on przeznaczony do użycia podczas tworzenia aplikacji.
Domyślnie urządzenia Azure Sphere ufają pakietom obrazów podpisanym przez produkcję, które są pobierane przez usługę zabezpieczeń Azure Sphere, ale nie ufają pakietom obrazów podpisanym przez zestaw SDK. Dlatego nie można utworzyć pakietu obrazów z zestawem SDK i pobrać go na urządzenie Azure Sphere do debugowania, chyba że urządzenie ma funkcję rozwoju aplikacji . Funkcja appDevelopment powoduje, że urządzenie ufa pakietowi obrazów i umożliwia uruchomienie, zatrzymanie, debugowanie lub usunięcie aplikacji z urządzenia.
Podsumowując, funkcja appDevelopment odblokowuje komunikację service-UART, aby umożliwić następujące operacje:
Ładowanie bezpośrednie pakietu obrazów, który jest zbudowany za pomocą visual studio, Visual Studio Code, cli lub az sphere image-package polecenia.
Uruchamianie, zatrzymywanie, debugowanie lub usuwanie pakietu obrazów z urządzenia Azure Sphere, niezależnie od sposobu podpisania pakietu obrazów.
Aby dodać funkcję appDevelopment , użyj polecenia az sphere device enable-development . To polecenie pobiera funkcję appDevelopment dla podłączonego urządzenia, pobiera ją na urządzenie i przenosi do domyślnej grupy urządzeń deweloperów. Aby określić inną grupę urządzeń, uwzględnij --device-group
parametr.
Gdy używasz az sphere device enable-development, urządzenie pozostaje odblokowane, dopóki go jawnie nie zablokujesz. Aby ponownie zablokować urządzenie, użyj polecenia az sphere device enable-cloud-test . To polecenie powoduje usunięcie funkcji i zmianę grupy urządzeń w zależności od podanych parametrów wiersza polecenia.
Az sphere device enable-development and az sphere device enable-cloud-test commands perform a sequence of actions that prepare a device for development and debugging or for cloud deployments, respectively. Zamiast używać tych poleceń, możesz użyć polecenia funkcji urządzenia az sphere , aby pobrać lub zaktualizować funkcję urządzenia lub dowiedzieć się, jakie możliwości ma obecnie urządzenie.
Funkcja fieldServicing
Funkcja fieldServicing jest domyślnie dostępna na urządzeniu, gdy urządzenie ma stan produkcji Pusty lub Moduł1Ukończ. Gdy urządzenie jest w stanie produkcji DeviceComplete , fieldServicing możliwości mogą być ładowane sideloaded, ale jest zazwyczaj przekazywane do urządzenia z każdej operacji podczas sesji serwisowania. Aby uzyskać szczegółowe informacje na temat rozpoczynania sesji serwisowania, zobacz Wprowadzanie zmian w urządzeniu po zakończeniu produkcji.
Niezależnie od stanu produkcji urządzenia funkcja fieldServicing odblokowuje komunikację service-UART w celu umożliwienia następujących operacji:
- Ładowanie bezpośrednie pakietu obrazów z podpisem produkcyjnym.
- Uruchamianie, zatrzymywanie i usuwanie pakietu obrazów z podpisem produkcyjnym, który jest oznaczony jako tymczasowy.
- Wykonywanie rutynowych zadań konserwacji, takich jak konfigurowanie sieci Wi-Fi.
Mimo że funkcja fieldServicing jest domyślnie obecna na urządzeniu, gdy stan produkcji urządzenia jest pusty lub Moduł1Ukończanie, polecenie dołączone do urządzenia az sphere nie wyświetla możliwości fieldServicing .
Współzależności w aktualnej zaufanej witrynie kluczy
Gdy plik funkcji jest tworzony przez as3, jest podpisany przy użyciu bieżącego klucza podpisywania obrazu. Każde urządzenie ma zaufany klucztor jako część systemu operacyjnego, w którym te klucze są przechowywane. Jeśli jednak urządzenie nie jest połączone z Internetem, można nie ufać możliwości przez urządzenie, do których jest przeznaczone, jeśli zaufany klucztor tego urządzenia jest nieaktualny.
Aby rozwiązać ten problem, jedną z metod jest zezwolenie urządzeniu na połączenie się z Internetem, aby zaktualizować zaufaną witrynę keystore. Połącz urządzenie z Internetem i naciśnij klawisz Resetuj , aby uruchomić aktualizację systemu operacyjnego.
Jeśli nie jest to możliwe, możesz załadować ponownie zaktualizowaną zaufaną listę kluczy. W tym celu zaakceptuj postanowienia licencyjne , a następnie pobierz najnowsze obrazy odzyskiwania systemu operacyjnego i z tego pliku zip wyodrębnij tylko plik "trusted-keystore.bin". Następnie możesz użyć polecenia az sphere device sideload deploy -- image-package <path-to-trustedkeystore.bin-file> , aby pobrać sideload zaufanego keytore, a funkcja powinna być teraz zaufana przez urządzenie.
Trzecia metoda to Odzyskiwanie oprogramowania systemowego w celu zaktualizowania systemu operacyjnego Azure Sphere do najnowszej wydanej wersji, w tym najnowszej zaufanej witryny keystore.