티스토리 뷰

RPi

[RPi] Windows 10 on Raspberrry PI 2

생각많은 소심남 2015. 5. 2. 01:02

연휴에 짬을 내서 집에 있는 raspberry pi 2에다가 windows 10을 올려보기로 했다. 참고로 Microsoft에선 Raspberry pi foundation과 협력해서 IoT용 Windows 10을 무료로 공개하기로 했고, 현재는 development program을 운영하면서 preview를 공개하고 있다. 마침 나도 메일리스트로 등록은 해놨는데 엇그제 다음과 같은 메일이 한통 왔다.



일단 Microsoft의 IoT section에 가보면 어떻게 설치해야 되는지에 대한 정보와 이미지들이 공개되어 있다.


그런데 사실 과정이 조금 복잡하다. 내가 접한 복잡한 과정 중 하나가 바로 windows 10이 physical하게 설치되어 있는 PC에서만 Raspberry pi용 windows 10을 설치할 수 있다는 것이었다. 내가 가진 device 중에는 windows 10을 설치한게 아무것도 없었고, 결국 집에서 노는 노트북에다가 windows 10을 올리고 직접 해보려고 했다.



이게 windows 10 build 74이다. task 바가 이전의 windows 8이나 7에 비해서 조금 달라진 것을 알 수 있다. 참고로 8때 없어졌던 시작 메뉴가 다시 등장하고 msn의 news가 그안에 적용되면서 시작메뉴안에서 실시간으로 뉴스를 볼 수 있다는 점이 특징이다.



지금 위의 창이 이번 Build 2015에서 Edge라고 발표된 Project Spartan이다. 이제는 Explorer 가 없어지고 새로 등장한 브라우져인데, 동작 속도는 빨랐다. 다만 사정이 있어서 기존의 Explorer의 즐겨찾기 정보를 여기로 import 하려고 했는데, 버전이 달라서 그런지 그런 기능을 지원하지 않았다. 분명 나중에 되면 문제가 발생할 거 같다.



자 그럼 본론으로 돌아와서 앞에서 언급한 것과 같이 raspberry pi 2에 windows 10을 올리려면 raspberry pi 에 들어가는 microsd 카드에 windows 10 이미지를 구워야 한다. 모르는 사람을 위해서 설명하자면, raspberry pi의 boot sequence는 먼저 sd 카드내에 있는 master boot record(MBR)를 읽고 그 mbr내에서 os image가 올라가 있는 주소로 jump해 image를 읽어들이는 방식이다. 그래서 sd 카드에 os image를 굽는 과정이 필요하고 windows 10도 마찬가지이다. 위의 이미지를 받고 압축을 푼 후에 해당 폴더 상에서 command prompt line을 열어본다.



우선 이 PC내에서 microsd카드가 어떤 disk로 mount되었는지를 알아야 되는데, 여기서는 내장 tool인 diskpart를 이용한 방법을 소개했다.



위와 같이 diskpart -> list disk -> exit를 차례로 치면 내가 os image를 굽기 위해서 꽂은 sd카드가 몇번 디스크인지를 확인할 수 있다. 예를 들어서 나는 16기가 microsd를 꽂은 상태에서 위의 과정을 거치니 list가 나열되었고, 그결과 내가 꽂은 sd카드는 디스크 1번에 맵핑되어있는 것을 확인할 수 있었다.



이제 여기서 위와 같에 typing된 명령어를 쳐준다. 유의할 것은 중간에 ApplyDrive 부분에 PhysicalDrive1이라고 되어 있는 부분이 있는데, 이 부분에다가 앞에서 얻은 디스크 번호를 넣어줘야 한다. 예를 들어서 꽂은 sd카드가 2번 디스크로 맵핑되어 있는 경우는 /ApplyDrive:\.\\PhysicalDrive2로 해줘야 한다는 것이다.

 여기까지 해주고 잠시 기다리면 이미지가 정상적으로 sd카드에 저장된다.

(주의 : 여기서 sd카드를 바로 꺼내지 말고 반드시 안전하게 제거하는 옵션을 통해서 분리를 해야 한다. <- MS에서 언급한 주의사항)


자 여기까지 해주고 이제 raspberry pi에 준비를 딱 해주면 정상적으로 부팅된다.








사실 직접 설치해본 바로는... 내가 완전 IoT상에서 windows 10을 쓸 수 있다는 것에 대해서 살짝 오해를 하고 있던게 아닌가 싶었다. 나는 사실 우리가 일반 PC에 올라가 있는 windows 운영체제처럼 GUI가 출력되는 형태인줄 알았는데, 우리가 접할 수 있는 환경은 딱 위 이미지에서 나온게 전부이다. 몇가지 정보를 더 찾아본 바로는 아직 우리가 사용할 수 있는 GUI 형태로 제공되는게 아니라 기본적으로 raspberry PI에서 사용할 수 있는 GPIO들을 쉽게 제어할 수 있는 형태이고, 이것도 device 자체에서 할 수 있는게 아니라 remote desktop에서 원격으로 개발한 후에 실시간으로 debugging할 수 있는 형태로 되어 있는 거 같았다. 또한 raspberry pi 자체가 arm base이기 때문에 기존의 x86과 다른 환경에서 개발해야 되지만, 최근 visual studio에서도 arm개발을 지원해주는 형태로 되어서 일반 개발자들은 그냥 windows application 개발하는 것처럼 개발하면 될거라고 나와있었다. 마치 winRT 앱을 개발하는 것처럼 말이다. 

 사실 이 모든 것을 하려면 Windows 에서 제공하는 powershell이란 tool을 써먹을 줄 알아야 한다. 나도 전에 살짝 배웠는데, 다시한번 살펴봐야겠다. 아무튼 앞으로 좀더 발전할 수 있는 여지는 확인할 수 있었던 계기가 아니었나 싶다.


댓글