1. 개요
본 항목은 당시 윈도우 10 참가자 프리뷰, 현 윈도우 참가자 프로그램의 윈도우 10 빌드 10531부터 IoT RTM 빌드인 10586까지를 다룬다.2. 빌드 변경 내역
현재까지 공개된 프리뷰 빌드와 해당 빌드의 주요 변경 내역들이다.2.1. 10531
2.1.1. 새 기능
- Windows 10 IoT Core 참가자 프리뷰 9월 25일 배표
- 웹 서버 (WebB) 추가 기능 (컴퓨터 이름 바꾸기, 패스워드 바꾸기, 프로세스 시작)
- 시큐어 부트 켜짐
- 향상된 Node.js 경험: 모든 필요 컴포넨트에 대한 통합 인스톨러, 시리얼 라이브러리 지원, 새 Cylon 프로젝트 템플릿을 통한 Cylon 프로젝트 지원
- 순수 파이썬 라이브러리에 대한 확장된 호환성
- GitHub에 ADC와 PWM 제조사들이 제공한 API를 통해 유명한 PWM과 ADC 외부 칩들 사용 가능
- 기본 OS 빌드 업데이트
- 버그 수정
2.1.2. 배포 노트
MBM의 펌웨어 버전이 0.82 이상이 아니면 Windows 10 IoT Core의 10240 빌드부터 부팅을 할 수 없다. 펌웨어의 최소 권장 버전은 “MinnowBoard MAX 0.82 32-Bit”이다. 펌웨어 업데이트는 여기에서 받을 수 있다.2.1.3. 알려진 문제점
다음 버그가 해결되었다.- MBM에서 MBM이 작동하고 있을 때 HDMI 비디오 케이블을 뽑고 다시 꽂으면 비디오 출력이 깨진다. (2096834)
- 껐다 키면 네트워크 시간에 느리게 동기화한다.(3283455, 2942694)
- 웹 브라우저에서 외부 링크를 누를 때 포그라운드 앱이 깨질 수 있다. 이는 OS가 새 창을 띄우려고 하는데, IoT Core에서 지원하지 않기 때문이다.
- 위치 기능 (Geolocator.RequestAccessAsync())이 작동하지 않는다.
- BackgroundMediaPlayer.MessageReceivedFromForeground이 깨진다. (3486027)
- 라즈베리 파이 2에서 USB 스피커가 작동하지 않을 수 있다. (3627304)
- More.com!PAGER::DisplayString이 INVALID_POINTER_READ 예외를 반환한다. (1552523) 완화요소: 없다.
2.2. 10556
2.2.1. 새 기능
- Windows 10 IoT Core 참가자 프리뷰 10월 15일 배포
- 라즈베리 파이의 TX, RX 핀 시리얼 지원
- 100배 이상 향상된 고성능 GPIO 드라이버 옵션
- 비주얼 스튜디오용 아두이노 와이어링 프로젝트 시스템
- 기본 OS 빌드 업데이트
- 버그 수정
2.2.2. 배포 노트
8GB 클래스 10 SD 카드에서 처음 부팅하는 IoT Core 장치가 부팅이 굉장이 느리다. 부팅시간이 15분 이상일 수 있다. 그 다음 부팅들은 처음보다 훨씬 빠르게 부팅된다.2.2.3. 알려진 문제점
다음 버그가 해결되었다.- 몇몇 애니메이션 UI 요소가 느리게 렌더링 되거나 사용자 입력에 느리게 반응한다. (2735596)
- GPIO 4번 핀이 작동 모드를 바꿀 때 잘못 작동한다. (2938068)
- MBM에서 장치 관리자의 UEFI 세팅에서 GPIO 깨우기를 키고 GPIO WinRT API로 0-2번 핀에서 GPIO 출력을 바꾸거나 GPIO 값을 읽을 수 없다. (1894235)
- IoT 디버그 브로커를 쓰는 UI 있는 앱을 디버그할 때, 디버그>종료 메뉴를 누르면 Assert가 발생할 수 있다. (2385747)
- BackgroundService Tasks가 UI 있는 작업과 없는 작업이 둘 다 등록된다. (2455442)
- SPI 드라이버가 SpiDevice.TransferSequential() 호출에 대해 잘못된 버퍼를 반환한다. 버퍼가 시작점에 2바이트를 더 붙인다. (3076149)
- UART 흐름 제어/직렬 핸드쉐이크 기본값이 켜져있고, 끌 수 없다(2995473)
- SSH 클라이언트가 세션을 제대로 닫지 못할 때 SSH 서비스가 깨진다. (3581710, 3602012)
- 라즈베리 파이 2에서 MediaEncodingProfile.CreateWma(Windows.Media.MediaProperties.AudioEncodingQuality.Auto)가 No suitable transform was found to encode or decode the content. (Exception from HRESULT: 0xC00D5212)에러와 함께 실패할 수 있다. (3634750)
- 라즈베리 파이와 드래곤보드에서, GPIO 핀을 비기본 작동 모드에서 다른 비기본 작동 모드로 바꾸면 버그가 일어난다. (3890679) 완화요소: 앱 시작에 작동 모드를 한번 설정한다.
- IoT Core가 돌아가는 장치들이 시간을 동기화하지 못한다. (4444681) 수동으로 시간을 업데이트하거나 프로그래밍으로 강제로 시간을 동기화시킨다.
- SiLabs USB-직렬 컨버터(USB\VID_10C4&PID_EA60)가 에러 31과 함께 로드에 실패한다. (5307602) 완화요소: USB 포트에서 장치를 빼고 reg add "HKEY_LOCAL_MACHINE\system\controlset001\enum\usb\VID_10C4&PID_EA60\0001\Device Parameters" /v PortName /t REG_SZ /d COM3 명령어를 실행한다.
- MinnowBoardMax에서 FTDI USB-직렬 어댑터가 요청한 보 비율을 무시하고 3.8Mhz로 작동할 것이다. (5348073) 완화요소: 밑의 x86에서 FTDI 장치들을 위한 완화 요소를 참조.
- IoT Core에서 WinRT WiFi 다이렉트 API들을 이용한 WiFI 다이렉트가 부분적으로 지원된다. 더 많은 정보를 보고 싶으면 밑의 IoT Core에서 WiFi 다이렉트 한계점를 보면 된다.
2.2.4. x86에서 FTDI 장치들을 위한 완화 요소
1. MinnowBoard Max에 FTDI 장치를 꼽는다.2. devcon status FTDIBUS\* 명령어를 실행하고 장치의 장치 인스턴스 경로를 메모한다.
C:\Data>devcon status ftdibus\*
FTDIBUS\VID_0403+PID_6001+A700EXHLA\0000
Name: USB Serial Port
Driver is running.
1 matching device(s) found.Driver is running.
3. ftdi-fix.reg 파일을 만들고 다음과 같은 내용을 넣는데, <device instance path> 대신에 메모한 장치 인스턴스 경로를 넣으면 된다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\system\controlset001\enum<device instance path>\Device Parameters] "ConfigData"=hex:11,00,3f,3f,10,27,00,00,88,13,00,00,c4,09,00,00,e2,04,00,00,\ 71,02,00,00,38,41,00,00,9c,80,00,00,4e,c0,00,00,34,00,00,00,1a,00,00,00,0d,\ 00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,d0,80,00,00 "LatencyTimer"=dword:00000010 "MinReadTimeout"=dword:00000000 "MinWriteTimeout"=dword:00000000
1. ftdi-fix.reg를 장치에 복사하고 reg import ftdi-fix.reg 명령어를 실행해 레지스트리 키를 적용한다.
2. FTDI 장치를 빼고 다시 꼽는다.
2.2.5. IoT Core에서 WiFi 다이렉트 한계점
1. IoT Core 장치가 반드시 클라이언트가 되어야 한다. 다른 장치가 연결 초기화를 할 때 호스트 장치로는 작동하지 않는다.2. 고급 페어링이 반드시 사용되어야 한다. 샘플 앱에서 고급 페어링 API를 통해 다른 장치과 페어링하는 것을 보여준다.
3. 모든 무선 어댑터들이 WiFi 다이렉트를 지원하지는 않는다. “Realtek RTL8188EU Wireless Lan 802.11n USB 2.0 Network adapter”에서 작동하는 것을 테스트하고 확인했지만, 다른 어댑터들에서는 지원하지 않을 수 있다.
2.3. 10586
2.3.1. 새 기능
- Windows 10 IoT Core 정식 배포
- 서비스 업데이트 지원
- 리얼텍 Wi-Fi 칩셋 (RTL8188EU & RTL8192EU) 지원
- 퀄컴 드래곤보드 지원
- 윈도우 장치 포털에 기능 업데이트
- 기본 OS 빌드 업데이트
- 버그 수정
2.3.2. 배포 노트
MBM의 펌웨어 버전이 0.82 이상이 아니면 Windows 10 IoT Core의 10240 빌드부터 부팅을 할 수 없다. 펌웨어의 최소 권장 버전은 “MinnowBoard MAX 0.83 32-Bit”이다. 펌웨어 업데이트는 여기에서 받을 수 있다.2.3.3. 알려진 문제점
다음 버그가 해결되었다.- GetNetworkUsageAsync가 System.UnauthorizedAccessException을 던질 수 있다. (1972129)
- IoT Core 기본 앱이 같은 어댑터에서 2개의 IP 주소를 보여줄 수 있다. 하나는 오래되거나 틀린 주소이고 나머지 하나는 맞는 주소이다. (3303771)
- IoT Core가 돌아가는 장치들이 시간을 동기화하지 못한다. (4444681)
- 윈도우 장치 포털이 하루동안 정상적으로 돌아간 뒤에 멈춘다. (5458435) 완화요소: 장치를 재시작하면 된다.
- BackgroundMediaPlayer.MessageReceivedFromForeground이 깨진다. (2199869) 완화요소: BackgroundMediaPlayer.MessageReceivedFromForeground += OnMessageReceivedFromForeground;로 쓰면 깨지고, 그 앞에 var player = BackgroundMediaPlayer.Current;을 추가하면 잘 작동한다.
- 라즈베리 파이 2에서 MediaEncodingProfile.CreateWma(Windows.Media.MediaProperties.AudioEncodingQuality.Auto)가 No suitable transform was found to encode or decode the content. (Exception from HRESULT: 0xC00D5212)에러와 함께 실패할 수 있다. (4510128) 완화요소: 없다.
- Node.JS 프로젝트를 배포하면 BackgroundTaskHost.exe가 에러와 함께 실행에 실패할 수 있다. (4873190) 완화요소: 없다.
- 드래곤 보드를 연결하고 windbg로 디버그를 하면 GPIO/I2C/SPI 드라이버가 꺼질 수 있다. (4710796) 완화요소: 없다.
- 드래곤보드 BSP가 헤드셋과 마이크 잭 드라이버를 가지고 있는데, 보드에는 없다. (4791855) 완화요소: USB 헤드셋을 쓰려면 저 두 장치를 수동으로 끄고 사용해야 한다.
- 드래곤보드의 SPI가 요구한 속도를 무시하고 항상 4.8MHz로 작동한다. (5055938) 완화요소: 없다.
- 앱이나 백그라운드 작업이 비정상적 상태에 들어가면 장치가 SSH 세션을 연결하고 재설정하는 대신 블루스크린을 띄운다. (5098713) 완화요소: 없다.
- 상업용 레이센스를 쓸 때 ICD 이미지 빌드가 실패한다. (5291899, 5382557) 완화요소: 여기에서 자세한 정보를 볼 수 있다.
- 라즈베리 파이2에 웹캠과 USB 오디오 어댑터나 헤드셋을 동시에 연결하면 충돌이 일어난다. (5383535) 완화요소: 아날로그 헤드셋을 3.5mm 잭에 연결해서 쓰면 된다.
- 장치 이름을 15 글자보다 많이 설정하면 부팅에 실패하고, 이 현상이 나타나면 다시 IoT Core를 올려야 한다. (5474244) 완화요소: 장치 이름을 15 글자보다 적게 적으면 된다.
- SiLabs USB 직렬 어댑터를 열려고 시도할 때 SerialDevice.FromIdAsync()가 NULL 값을 반환할 수 있다. (5385500) 완화요소: iotstartup headless remove ZWaveHeadlessAdapterApp으로 실행하고 재부팅하면 된다.