IoT Core 제조 가이드
참고
이전 버전은 v5.x용 IoT Core 제조 가이드를 참조하세요.
Windows 10 IoT Core를 실행하는 대량 생산 디바이스를 고려 중인가요? Windows ADK IoT Core 추가 기능을 사용하여 새 디바이스에 빠르게 플래시할 수 있는 이미지를 만듭니다.
디바이스에 빠르게 액세스하고 수정하기 위한 도구가 포함된 테스트 이미지를 만들 수 있습니다. 테스트 이미지는 다음에 적합합니다.
- 새로운 디바이스 설계를 시도하는 개발자, 하드웨어 공급업체 및 제조업체(OEM).
- 네트워크로 연결되지 않거나 제어되는 네트워크 환경에서 실행되도록 설계된 디바이스를 만드는 취미 활동가 및 조직입니다.
업데이트를 수신하면서 공용 또는 회사 네트워크를 더욱 안전하게 보호할 수 있는 소매 이미지를 만들 수 있습니다.
앱, 설정, 하드웨어 구성 및 BSP(보드 지원 패키지)를 포함한 사용자 지정을 추가할 수 있습니다.
OEM 스타일 이미지의 경우 사용자 지정 내용을 패키지(.cab) 파일로 래핑합니다. 패키지를 사용하면 OEM, ODM, 개발자 및 Microsoft가 협력하여 서로의 작업을 방해하지 않고 디바이스에 보안 및 기능 업데이트를 제공할 수 있습니다.
Windows 10 위치 서비스가 포함된 IoT Core 디바이스는 현재 위치 또는 있었던 위치를 앱 및 서비스에 알려줍니다.
Windows 10 IoTCore RS5 2019년 11월 "11 B" 릴리스(OS 버전 17763.865)부터 IoT Core의 위치 서비스는 기본적으로 "꺼짐"으로 설정되도록 구성됩니다. OEM이고 위치 서비스를 켜고 싶다면 아래 단계를 따릅니다. 이는 IoT Core에만 적용됩니다.
레지스트리 키 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManagerCapabilitieslocationedition
에서 다음 값을 설정합니다.
- name=
InitSystemGlobalConsentDenied
value="0" valueType=REG_DWORD
- name=
InitUserGlobalConsentDenied
value="0" valueType=REG_DWORD
키트 빌더는 랩 1c: 이미지에 파일 및 레지스트리 설정 추가하기에서 이러한 레지스트리 설정을 사용하여 사용자 지정 이미지를 빌드하는 방법에 대한 지침을 참조해야 합니다.
시나리오
- Windows IoT Core를 사용자 지정하는 데 필요한 도구 가져오기
- 랩 1a: 기본 이미지 만들기
- 랩 1b: 이미지에 앱 추가
- 랩 1c: 이미지에 파일 및 레지스트리 설정 추가
- 랩 1d: 이미지에 네트워킹 및 기타 프로비저닝 패키지 설정 추가
- 랩 1e: 이미지에 드라이버 추가
- 랩 1f: 소매 이미지 구축
- 랩 2: 나만의 보드 지원 패키지 만들기
- 랩 3: 앱 업데이트
개념
Windows IoT Core 이미지를 만들고 배포하는 프로세스를 명확하게 이해하려면 먼저 몇 가지 개념과 용어를 정의해야 합니다.
Windows IoT Core 이미지를 만드는 프로세스에는 다음과 같은 여러 단계가 포함됩니다.
- 이미지에 포함할 모든 사용자 지정을 테스트하여 제대로 작동하는지 확인합니다. 여기에는 앱, 설정, 드라이버 또는 BSP(보드 지원 패키지)가 포함됩니다.
- PC에 테스트 인증서를 설치하고 사용자 지정 내용을 .CAB 파일로 패키지합니다.
- 사용자 지정 항목이 포함된 테스트 Windows 10 IoT Core 이미지를 IoT Core 패키지 및 하드웨어 제조업체의 업데이트와 함께 만듭니다.
- 이미지를 디바이스에 플래시하고 작동하는지 테스트합니다. 테스트 이미지에 기본 제공된 테스트 도구를 사용하여 발생할 수 있는 문제를 해결할 수 있습니다.
- 모든 것이 제대로 작동하는지 확인한 후 유효한 소매 인증서를 얻고 소매 인증서로 사용자 지정에 서명합니다. 그런 다음 사용자 지정을 새 .CAB 파일로 다시 패키지해야 합니다.
- 서명된 .CAB 파일로 소매 이미지를 만들고 이미지를 디바이스에 플래시합니다.
용어
패키지
패키지(.cab 파일)는 IoT Core의 논리적 빌딩 블록입니다. 여기에는 디바이스의 모든 파일, 라이브러리, 레지스트리 설정, 실행 파일 및 데이터가 포함됩니다. 디바이스 드라이버에서 시스템 파일에 이르기까지 모든 구성 요소는 패키지에 포함되어야 합니다. 이 모듈식 아키텍처를 통해 업데이트를 정밀하게 제어할 수 있습니다. 패키지는 디바이스에서 서비스할 수 있는 가장 작은 단위입니다.
각 패키지에는 다음이 포함됩니다.
- 서명된 드라이버 바이너리 또는 서명된 appx 바이너리와 같은 패키지 콘텐츠입니다.
- 패키지 정의(.wm.xml) 파일은 패키지의 내용과 최종 이미지에서 해당 내용을 배치해야 하는 위치를 지정합니다. 다양한 패키지 파일 샘플은 Windows ADK IoT Core 추가 기능 키트의 %SRC_DIR%\Packages\ 디렉터리를 참조하세요. 예를 들어 Appx.IoTCoreDefaultApp.wm.xml을 살펴보세요.
- 서명. 패키지는 테스트 또는 소매 인증서로 서명할 수 있습니다.
pkggen
도구는 이러한 항목을 서명된 패키지로 결합합니다. 샘플에는 드라이버, 앱 및 설정에 대한 패키지를 만들기 위해 pkggen을 호출하는 스크립트(createpkg
및 createprovpkg
)가 포함됩니다.
FM(기능 매니페스트)
모든 것을 패키지에 넣은 후에는 FM(기능 매니페스트) 파일을 사용하여 최종 이미지에 속하는 패키지를 나열합니다.
원하는 만큼 이미지에 FM을 사용할 수 있습니다. 이 가이드에서는 다음 FM을 참조하세요.
- 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 셸에서 실행됩니다.
BSP(보드 지원 패키지)
보드 지원 패키지에는 일반적으로 보드 제조업체에서 제공하는 특정 보드에 대한 소프트웨어, 드라이버 및 부팅 구성 세트가 포함되어 있습니다. 보드 제조업체는 보드에 대한 업데이트를 주기적으로 제공할 수 있으며, 사용자의 디바이스는 이를 수신하고 적용할 수 있습니다. 보드 제조업체가 BSP를 제공하지 않고 해당 소프트웨어 및 드라이버 파일 세트가 있는 경우 고유한 BSP를 작성할 수도 있습니다. 지원되는 BSP는 여기에 나열되어 있습니다.
전체 플래시 업데이트 이미지 파일
FFU(전체 플래시 업데이트) 파일은 특정 하드웨어 디바이스에 배포(즉 "플래시")할 수 있는 이미지 파일 입니다. FFU 파일을 디바이스에 플래시하면 필요한 모든 소프트웨어가 해당 디바이스에 동시에 설치됩니다. FFU 이미지 파일은 부트 로더, Windows 운영 체제, 드라이버, 주변 장치 이미지 및 기타 필수 파일을 단일 패키지로 번들로 묶습니다.
포그라운드 및 백그라운드 앱
Windows IoT Core에서 실행할 수 있는 애플리케이션에는 두 가지 유형이 있습니다.
- 포그라운드 앱 - 이러한 앱에는 UI가 있습니다. 하나의 앱만 IoT 디바이스에서 포그라운드 앱으로 실행할 수 있습니다. 이미지에 포그라운드 앱이 여러 개 포함된 경우 하나의 앱만 부팅 시 자동 시작으로 설정해야 합니다.
- 백그라운드 앱 - 이러한 앱에는 UI가 없습니다. IoT 디바이스에서 백그라운드 앱으로 여러 앱을 실행할 수 있습니다. 자동 시작하도록 백그라운드 앱을 원하는 수만큼 구성할 수 있습니다.
자세한 내용은 포그라운드 앱 또는 백그라운드 앱을 참조하세요.
이미지 만들기: ImgGen 및 이미지 구성 파일(OEMInput.xml)
최종 이미지를 만들려면 이미지 구성 파일인 OEMInput.xml 파일과 함께 imggen
도구를 사용합니다.
이미지 구성 파일은 다음을 나열합니다.
FM(기능 매니페스트) 및 각각에서 설치하려는 패키지.
디바이스 파티션을 설정하는 데 사용되는 SoC 칩 식별자입니다. soc에 대해 지원되는 값은 해당 bspfm.xml의 <devicelayoutpackages> 아래에 정의되어 있습니다.
디바이스 레이아웃을 선택하는 데 사용되는 디바이스 식별자입니다. 디바이스에 대해 지원되는 값은 해당 bspfm.xml의 <oemdeviceplatformpackages> 아래에 정의되어 있습니다.
ReleaseType(프로덕션 또는 테스트)
소매 빌드: 개발 프로세스 초기에 소매 이미지를 만들어 배송 준비가 되었을 때 모든 것이 제대로 작동하는지 확인하는 것이 좋습니다.
이러한 빌드에는 사용하도록 설정된 모든 보안 기능이 포함되어 있습니다.
이 빌드 유형을 사용하려면 모든 코드에 소매(테스트 아님) 코드 서명 인증서를 사용하여 서명해야 합니다.
샘플은 %SRC_DIR%\Products\SampleA\RetailOEMInput.xml을 참조하세요.
테스트 빌드: 이를 사용하여 사용자와 사용자의 하드웨어 제조업체 파트너가 만든 앱 및 드라이버의 새 버전을 시험해 보세요.
이러한 빌드에는 일부 보안 기능이 사용하지 않도록 설정되어 있어 테스트 서명 또는 프로덕션 서명 패키지를 사용할 수 있습니다.
이러한 빌드에는 문제 해결에 사용할 수 있는 디버그 전송, SSH 및 PowerShell과 같은 개발자 도구도 포함되어 있습니다.
샘플은 %SRC_DIR%\Products\SampleA\TestOEMInput.xml을 참조하세요.
Area | 소매 빌드 | 테스트 빌드 |
---|---|---|
이미지 릴리스 유형 | 릴리스 유형: 프로덕션 | 릴리스 유형: 테스트 |
패키지 릴리스 유형 | 프로덕션 유형 패키지만 지원됩니다. | 프로덕션 유형 또는 테스트 유형이 모두 지원됩니다. |
테스트 서명된 패키지 | 지원되지 않음 | 지원되는 IOT_ENABLE_TESTSIGNING 기능이 포함되어야 합니다. |
코드 무결성 검사 | 지원됨. 기본적으로 사용하도록 설정되어 있습니다. | 지원됨. 기본적으로 정책이 적용되지 않습니다. |
직접 경험해 보겠습니다.
여기에서 시작합니다. Windows IoT Core를 사용자 지정하는 데 필요한 도구 가져오기.