17763.253 빌드의 릴리스 정보
빌드 번호 17763.253. 2019년 2월.
© 2019 Microsoft Corporation. All rights reserved.
Important
2018년 10월 업데이트를 사용하는 경우 이 릴리스를 대신 사용하세요. 2018년 10월 업데이트의 사용자에게 영향을 주는 알려진 문제가 있습니다.
이 문서는 Windows 10 IoT Core에 포함된 설명서를 보완하는 최신 뉴스 또는 기타 정보를 제공합니다.
Windows 10 IoT Core를 다운로드해 주셔서 감사합니다. Windows 10 IoT Core는 임베디드 또는 전용 디바이스 개발을 목적으로 설계된 Windows 10 버전으로 제조사 커뮤니티에 적합합니다. 이 릴리스의 패키지에는 Intel Atom 프로세서 기반의 Minnowboard Max 플랫폼, Broadcom 2836/2837 기반의 Raspberry Pi 2/3, Qualcomm Snapdragon 400 시리즈 프로세서 기반의 Dragonboard 410c에 Windows 10 IoT Core를 설치하는 데 필요한 도구 및 콘텐츠가 포함되어 있습니다.
개인 정보 취급 방침
이 Windows 운영 체제 버전의 개인정보처리방침은 여기서 볼 수 있습니다.
브라우저 창에 전달 링크를 붙여넣는 방법으로 연결된 조건을 검토할 수 있습니다.
이 빌드의 새로운 기능
- 일반 버그 수정
추가 정보
- DragonBoard 이미지에 사용되는 BSP 버전은 2120.0.0.0입니다.
이 빌드의 알려진 문제
Visual Studio에서 배포하는 F5 드라이버는 IoT Core에서 작동하지 않습니다.
NOOBS를 통해 설치된 디바이스는 커널 디버거를 사용하도록 설정하는 bcdedit 도구를 실행할 수 없습니다. 이 작업은 다음 해결 방법으로 수행할 수 있습니다.
- PC에 SD 카드 탑재
- diskpart 또는 Disk Management를 사용하여 EFIESP 드라이브 파티션 번호를 찾습니다(예: "M:").
- "bcdedit /store M:\EFI\Microsoft\boot\bcd /set {default} debug yes" 명령을 실행합니다.
- SD 카드 분리합니다.
- 이제 평소와 같이 디버거를 연결할 수 있습니다.
경우에 따라 IoT 디바이스로 명령을 보낼 때 PSSession이 중단되기도 합니다.
RPi3는 BT + BTLE를 온보드 Bluetooth와 페어링하지 않습니다.
Up2의 SoftAp를 사용하여 WIFI 연결을 통해 인터넷에 연결할 수 없습니다.
밝기 제어 설정은 재정의하는 동안 IoT에서 유지되지 않습니다.
IoT Core 알려진 일반 이슈 및 해결 방법
Raspberry Pi
모니터 연결이 끊어진 경우 Raspberry Pi 디스플레이 해상도
모니터 연결이 끊어진 경우 Raspberry Pi가 디스플레이 해상도를 유지하지 않을 수 있습니다. 시스템이 연결되는 경우 모니터의 EDID를 사용하여 시스템의 해상도를 설정합니다. 연결이 끊어지면 Raspberry Pi 펌웨어는 SD 카드의 루트에 있는 config.txt를 기본값으로 사용합니다.
Raspberry Pi 비디오 성능
Raspberry Pi 플랫폼의 비디오 재생 성능이 최적화되지 않았습니다. XAML 기반 드롭다운 메뉴를 비롯한 애니메이션 사용자 요소가 최적화된 성능을 발휘하지 못할 수 있습니다.
Raspberry Pi 카메라 지원
카메라 주변 기기 지원이 제한됩니다. D3D 최신 USB 웹캠이 USB 호스트 컨트롤러의 매우 까다로운 데이터 스트림을 생성하도록 지원하기 위해 플랫폼이 제한되므로 온보드 카메라 버스에 직접 연결되는 PiCam 디바이스는 지원되지 않습니다. 저해상도 설정으로 사용하더라도 웹캠에서 USB를 미세 조정해야 하며 특수한 제어 논리가 필요합니다.
Raspberry Pi3 Bluetooth 지원
Raspberry Pi3 기본 제공 Bluetooth 드라이버는 낮은 대역폭 디바이스만 지원합니다.
RPi2의 직렬 포트 사용 및 액세스
Raspberry Pi 2는 PL011 UART을 통해 통신에 대한 직렬 전송을 지원합니다. 이는 커널 디버깅 시나리오에서 기본적으로 설정됩니다. 애플리케이션 또는 디바이스 드라이버는 PL011 UART를 사용하여 다음 명령으로 디버거를 끄는 PL011 디바이스 드라이버와 데이터를 보내고 받을 수 있습니다.
bcedit /set debug off
데이터 중단점은 Raspberry Pi2에서 비활성화되었습니다.
현재는 해결 방법이 없습니다.
Raspberry Pi 3의 온보드 어댑터 비활성화
Raspberry Pi 3에는 다른 동글을 사용하기 위해 비활성화해야 하는 온보드 Bluetooth가 있습니다. 온보드 Bluetooth를 비활성화하려면 telnet/ssh 세션을 열고 다음을 실행합니다.
reg add hklm\system\controlset001\services\BtwSerialH5Bus /v Start /t REG_DWORD /d 4
다음 명령을 사용하여 WiFi를 비활성화할 수도 있습니다.
reg add hklm\system\controlset001\services\bcmsdh43xx /v Start /t REG_DWORD /d 4
DragonBoard
Dragonboard 410c 종료
DragonBoard에서 종료 명령을 실행해도 보드 전원이 꺼지지 않습니다. 시스템이 다시 시작됩니다. 전원을 차단하여 보드를 끄세요.
DragonBoard 및 windbg
windbg를 사용하여 DragonBoard에 연결하면 GPIO/I2C/SPI/UART 드라이버가 비활성화됩니다.
DragonBoard 헤드셋 및 마이크 잭
Dragonboard BSP에는 헤드셋 잭과 마이크 잭의 드라이버가 있지만, 둘 중 어느 잭도 보드에 통합되어 있지 않습니다.
4.8Mhz로 실행되는 Dragonboard SPI
Dragonboard의 SPI는 요청된 속도를 무시하고 항상 4.8Mhz로 실행됩니다.
Dragonboard 연결된 대기 상태
연결된 대기 상태는 Qualcomm Dragonboard에서 기본적으로 사용되지 않습니다. DragonBoard에서 연결된 대기 상태를 사용하도록 설정하려면 다음 레지스트리 키를 “1”로 설정해야 합니다.
HKLM\System\Controlset001\Control\Power\CsEnabled=DWORD:1
참고 항목
모든 플랫폼이 연결된 대기 상태를 지원하는 것은 아닙니다. 일부 플랫폼에서 작동하지 않을 수 있습니다.
MinnowBoard
Minnowboard Max 부팅 및 펌웨어 업데이트
펌웨어 버전이 0.92 이상인 경우에만 MinnowBoard Max가 부팅됩니다. 최소 권장 펌웨어 버전은 “MinnowBoard MAX 0.92 32-Bit”입니다. 펌웨어 업데이트는 여기서 다운로드할 수 있습니다.
MinnowBoard 주변 기기 지원
이 드롭에 포함된 Windows 10 IoT Core 이미지는 MinnowBoard MAX 보드에 노출되는 주변 기기를 지원합니다. 향후 Intel®에서 Baytrail 프로세서의 전체 기능 세트를 지원할 예정이며 여기에는 Intel Celeron™ 프로세서 N2807-J1900/N2930 및 Intel Atom™ 프로세서 E38XX가 포함됩니다.
모든 플랫폼
공용 문서 액세스
공용 문서 디렉터리에 액세스하려면 애플리케이션에서 broadFileSystem 액세스를 지정하도록 파일 액세스에 대한 기본 API가 변경되었습니다.
.XML 파일 조각은 다음과 같습니다.
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
--snip--
<Capabilities>
<uap:Capability Name="removableStorage" />
<uap:Capability Name="picturesLibrary" />
<rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>
</Package>
디버깅하는 동안 사라지는 마우스 포인터
Visual Studio에서 앱을 배포 또는 디버깅한 후 마우스 포인터가 사라지는 경우가 가끔 있는데, 키보드(Tab)를 사용하여 포커스를 변경하면 마우스 포인터가 다시 나타납니다.
SoftAP를 사용하는 서버 애플리케이션
SoftAP를 사용하면 클라이언트가 UAP 앱에서 공개하는 콘텐츠에 액세스할 수 없습니다.
SoftAP를 통해 UAP 애플리케이션을 공개하려면 디바이스의 콘솔에서 다음과 같이 변경해야 합니다.
reg add hklm\system\currentcontrolset\services\mpssvc\parameters /v IoTInboundLoopbackPolicy /t REG_DWORD /d 1
checknetisolation loopbackexempt -a -n=<AppID for SoftAP App>
checknetisolation loopbackexempt -a -n=<AppID for Additional App>
예시:
checknetisolation loopbackexempt -a -n=IoTOnboardingTask-uwp_1w720vyc4ccym
Reboot
미리 빌드된 FFU의 센서 드라이버 충돌
제공된 FFU의 센서 드라이버가 충돌합니다. 원격 센서 프레임워크는 나침반, 자력계, 가속도계 및 자이로스코프의 드라이버를 설치합니다. 애플리케이션에서 이러한 도구에 액세스하는 데 사용되는 UWP API는 1개만 설치된 것으로 가정합니다. 물리적으로 연결되는 디바이스의 드라이버를 개발하는 경우 Microsoft에서 제공한 FFU의 원격 드라이버가 충돌합니다.
해결 방법: SSH 또는 PowerShell을 통해 디바이스에 연결하고 도구 devcon.exe 사용하여 "@"ROOT\REMOTESENSORDRIVER*"를 입력하여 원격 센서 드라이버를 제거하여 충돌하는 드라이버를 제거할 수 devcon.exe 있습니다. 원격 센서 드라이버는 OEM에서 만든 FFU에 영향을 주지 않습니다.
기본 관리자 사용자 이름 및 암호
기본 관리자 사용자 이름 및 암호는 Windows 10 IoT Core 이미지에 하드 코딩됩니다. 이는 디바이스의 보안에 위험 요소로 작동하며, 암호가 변경되기 전에는 열린 인터넷 연결에 노출되면 안 됩니다.
볼륨 컨트롤
Windows 시스템을 사용하여 시스템 볼륨을 변경하는 USB 마이크 및 스피커의 시스템 볼륨 컨트롤은 현재 Windows 10 IoT Core에서 지원되지 않습니다.
USB 키보드
일부 USB 키보드 및 마우스는 IoT Core에서 작동하지 않을 수 있습니다. 다른 키보드 또는 마우스를 사용하세요. 유효성이 검사된 주변 장치의 목록은 여기의 설명서에서 확인할 수 있습니다.
화면 회전
방향을 "세로"로 설정하는 기능이 유니버설 앱에서는 작동하지 않을 수 있습니다.
AllJoyn 템플릿을 사용하여 어댑터 참조
특정 SDK 버전을 사용하는 경우 AllJoyn 어댑터 프로젝트에 대한 참조를 추가하려고 하면 오류가 발생할 수 있습니다. 이 오류를 해결하려면 Visual Studio의 대상 플랫폼을 현재 SDK 버전에 맞게 변경한 다음, 프로젝트를 다시 로드합니다.
IoTCore의 WiFi Direct 제한 사항
- IoTCore 디바이스는 연결 디바이스여야 합니다. 연결을 시작하는 다른 디바이스와 함께 광고용 디바이스로 작동하지 않습니다.
- 고급 페어링을 사용해야 합니다. 샘플 앱은 디바이스를 연결하기 전에 고급 페어링 API를 사용하여 페어링하는 방법을 보여줍니다.
- 모든 무선 어댑터가 WiFi Direct를 지원하는 것은 아닙니다. “Realtek RTL8188EU Wireless Lan 802.11n USB 2.0 네트워크 어댑터”는 정상 작동하는 것으로 테스트 결과가 나왔지만, 다른 어댑터는 지원되지 않을 수 있습니다.
기본이 아닌 드라이브 모드
Raspberry Pi 및 Dragonboard에서, 기본이 아닌 드라이브 모드에서 기본이 아닌 다른 드라이브 모드로 전환하면 GPIO 핀에서 문제가 발생할 수 있습니다. 해결 방법: 애플리케이션의 시작 부분에 드라이브 모드를 한 번 설정합니다.
이미 실행 중인 애플리케이션
기본 시작 앱 역시 Visual Studio에서 배포하면 자체 앱과 충돌할 수 있습니다. 해결 방법: 기본 시작 앱을 배포하려는 애플리케이션 이외의 애플리케이션으로 변경합니다.
BackgroundMediaPlayer.MessageReceivedFromForeground가 충돌할 수 있음
다음 코드 줄이 충돌할 수 있습니다. "BackgroundMediaPlayer.MessageReceivedFromForeground += OnMessageReceivedFromForeground;". 충돌을 방지하려면 먼저 실행되도록 “var player = BackgroundMediaPlayer.Current;” 코드를 추가합니다.
Azure Active Directory 인증 지원
Azure Active Directory 인증 라이브러리는 Windows 10 IoT Core에서 작동하지 않습니다.
애플리케이션 충돌의 셸 관리
IoT Core의 셸 인프라는 디바이스에서 실행되는 APPX 형식 애플리케이션의 충돌을 모니터링하다가 충돌이 발생하면 해당 애플리케이션을 다시 시작합니다. 다시 시작된 애플리케이션의 작동이 여전히 중단되면 셸에서 __failfast를 사용합니다. 이는 복구를 위해 버그를 검사하고 다시 부팅하는 중요한 시스템 프로세스입니다. 헤드 구성의 백그라운드 작업과 포그라운드 애플리케이션에 비슷한 논리와 처리 방법이 사용됩니다. 충돌 처리 및 재시도 논리는 아래에 캡처되어 있습니다.
Software\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\CBTConfig (or ForegroundAppConfig for headed)
Qword:"FailureResetIntervalMs" – length of time app has to run successfully to reset failures seen to 0. – default is 0x00000000000493E0 == 5 minutes
Qword:"BaseRetryDelayMs" -- wait time coefficient. Default is 0xa.
Dword:"MaxFailureCount". Default is 10
DWord:"FallbackExponentNumerator", default is 31.
Dword:"FallbackExponentDenominator", default is 20
Fallback_exponent = FallbackExponentNumerator / FallbackExponentDenominator; // default is 1.55
앱 충돌이 감지되면 다음을 수행합니다.
if time_since_last_crash > failureresetinterval then crashes_seen = 1
else ++crashes_seen;
if crashes_seen > MaxFailureCount then __failfast;
else
delay = (dword) ((float)BaseRetryDelayMs * (crashes_seen ** Fallback_exponent))
시간 지연을 기다렸다가 앱 다시 시작
시간 동기화
시간 동기화가 실패하거나 시간이 초과되면 시간 서버가 멀리 떨어져 있거나 연결할 수 없는 것이 원인일 수 있습니다. 다음을 수행하여 추가 또는 로컬 시간 서버를 추가할 수 있습니다.
디바이스의 명령줄(예: SSH, PowerShell)에서 다음을 실행합니다. w32tm /config /syncfromflags:manual /manualpeerlist:"0.windows.time.com 1.pool.ntp.org 2.something else, ..."
필요한 경우 이미지 만들기 프로세스의 일부로 포함된 부팅 스크립트 또는 사용자 지정 런타임 구성 패키지를 통해 이러한 추가 작업을 레지스트리에 수행할 수도 있습니다. 자세한 내용은 다음을 참조하세요.
FTP 서버 시작
시작 시 FTP 서버가 더 이상 기본적으로 실행되지 않음
한 번 실행하려면: SSH\PS로 로그인하고 이 명령을 실행하여 FTP를 시작합니다.
start ftpd.exe
모든 부팅에서 실행하려면 사용자는 스케줄러 작업인 SSH\PS로 로그인하고 스케줄러 작업을 만들어야 합니다.
schtasks /create /tn "IoTFTPD" /tr ftpd.exe /ru system /sc onstart
Schtasks /run /tn “IoTFTPD”