#Intel #EdisonBoard

인텔 에디슨(edison) 보드는 현재는 단종된 제품이다. 후속인 줄(Joule) 보드 역시 단종되었다. 두 제품은 IoT(Internet of things)를 겨냥하여 만들어진 만큼, 인텔이 이 시장에서 발을 빼고 있다는 의견들이 많다. 어쨌든, 인텔은 IoT, 웨어러블(Wearable)에 부합하도록 에디슨 보드를 극도로 소형화 하였다. 더 이상 지원되지 않는 보드이지만 라즈베리파이(RPi : Raspberry Pi)보다도 작은 크기, 그러나 부족하지 않은 성능에 매력을 느껴 사용해 보았다. 에디슨 보드의 세팅 방법은 인텔의 홈페이지에 상세히 나와 있다. 본 글은 세팅 중에 마주쳤던 문제점, 특히 플래싱(flashing)에 대한 내용을 담았다.

Breakout board

에디슨 보드는 소형이므로 ‘Breakout board’에 결합하여야 개발을 진행할 수 있다. 결합의 도움으로 2개의 USB 포트를 통해 에디슨 보드를 제어할 수 있다. 에디슨 보드에 새겨진 인텔 로고가 바로 보이는 상태에서 하단 USB 포트는 5V의 전원 공급 및 플래시 저장소 마운트를 담당한다. 상단 USB 포트는 에디슨 보드와의 시리얼(Serial) 통신을 담당한다.

Setup tool(NO MORE SUPPORT)

대부분의 개발 보드가 그렇듯이 최초에는 커널과 루트 파일 시스템(rootfs)을 보드에 탑재하여야 한다. 이를 플래싱(flashing)이라고 한다. 인텔 홈페이지를 통해 커널 이미지와 함께 플래싱을 위한 GUI 도구인 ‘Setup tool’이 제공된다. 그런데 Setup tool은 최신 OSX 및 윈도우즈10을 지원하지 않는다. OSX에서는 플래싱은 되지만 슈퍼블록(Superblock)이 깨지어 온전히 플래싱되진 않는다. 따라서, 고전적인 방법대로 시리얼 통신을 통해 플래싱을 수행하여야 했다. 기존 보드들의 플래싱 방법에서 크게 벗어나진 않는다.

Make edison ready to flashing

우선, 에디슨 보드와 시리얼 통신을 하기 위해서는 상단 USB를 연결하여야 한다. 이후, 아래와 같은 절차를 밟는다. OSX에서는 터미널 상에서 다음과 같이 입력한다. 그러나, 결과적으로는 OSX에서의 플래싱은 실패하여 윈도우즈에서 플래싱을 수행했다.

ls /dev/cu.usbserial-*
screen /dev/cu.usbserial-XXXXXXXX 115200 -L

윈도우즈에서는 Putty라는 원격 터미널 접속용 도구를 이용하면 된다. 접속에 필요한 포트 번호는 장치관리자에서 확인할 수 있고, 전송 속도는 115200으로 설정하면 된다.

시리얼 통신이 연결된 이후, 에디슨 보드를 재부팅하여 부팅 중에 아무 키나 입력하면 소형 부트로더인 u-boot의 쉘을 획득할 수 있다. 이 쉘에서 run do_flash를 입력한다. 직후부터 에디슨 보드는 호스트로부터의 플래싱을 기다린다.

Flashing

앞서 다운로드 받은 커널 이미지의 압축을 풀면 이미지와 함께 몇 가지 실행 가능한 스크립트들을 확인할 수 있다. flashall.shflashall.bat이다. 전자는 OSX 또는 리눅스를 위한, 후자는 윈도우즈를 위한 플래싱 스크립트이다. OSX에서는 이 스크립트가 잘 실행되지 않았던 반면, 윈도우즈에서는 잘 동작하였다. 단, 윈도우즈의 경우에 커널 이미지와 동일한 위치에 dfu-util.exelibusb-1.0.dll을 삽입해두어야 한다. 두 파일은 시리얼 통신을 통한 플래싱 방법을 자세히 소개한 아래의 글을 통해 다운로드 받을 수 있다.

Flashing the OS Image on your Board with Windows

이후, 윈도우 쉘에서 flashall.bat를 실행하면 플래싱이 진행된다. 상당한 시간이 소요된다. 아래 그림은 플래싱이 진행된 최종 스크린 샷 이다.