패키지 만들기 및 설치

패키지는 Windows 10 IoT Core의 빌딩 블록입니다. 디바이스 드라이버에서 시스템 파일에 이르기까지 모든 구성 요소는 디바이스에 설치하기 위해 패키지화되어야 합니다. 패키지는 디바이스에서 서비스할 수 있는 가장 작은 단위입니다.

1단계: 설정하기

도구 설치

  1. Windows ADK(Windows Assessment and Deployment Kit)
  2. IoT Core ADK 추가 기능

환경 설정

  • IoTCorePShell.cmd 실행(이는 관리자 권한의 프롬프트에서 실행됨)
  • new-ws C:\MyWorkspace <oemname> <arch>을 사용하여 새 작업 영역 만들기

고유한 이미지(FFU)를 만들려면 IoT 제조 가이드의 "기본 이미지 만들기" 랩에 설명된 단계를 따릅니다.

2단계: 새 패키지 만들기

  1. 패키지 정의 xml 파일(.wm.xml 파일)을 만들고 추가할 파일과 reg 키를 지정합니다. Windows 유니버설 OEM 패키지 스키마에서 자세히 알아봅니다.

  2. 패키지를 빌드합니다. buildpkg filename.wm.xml. .cab 파일은 빌드 디렉터리 <workspace>\Build\<arch>\pkgs에 만들어집니다.

파일 및 reg 키를 사용하여 패키지 만들기

다음은 파일 및 reg 키를 지정하는 예입니다.

<?xml version="1.0" encoding="utf-8"?>
<identity xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="SUBNAME" namespace="COMPNAME" owner="Contoso" legacyName="Contoso.COMPNAME.SUBNAME" 
    xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00">
    <onecorePackageInfo
        targetPartition="MainOS"
        releaseType="Production"
        ownerType="OEM" />
    <regKeys>
        <regKey
            keyName="$(hklm.software)\Contoso\Test">
            <regValue name="StringValue" type="REG_SZ" value="Test string" />
            <regValue name="DWordValue" type="REG_DWORD" value="0x12AB34CD" />
            <regValue name="BinaryValue" type="REG_BINARY" value="12ABCDEF" />
        </regKey>
        <regKey
            keyName="$(hklm.software)\Contoso\EmptyKey" />
    </regKeys>
    <files>
        <file
            destinationDir="$(runtime.system32)"
            source="filename.txt" />
        <file
            destinationDir="$(runtime.bootDrive)\OEMInstall"
            source="filename2.txt"
            name="filename2.txt" />
    </files>
</identity>

Appx 패키지 만들기

Add-IoTAppxPackage를 사용하여 지정된 appx 파일에 대한 .wm.xml 파일을 생성합니다. 이 도구는 appx 파일이 포함된 폴더의 "dependencies"라는 하위 디렉터리에서 appx 종속성을 예상합니다.

Add-IoTAppxPackage HelloWorld.appx fga Appx.HelloWorld
(or) newappxpkg HelloWorld.appx fga Appx.HelloWorld
New-IoTCabPackage Appx.HelloWorld
(or) buildpkg Appx.HelloWorld

fga는 appx를 포그라운드 시작 앱으로 설정하고, bgt는 appx를 백그라운드 작업으로 설정하고, none은 시작 구성을 건너뜁니다. 이전 명령줄 도구의 경우 newappxpkg.command를 참조하세요.

예로 Appx.IoTCoreDefaultApp을 참조하세요.

동일한 인증서로 서명된 여러 애플리케이션을 설치해야 하는 경우 하나의 앱과 함께 인증서를 추가할 수 있으며, 나머지 앱의 경우 skipcert 플래그를 사용하여 인증서 추가를 건너뛸 수 있습니다.

newappxpkg AnotherApp.appx none Appx.AnotherApp skipcert

참고 항목

드라이버 패키지 만들기

드라이버 패키지에는 드라이버의 Inf 파일에 대한 참조(InfSource)가 포함되어 있습니다. 드라이버 .wm.xml 파일을 수동으로 제작하거나 입력 inf 파일을 기반으로 패키지 xml을 생성하는 Add-IoTDriverPackage를 사용할 수 있습니다.

Add-IoTDriverPackage C:\Mydriver\GPIO.inf MyDriver.GPIO
(or) newdrvpkg C:\Mydriver\GPIO.inf MyDriver.GPIO
New-IoTCabPackage MyDriver.GPIO
(or) buildpkg MyDriver.GPIO

이전 명령줄 도구의 경우 inf2cab.cmd를 사용하여 패키지 xml 파일을 만들고 내부적으로 buildpkg.cmd를 호출하여 cab 파일을 직접 빌드합니다.

참고

Windows IoT Core는 Universal Inf만 지원합니다.

참고 항목

3단계: 디바이스에 설치


  • 디바이스에 연결(SSH 사용 또는 Powershell 사용)
  • <filename>.cab 파일을 디바이스의 C:\OemInstall 디렉터리에 복사합니다.
  • applyupdate -stage C:\OemInstall\<filename>.cab를 사용하여 패키지 스테이징을 시작합니다. 설치할 패키지가 여러 개인 경우 각 패키지에 대해 이 단계를 반복합니다.
  • applyupdate -commit을 사용하여 패키지를 커밋합니다.

참고

Windows 디바이스 포털에서 Windows 업데이트 > CAB 설치 옵션을 사용하여 캡을 설치할 수도 있습니다. 디바이스가 업데이트 OS(기어 표시)로 다시 부팅되어 패키지를 설치하고 기본 OS로 다시 부팅됩니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다.