IoT Core 제조 가이드
참고
이전 버전은 v5 용 IoT Core 제조 가이드를 참조 하세요.
Windows 10 IoT Core를 실행 하는 대량 생성 장치에 대해 생각 하 고 있습니까? Windows ADK IoT Core 추가 기능 을 사용 하 여 새 장치에 빠르게 깜박일 수 있는 이미지를 만듭니다.
장치를 신속 하 게 액세스 하 고 수정 하기 위한 도구를 포함 하는 테스트 이미지를 만들 수 있습니다. 테스트 이미지는 다음과 같은 경우에 적합 합니다.
- 새 장치 디자인을 시도 하는 개발자, 하드웨어 공급 업체 및 제조업체 (Oem).
- 네트워크에 연결 되지 않거나 제어 된 네트워크 환경에서 실행 되도록 설계 된 장치를 만드는 취미 및 조직
업데이트를 수신 하는 동안 공용 또는 회사 네트워크에 대해 더 안전 하 게 만들 수 있는 일반 정품 이미지를 만들 수 있습니다.
앱, 설정, 하드웨어 구성 및 보드 지원 패키지 (BSPs)를 비롯 한 사용자 지정 항목을 추가할 수 있습니다.
OEM 스타일 이미지의 경우 ’ 사용자 지정 항목을 패키지 (.cab) 파일로 래핑합니다. 패키지를 사용 하면 Oem, Odm, 개발자 및 Microsoft가 함께 작동 하 여 서로의 작업을 stomping 없이 장치에 보안 및 기능 업데이트를 제공할 수 있습니다.
Windows 10 위치 서비스를 사용 하는 IoT Core 장치는 사용자의 현재 위치 또는 현재 위치에 대 한 앱과 서비스를 알려 줍니다 ’ .
Windows 10 iotcore RS5 11 월 2019 "11 B" 릴리스 (OS 버전 17763.865)부터 IoT Core의 위치 서비스는 “ 기본적으로 off로 설정 되도록 구성 됩니다 ” . OEM 이며 위치 서비스를 켜기로 설정 하려는 경우 아래 단계를 수행 하세요. 이는 IoT Core에만 적용 됩니다.
레지스트리 키 아래에서 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManagerCapabilitieslocationedition 다음 값을 설정 합니다.
- name =
InitSystemGlobalConsentDeniedvalue = "0" valueType =REG_DWORD - name =
InitUserGlobalConsentDeniedvalue = "0" valueType =REG_DWORD
키트 빌더는 랩 1c: 이러한 레지스트리 설정을 사용 하 여 사용자 지정 이미지를 작성 하는 방법에 대 한 지침은 이미지에 파일 및 레지스트리 설정 추가 를 참조 해야 합니다.
시나리오
- IoT Core Windows 사용자 지정에 필요한 도구 가져오기
- Lab 1a: 기본 이미지 만들기
- Lab 1b: 이미지에 앱 추가
- 랩 1c: 이미지에 파일 및 레지스트리 설정 추가
- Lab 1d: 이미지에 네트워킹 및 기타 프로 비전 패키지 설정 추가
- Lab 1e: 이미지에 드라이버 추가
- Lab 1f: 소매 이미지 빌드
- 랩 2: 고유한 보드 지원 패키지 만들기
- 랩 3: 앱 업데이트
개념
IoT Core 이미지를 만들고 Windows 배포 하는 프로세스를 명확 하 게 이해 하기 위해 몇 가지 개념과 용어를 먼저 정의 해야 합니다.
Windows IoT Core 이미지를 만드는 프로세스에는 여기에 나열 된 여러 단계가 포함 됩니다.
- 이미지에 포함할 사용자 지정을 테스트 하 여 제대로 작동 하는지 확인 합니다. 여기에는 앱, 설정, 드라이버 또는 보드 지원 패키지 (BSPs)가 포함 됩니다.
- PC에 테스트 인증서를 설치 하 고 사용자 지정을 .CAB 파일로 패키지 합니다.
- IoT Core 패키지 및 하드웨어 제조업체의 업데이트와 함께 사용자 지정을 포함 하는 테스트 Windows 10 IoT Core 이미지를 만듭니다.
- 이미지를 장치로 플래시 하 고 작동 하는지 테스트 합니다. 테스트 이미지에 기본 제공 되는 테스트 도구를 사용 하 여 발생할 수 있는 문제를 해결할 수 있습니다.
- 모든 것이 제대로 작동 하는지 확인 한 후에는 유효한 정품 인증서를 얻고 소매 인증서를 사용 하 여 사용자 지정에 서명 합니다. 그런 다음 새 .CAB 파일에 사용자 지정을 다시 패키지 해야 합니다.
- 서명 된 .CAB 파일을 사용 하 여 상용 이미지를 만들고 이미지를 장치로 플래시 합니다.

