MinnowboardMAX에 Android 올려 본 내용 정리

Android / Chromium OS / Windows를 올려 볼 수 있는 Intel Baytrail 기반의 개발보드인 MinnowboardMAX에 Android 5.1을 install하는 과정을 설명한다.

필요한 것 들

  • Minnowboard MAX판매하는 곳, 2015년 9월 현재 국내에서 판매하는 곳은 없는것 같다.
  • FTDI cable – Serial 출력을 PC에서 받기 위해 guide 문서에는 TTL-232R을 사용하라고  나와 있는데 Amazon.com에서 배송비 빼고 $23정도에 판매한다. 하지만 국내에서도 호환가능한 케이블을 16,500원에 구할 수 있었는데 Windows 10에서 잘 인식되지 않았고 (Windows 7 / Linux에서는 잘 동작함) 핀 배열이 달라서 직접 배선을 연결해 주어야 하는 문제가 있기는 했다. FTDI 항목 참조.
  • HDMI monitor와 cable – 내부 display가 없기 때문에 화면 출력을 위해서는 Micro HDMI 변환 젠더나 이를 지원하는 cable이 있어야 한다.
  • Mouse / Keyboard – USB를 지원하는 mouse와 keyboard가 필요 하다.
  • SD card (16GB 이상) – Android OS가 설치되는 공간이다.
  • USB (thumb) drive – Android OS를 올릴 image를 flashing하기 위해 필요하다 5GB 이상이 필요하다고 하는데, 실제로는 그렇게 image가 큰 것 같진 않다.

Hooking up

minnowboardMAX_connection
(* Image from Minnowboard MAX wiki)

  • Micro-HDMI : HDMI를 지원하는 monitor와 연결
  • Network : Android image file들을 전송해 줄 host와 같은 network에 유선 LAN cable로 연결
  • Power : 구매시에 포함되어 있는 5V adapter에 연결
  • USB thumb drive : Fastboot image를 포함하고 있는 USB drive를 연결
  • USB keyboard : BIOS와 fastboot 진입 후 메뉴 선택등을 위해 keyboard를 연결
  • FTDI Serial : BIOS menu 선택이나 booting log를 보기 위해 필요하나 없어도 동작에는 문제가 없다.

FTDI 연결

“FTDI Serial”의 핀 배열은 다음과 같다.

minnowboardMAX_FTDI
(* Image from Minnowboard MAX wiki)

PN-USBTTL_connector추천되는 TTL-233R cable을 사용한다면 그냥 연결만 해도 되겠지만, 국내에서 판매하는 PN-USBTTL 제품은 GND / VCC / TXD / RXD 만을 지원하는데 이 네개만 연결해도 동작에는 문제가 없다. 다만 한가지 주의 할 점은 일반적인 연결과 달리 MinowboardMAX의 FTDI TXD연결 (4번핀)은 이 케이블의 G-TXD, RXD연결(5번핀)은 W-RXD로 연결해 주어야 한다는 점이다. 일반적으로 RX-TX, TX-RX로 연결하는 것과 다르다.

정리하면 다음과 같다.

FTDI Pin # PN-USBTTL connector
1 (GND) B-GND
3 (VCC) R-VCC
4 (TXD) G-TXD
5 (RXD) W-RXD

마지막으로 serial monitor program (PuTTY나 Minicom 같은)을 열어서 설정을 해주면 serial 입출력을 위한 준비는 끝난다.

Baud rate: 115200
Flow Control: No
Data bits: 8
Stop bits: 1

Firmware update

MinnowboardMAX를 구매 할 때 포함되어 있는 BIOS의 버전은 최신이 아닐 가능성이 많다. Version 0079 이상이면 굳이 업데이트 할 필요는 없으나 필요하다면 다음 과정에 따라 최신 firmware로 업데이트 할 수 있다.

  • Intel firmware resource center에서 MinnowboardMAX용 firmware를 download
  • USB thumb drive를 FAT32로 포맷하고 다운로드 받은 zip file을 풀어서 모든 내용을 복사
  • USB thumb drive를 MinnowboardMAX에 연결하고 전원을 켜기
  • Booting중 F2 혹은 DEL key를 눌러서 BIOS로 진입해서 UEFI shell을 실행
  • UEFI shell에서 다음의 명령어를 입력해서 firmware update를 실행
UEFI shell> fs0:
UEFI fs0:\> MinnowBoard.MAX.FirmwareUpdateX64.efi MinnowBoard.MAX.X64.082.R01.bin

Android image file 구하기

  • Pre-built binary download
    : 빌드 안해도 되는건 좋은데, userdebug image는 su 명령어를 사용할 수 없어서 제약이 있을 수 있다는 점을 고려해야 한다.
wget https://download.01.org/android-ia/releases/android-5.1.0_r1-ia0-minnowboard_max-64bit-userdebug.zip
  • MinnowboardMAX용 Android source code를 download 받고 직접 build
