1. Intel Edison
Intel 에서 발표한 우표만한 사이즈의 Platform
500 MHz Intel Atom Silvermont dual-core processor(500Mhz의 x86 Processor와 100Mhz Quark MCU 를 탑재)
RAM 1GB DDR3
Flash 4GB eMMC
Wi-Fi (IEEE 802.11a / b / g / n 2.4GHz / 5GHz 듀얼 밴드)
Bluetooth 4.0 (Bluetooth Low Enagey와 Bluetooth 3.0 이전과의 호환성은 조사 중입니다)
SD 카드 인터페이스 × 1
UART × 2 (1 full flow control 1 Rx / Tx)
I 2 C × 2
SPI × 1 (chip select x2)
I 2 S × 1
USB 2.0 × 1 OTG controller
2. Download
- Sources – GPL/LGPL source files
Intel Edison은 Yocto Project를 통한 Build System을 지원하고 있으며 해당 소스는
https://software.intel.com/en-us/iot/hardware/edison/downloads
에서 제공하고 있다.
- Latest Yocto* Poky image for Edison
또한 해당 링크에서 당연히 Build된 Image도 받을 수 있기에 Build 하기 귀찮은 사람은
해당 바이너리만 받아 Download 하면 된다.
- Microcontroller (MCU) SDK
x86 Processor에서는 Linux가 작동하고 Quark MCU에선 H/W Control을 위한 펌웨어를 돌릴 수 있는데
이를 위한 MCU SDK 도 Intel 에서 지원한다. 해당 SDK는 Eclipse 기반이다.
또한 Arduino IDE를 통해서도 개발 할 수 있다.(셋팅법은 아래 기술)
- SDK - Cross Compile Tools
이번 포스팅에선 Intel Edison Firmware Release 3.0 을 기반으로 진행할 예정이다.
(2016.06.12 기준 3.5 버전이 릴리즈 되었으나 Download 사이트에는 아직 업로드가 안된 것으로 보임)
Edison Full Source 를 아래 링크에서 받는다.
http://iotdk.intel.com/src/3.0/edison/iot-devkit-yp-poky-edison-20160315.zip
3. Prepare && Build
Yocto Project를 통해 Build를 하기 위한 준비 작업
- Yocto Project를 빌드하기 위한 필수 Package를 설치 - Ubuntu 14.04 기준
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential \
chrpath socat libsdl1.2-dev xterm
- 압축 해제 후 Source 를 보면 build_edison 과 poky가 존재한다.
- poky 안에 들어간 후에
dev@dev:~/iot-devkit/poky$ ln -s meta-intel-edison/utils/Makefile.mk Makefile
dev@dev:~/iot-devkit/poky$ make setup
dev@dev:~/iot-devkit/poky$ make edison-image
ps. 빌드 중 아래와 같이 paho-mqtt Package의 Fetch 오류가 존재하는데
이를 해결하기 위해서
~/iot-devkit/poky/out/current/poky/meta-intel-iot-middleware/recipes-connectivity/paho-mqtt/paho-mqtt_3.1.bb
파일을 열어 SRC_URI 부분 "git://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git;protocol=http" 로 되어 있는 부분을 "git://github.com/eclipse/paho.mqtt.c.git;protocol=http" 로 바꿔준다.
4. Flash
Build 후 Edison에 Flash 하기
- Edison Board를 Linux에 연결(OTG USB)하고
- dev@dev:~/iot-devkit/poky/out/current/build/toFlash$ ./flashall.sh 를 실행한다.
- ps. dfu 관련 command를 찾을 수 없다는 메시지가 나오면 dfu-utils 를 설치해 주면 된다.
- 그러면 아래와 같이 Reboot 을 하라는 메시지처럼 보드의 Reset 버튼을 눌러준다
- 그 후론 다운로드 되는 과정을 볼 수 있다.
- 필자의 경우는 VMWare에 dfu 모드로 USB가 안 붙는 현상이 있어 Windows에서 Flashing을 진행하였다.
- 추가로 Edison 보드를 dfu 모드로 수동으로 진입하기 위한 방법으로 U-boot Command 를 통해 run do_flash 로
실행시키면 Edison 보드가 DFU 모드로 진입하게 된다.
5. Booting 및 확인
부팅은 처음 하듯이 하면 되고 Build 한 Image가 제대로 들어갔는지 확인하기 위해선
부팅 로그를 확인해 보면 Kernel 종류와 Build 날짜가 나오는 것을 볼 수 있다.
****************************** PSH KERNEL VERSION: b0182b2b WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 11:24:08 Feb 5 2015 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000
*** Ready to receive application ***
U-Boot 2014.04 (Jun 12 2016 - 01:43:27)
Watchdog enabled DRAM: 980.6 MiB MMC: tangier_sdhci: 0 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 Target:blank Partitioning already done... Flashing already done... GADGET DRIVER: usb_dnl_dfu reading vmlinuz 5443776 bytes read in 134 ms (38.7 MiB/s) Valid Boot Flag Setup Size = 0x00003c00 Magic signature found Using boot protocol version 2.0c Linux kernel version 3.10.17-poky-edison+ (dev@dev) #1 SMP PREEMPT Sun Jun 12 01:46:35 KST 2016 Building boot_params at 0x00090000 Loading bzImage at address 00100000 (5428416 bytes) Magic signature found Kernel command line: "rootwait root=PARTUUID=012b3303-34ac-284d-99b4-34e03a2335f4 rootfstype=ext4 console=ttyMFD2 earlyprintk=ttyMFD2,keep loglevel=4 g_multi.ethernet_config=rndis systemd.unit=multi-user.target hardware_id=00 g_multi.iSerialNumber=ec473446ca27454f4c2ac453888d2255 g_multi.dev_addr=02:00:86:8d:22:55 platform_mrfld_audio.audio_codec=dummy"
Starting kernel ... |
6. MCU SDK (Arduino IDE) 구축
MCU를 통해 H/W Control을 위한 펌웨어를 구현하기 위해선 SDK가 필요한데 Intel Edison은 Arduino로부터 인증을 받아서
Arduino 공식 홈페이지에 존재하는 IDE를 통해 펌웨어를 제작 및 다운로드 할 수 있다.
- 아래 Arduino 공식 홈페이지에서 IDE를 다운받는다
https://www.arduino.cc/en/Main/Software
- 툴 -> 보드 -> 보드 매니저 실행하여 "Intel i686 Boards by Intel" 을 설치한다.
- 설치하면 아래와 같이 Intel Edison을 확인할 수 있으며 그것을 선택한다
- COM포트는 Edison과 통신하는 Serial이 아닌 OTG USB와 함께 설치되는
"Intel Edison Virtual Com Port" 를 선택해 준다.
- 그리고 Blink 예제를 Load 하여 Build && Download 하면
아래와 같이 Transfer Complete 가 뜨면 정상적으로 Download 된 것이다.
- 제대로 다운로드 되어 실행되었다면 J2 단자 옆에 있는 LED가 2초 주기로 깜빡이는 것을 확인할 수 있다.