용어
패키지
패키지 (.cab 파일)는 IoT Core의 논리적 구성 요소입니다. 여기에는 장치의 모든 파일, 라이브러리, 레지스트리 설정, 실행 파일 및 데이터가 포함 됩니다. 장치 드라이버에서 시스템 파일에 이르기까지 모든 구성 요소가 패키지에 포함 되어야 합니다. 이 모듈형 아키텍처를 사용 하면 업데이트를 정확 하 게 제어할 수 있습니다. 패키지는 장치에서 가장 적은 수의 관리 단위입니다.
각 패키지에는 다음이 포함 됩니다.
- 서명 된 드라이버 이진 또는 서명 된 appx 이진과 같은 패키지의 내용입니다.
- 패키지 정의 파일 (wm.xml)은 패키지의 내용과 최종 이미지에 배치 해야 하는 위치를 지정 합니다. 패키지 파일의 다양 한 샘플은 Windows ADK IoT Core 추가 기능 키트 의% SRC_DIR% \ package \ 디렉터리를 참조 하세요. 예를 들어 Appx.IoTCoreDefaultApp.wm.xml를 살펴보세요.
- 서명입니다. 패키지는 테스트 또는 소매점 인증서로 서명할 수 있습니다.
pkggen도구는 이러한 항목을 서명 된 패키지로 결합 합니다. 이 샘플에는 createpkgcreateprovpkg pkggen를 호출 하 여 드라이버, 앱 및 설정에 대 한 패키지를 만드는 스크립트가 포함 되어 있습니다.
기능 매니페스트 (FMs)
패키지에 모든 항목을 추가한 후에 기능 매니페스트 (FM 파일)를 사용 하 여 최종 이미지에 속하는 패키지의 목록을 표시 합니다.
원하는 만큼 이미지에 대 한 여러 개의 FMs를 사용할 수 있습니다. 이 가이드에서는 다음 FMs를 참조 합니다.
- OEMFM.xml 에는 앱 및 프로 비전 패키지와 같이 OEM이 장치에 추가할 수 있는 기능이 포함 되어 있습니다.
- BSPFM.xml 에는 하드웨어 제조업체가 보드를 정의 하는 데 사용할 수 있는 기능이 포함 되어 있습니다. 예를 들어 OEM_RPi2FM.xml에는 Raspberry Pi 2에 사용 되는 모든 기능이 포함 되어 있습니다.
다음 태그를 사용 하 여 추가할 기능을 나열 합니다.
- <BasePackages > : 이미지에 항상 포함 하는 패키지 (예: 기본 앱)입니다.
- <기능 > \ < OEM > : 특정 제품 설계와 관련 될 수 있는 다른 개별 패키지입니다.
기능 병합기 도구는 장치를 서비스 하는 데 필요한 기능 식별자 패키지를 생성 합니다. FM 파일이 변경 될 때마다이 도구를 실행 합니다. OEM FM 또는 OEM COMMON FM 파일을 변경한 후를 실행 buildfm oem 합니다. BSPFM 파일을 변경한 후를 실행 buildfm bsp <bspname> 합니다. 이러한 명령은 IoT Core 셸에서 실행 됩니다.
보드 지원 패키지 (BSPs)
보드 지원 패키지에는 일반적으로 보드 제조업체에서 제공 하는 특정 보드에 대 한 소프트웨어, 드라이버 및 부팅 구성 집합이 포함 되어 있습니다. 보드 제조업체는 장치에서 수신 및 적용할 수 있는 보드의 업데이트를 주기적으로 제공할 수 있습니다. 보드 제조업체에서 제공 하지 않는 경우 사용자 고유의 BSP를 만들 수도 있고 해당 하는 소프트웨어 및 드라이버 파일 집합을 사용할 수도 있습니다. 지원 되는 BSPs는 여기에 나열 되어 있습니다.
전체 플래시 업데이트 이미지 파일
FFU (전체 플래시 업데이트) 파일은 배포할 수 있는 이미지 파일 (즉,)입니다. "플래시")를 특정 하드웨어 장치에 연결할 수 있습니다. FFU 파일을 장치로 플래시 하면 모든 필수 소프트웨어가 동시에 해당 장치에 설치 됩니다. ffu 이미지 파일은 부팅 로더, Windows 운영 체제, 드라이버, 주변 장치 이미지 및 기타 필수 파일을 단일 패키지로 묶습니다.
포그라운드 및 백그라운드 앱
Windows IoT Core에서 실행할 수 있는 응용 프로그램에는 두 가지 유형이 있습니다.
- 포그라운드 앱-이러한 앱에는 UI가 있습니다. IoT 장치에서 하나의 앱만 포그라운드 앱으로 실행할 수 있습니다. 여러 포그라운드 앱이 이미지에 포함 된 경우 부팅 시 자동으로 시작 되도록 설정 해야 합니다.
- 백그라운드 앱-이러한 앱에는 UI가 없습니다. 여러 앱은 IoT 장치에서 백그라운드 앱으로 실행 될 수 있습니다. 자동으로 시작 하도록 원하는 수의 백그라운드 앱을 구성할 수 있습니다.
자세한 내용은 포그라운드 앱 또는 백그라운드 앱을 참조 하세요.
이미지 만들기: ImgGen 및 이미지 구성 파일 (OEMInput.xml)
최종 이미지를 만들려면 imggen 이미지 구성 파일 imggen을 사용 하 여 도구를 사용 합니다.
이미지 구성 파일 목록:
각 기능에서 설치 하려는 FMs (기능 매니페스트) 및 패키지입니다.
장치 파티션을 설정 하는 데 사용 되는 SoC 칩 식별자입니다. Soc 에 대해 지원 되는 값은 devicelayoutpackages 아래의 해당 하는 bspfm.xml에 정의 되어 > 있습니다.
디바이스 레이아웃을 선택하는 데 사용되는 디바이스 식별자입니다. 디바이스에 대해 지원되는 값은 해당 bspfm.xml oemdeviceplatformpackages 아래에 > 정의됩니다.
ReleaseType(프로덕션 또는 테스트)입니다.
소매 빌드:출시 준비가 되면 모든 것이 작동하는지 확인하기 위해 개발 프로세스 초기에 소매 이미지를 만드는 것이 좋습니다.
이러한 빌드에는 사용하도록 설정된 모든 보안 기능이 포함됩니다.
이 빌드 형식을 사용하려면 모든 코드가 일반 정품(테스트가 아닌) 코드 서명 인증서를 사용하여 서명되어야 합니다.
샘플은 %SRC_DIR%\Products\SampleA\RetailOEMInput.xml.
빌드 테스트:사용자와 하드웨어 제조업체 파트너가 만든 새 버전의 앱 및 드라이버를 사용해 볼 수 있습니다.
이러한 빌드에는 일부 보안 기능을 사용하지 않도록 설정하여 테스트 서명 또는 프로덕션 서명 패키지를 사용할 수 있습니다.
이러한 빌드에는 문제 해결에 사용할 수 있는 디버그 전송, SSH 및 PowerShell과 같은 개발자 도구도 포함됩니다.
샘플은 %SRC_DIR%\Products\SampleA\TestOEMInput.xml.
| 영역 | 소매 빌드 | 빌드 테스트 |
|---|---|---|
| 이미지 릴리스 유형 | ReleaseType: 프로덕션 | ReleaseType: 테스트 |
| 패키지 릴리스 유형 | 프로덕션 유형 패키지만 지원됩니다. | 프로덕션 유형 또는 테스트 유형이 모두 지원됩니다. |
| 테스트 서명된 패키지 | 지원되지 않음 | 지원되는 IOT_ENABLE_TESTSIGNING 기능을 포함해야 합니다. |
| 코드 무결성 검사 | 지원됨. 기본적으로 사용하도록 설정됩니다. | 지원됨. 기본적으로 정책이 적용되지 않습니다. |