repo init -u https://github.com/android-ia/platform_manifest -b release/android-5.1.0_r1-ia0
repo sync -j4 -q -c --no-clone-bundle
source build/envsetup.sh
lunch minnow_64p-eng
make -j$(nproc) dist

Creating a fastboot USB thumb drive

Android image를 구했다면 fastboot-usb.img file을 USB thumb drive에 write한다. Linux를 사용한다면 USB drive를 unmount한다음 dd utility로 해당 device 경로에 write하고, Windows를 사용한다면 Win32 Disk imager 혹은 그와 비슷한 program을 사용하면 된다.

다음 예제는 Linux host에서 /media/THUMBDRIVE에 mount된 drive를 해제하고 /dev/sdg1 device path에 writing하는 상황을 설명한다. 당연한 말이지만, 자동으로 mount되지 않았다면 umount를 실행 필요가 없고, 연결된 device path에 대한 정보는 dmesg를 통해 확인할 수 있다.

sudo umount /media/THUMBDRIVE
sudo dd bs=1M if=fastboot-usb.img of=/dev/sdg1 conv=fsync

Flashing Android Image files

fastboot-usb.img가 설치된 USB thumb drive를 연결하고 USB drive로 MinnowboardMAX를 부팅시키면 다음과 같은 화면이 나온다. ‘BOOTLOADER ERROR CODE 04’라고 나오긴 하지만 사실 오류는 아니고 사용자입력을 기다리는 화면이다. SD card와 LAN cable이 제대로 연결되었는지 다시 한 번 확인하고 계속 하기위해 연결된 key board의 윗쪽 화살표키를 누른다.

Intel_bootloader_error_code_04

한참동안 화면 업데이트가 없어서 동작하지 않는것 처럼 보일수도 있는데, 연결된 Serial port로는 kernel이 load되고 실행되는 과정이 보이고 있을 것이다. Serial port에서 booting이 완료되는 것이 보이면, MinnowboardMAX와 같은 network에 연결되어 있는 host PC에서 다음 명령어를 수행해서 image file들을 LAN으로 전송한다.

# Linux
$ provision.sh <IP_ADDR>

# Windows
C:> provision.bat <IP_ADDR>

Tips

  • 실제로 잘 먹힌것인지는 모르겠는데… Network이 안 잡혀서 헤매다가 BIOS에서 IPv4 설정하는 menu가 있어서 DHCP를 설정해 주었다. Network을 못 잡는 다거나 한다면 한번 시도해 보자.
    – Device Manager -> Network Device List -> MAC:xx:xx:xx:xx:xx:xx -> IPv4 Network

SC_enabling_DHCP_from_BIOS

  • Guide 문서에 나와 있는것과는 달리 network 설정화면이 나오지 않아서 MinnowboardMAX의 IP 주소가 무엇을 받았는지 몰랐는데, 공유기의 IP 할당 테이블을 보면 유추할 수 있다.

SC_guessing_minnowboard_IP“할당된 device는 4개인데 사용중인 디바이스는 3개니까… IP는 중간에 건너뛴 4가 아니면 6으로 끝나지 않을까?” 너무 막 찍는것 같지만 실제로 4번으로 끝나는 IP였다! 😉

Boot up

이제 USB thumb drive를 빼고, BIOS menu에서 SD card로 부팅하도록 설정하면 Android로 부팅되는 것을 볼 수 있을 것이다.

ADB over network

USB로 직접 연결할 수 없으므로, 같은 network에 연결되어 있는 PC에서 ADB over network으로 ADB를 실행시킬 수 있다. 먼저 serial emulator program으로 Android device에서 다음을 실행 시킨다.

#> adb tcpip 5555

이제 host PC에서 다음 명령어로 연결한다.

CMD> adb connect 192.168.173.4:5555
CMD> adb devices

References & Links

[Tip] Git:삭제한 file들 한번에 정리하기

Git repository에서 많은 파일들을 삭제하고 적용하는 경우, git rm 명령어로 파일이름들을 하나하나 입력해 주는것은 무척 귀찮다. 예전에는 세로 편집이 되는 Ultra-edit 같은 utility로 삭제된 목록을 복사한 다음 git rm 명령어 line으로 편집해서 다시 terminal에 붙여 넣는 삽질을 했었다.

Git-ls-files command를 쓰면 더 이상 그럴 필요가 없다. 이 command는 repository의 file들을 지정한 상태별로 알려준다. 예를들어, 삭제된 file의 목록을 보려면 다음과 같이 하면 된다.

git ls-files --deleted

이렇게 얻어진 목록을 git rm command에 넘겨도 대부분의 경우 동작하겠지만, 파일 이름에 공백문자를 포함하는 경우에는 제대로 동작하지 않는다. 공백문자에 대해서도 제대로 동작하도록 sed로 공백문자 앞에 ‘\’를 삽입하려면 다음과 같이 한다.

git ls-files --delete|sed 's/ /\\ /g'|xargs git rm

XPS13에 MS Windows 설치2 –세부설정-

Mac mini의 사망진단과 더불어 8년여의 Mac OS X 생활 청산과 Windows 7으로 강제이주가 시작되었다.(이 포스트 참조) XPS13은 비교적 좋은 spec의 laptop 이지만, SSD가 작아서 이전에 쓰던 데이터를 모두 복사해 올 수는 없기에 필요한 것들만 c:에 넣고 나머지는 외장 디스크에 복사해 두고 쓰기로 했다. 다음은 Mac mini에서 XPS13(Windows 7)으로 돌아오는 과정을 메모한 것이다.

Data 가져오기

영화, 사진, 음악 등등의 data를 Windows로 가져 오려면 HFSExplorer의 도움이 필요하다. 가져올 대부분의 데이터는 계정 디렉토리 안에 있는데, iPhoto의 경우 “Users/계정명/Pictures/iPhoto 라이브러리” 경로에서 찾을 수 있다.

 

HSF+ disk를 format하기

기존에 Mac에서 사용해 오던 disk를 format하려고 partition을 지웠더니 “강제로 보호된 매개 변수 집합이 없이 보호된 파티션을 삭제할 수 없습니다.–Cannot delete a protected partition without the force protected parameter set는 메세지가 뜨면서 진행되지 않는다. 200MB 정도니까 그냥 버려도 되지만 찜찜하다면 이 post를 따라하면 삭제할 수 있다.

 

대체 Applications

* iPhoto
: iPhoto는 2015년 3월 현재 Mac용으로만 배포되므로 이를 대체할 application을 찾아야 한다. Google Picasa는 Google+ 계정과의 연동에서는 좋지만 나는 사진을 온라인에 올려두는 것을 그다지 좋아하지 않는다. 게다가 Picasa는 iPhone에서 찍은 *.mov file을 제대로 import하지 못하는 문제도 있어서 Windows Essentials에 포함된 MS Photo Gallery를 사용하기로 했다.

* FFView
: 만화책 뷰어는 워낙 유명한 꿀뷰가 있으니 별 고민 없이 설치.

* Automator
: Mac에서는 별다른 utiltity 없이 Automator로 파일 변환 등의 일괄 작업을 해왔는데 Windows에서는 개념상 좀 다르긴 하지만 유명한 Total commander가 있다. 그리고 어찌어찌해서 이것과 비슷한 무료 프로그램인 Multi commander를 찾았다.

 

Steam Library

250GB SSD는 게임을 저장하기에 여유로운 공간은 아니다. Steam의 설정 -> 다운로드 -> ‘콘텐츠 라이브러리’ 항목에서 외장 하드디스크로 게임 저장 공간을 설정해 줄 수 있다. 여기에 설정한 값은 game을 ‘설치’할 때 선택할 수 있는 list로 표시된다.

sc_steam_setting_lib_path

Bluetooth keyboard/mouse 사용

Dell XPS website에 있는 Bluetooth 관련 driver를 update해도 제대로 동작하지 않았다.

여기 저기 헤매다가 Intel website에서 “Intel Driver Update Utility“를 찾게 됐는데, 이 utility로 검색된 wireless와 bluetooth driver를 update하니 새로운 제대로 동작했다. Apple keyboard와 Magic mouse를 pariing하기 전에 Boot camp 지원 software 압축파일을 받아서 다음 파일들을 미리 설치해 둔 다음 진행하는게 좋다.

  • AppleKeyboardInstaller64.exe
  • AppleWirelessMouse64.exe

 

External display 사용과 wake up 문제

Windows7 기본설정은 뚜껑(lid)를 닫을 때 절전모드로 진입하게 되어 있다. “제어판\하드웨어 및 소리\전원 옵션\덮개를 닫으면 수행되는 작업 선택”에서 ‘덮개를 닫을 때’ 항목을 조절하면 lid를 닫을 때도 상태를 유지할 수 있다.

sc_xps13_win7_lid_closing_options그리고 lid를 연 상태에서는 절전모드에서 mouse에 의해 깨어나지만 닫은 상태에서는 깨어나지 못하는 문제가 있었는데, BIOS A10 version upgrade로 해결 되었다. BIOS와 upgrade utility는 Dell hompage에서 찾을 수 있다.

 

Ghost clicking(?)

뚜껑을 닫고 XPS13을 사용하다 보면 비 주기적으로 누르지도 않았는데 mouse click이 생긴다. 처음에는 Apple wireless mouse의 driver 문제인 줄 알고 driver를 삭제해 볼까 했는데 뚜껑을 열었을 때는 문제가 없어서 trackpad를 꺼봤더니 문제가 해결되었다;;;;

sc_xps13_trackpad_off

Update) 2015년 8월 현재, Dell website에 올려진 최신 트랙패드 드라이버를 설치하면 리드가 닫혔을 때 자동으로 트랙패드가 disable되고 열면 enable되므로 별도의 설정이 필요하지 않다.