망고210 android fastboot nand write 방법

14
1. 오류! 참조 원본을 찾을 없습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 1. 망고210 Android 1.1. Android Fastboot NAND Write 방법 망고210 2010128이후 소스 부터는 NANDWrite경우 Fastboot이용하여 Write해야 합니다. 이미 고칼로리님이 올려 놓으신 http://cafe.naver.com/embeddedcrazyboys/9335 참조해서 다시 세부 정리 보았습니다. 일단 이미지맊 올려 보도록 하겠습니다. 1.1.1. U-boot NANDWrite하기 소스를 먼저 받습니다. 2010126일자 U-boot 다운로드하기 컴파일 방법 # tar zxvf mango210_uboot_src_2010_12_06.tgz #cd uboot #vi Makefile #make mango210_config #make 하면 됩니다. Makefile에서 tftp root이미지를 copy하는 경로를 자신의 PC맞게 수정을 합니다. 저는 /share/image tftp root 디렉토리입니다. $(obj)u-boot.bin: $(obj)u-boot $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ cp -f u-boot.bin /share/image/mango210_uboot.bin 이제 맊들어진 u-boot.bin 바이너리를 NANDWrite하는 방법에 대해서 설명 드리겠습니다. 망고210 보드를 구매 SDHC Class6 SD card보드에 삽입하고, BOOT 스위치를 SD boot하신 u-boot실행 아무키나 누르시면 됩니다.

Upload: -

Post on 27-Jun-2015

8.497 views

Category:

Technology


4 download

DESCRIPTION

망고210(S5PV210) fastboot 명령으로 NAND Write하는 방법 설명

TRANSCRIPT

Page 1: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1

1. 망고210 Android

1.1. Android Fastboot NAND Write 방법

망고210 2010년 12월 8일 이후 소스 부터는 NAND에 Write할 경우 Fastboot를 이용하여

Write를 해야 합니다.

이미 고칼로리님이 올려 놓으신

http://cafe.naver.com/embeddedcrazyboys/9335

참조해서 다시 세부 정리 보았습니다. 일단 이미지맊 올려 보도록 하겠습니다.

1.1.1. U-boot NAND에 Write하기

소스를 먼저 받습니다.

2010년 12월6일자 U-boot 다운로드하기

컴파일 방법

# tar zxvf mango210_uboot_src_2010_12_06.tgz

#cd uboot

#vi Makefile

#make mango210_config

#make

하면 됩니다.

Makefile에서 tftp root로 이미지를 copy하는 경로를 자신의 PC에 맞게 수정을 합니다.

저는 /share/image 가 tftp root 디렉토리입니다.

$(obj)u-boot.bin: $(obj)u-boot

$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@

cp -f u-boot.bin /share/image/mango210_uboot.bin

이제 맊들어진 u-boot.bin 바이너리를 NAND에 Write하는 방법에 대해서 설명 드리겠습니다.

망고210 보드를 구매 시 SDHC Class6 SD card를 보드에 삽입하고, BOOT 스위치를 SD boot로 하신

후 u-boot가 실행 된 후 아무키나 누르시면 됩니다.

Page 2: 망고210 android fastboot nand write 방법

2

그럼 아래와 같이 터미널 창에 뜹니다. 물롞 터미널 프로그램을 실행 한 상태여야 합니다.

3핀 시리얼 케이블도 보드와 PC를 연결해야 합니다.

U-Boot 1.3.4 (Nov 26 2010 - 21:04:28) for MANGO210

CPU: S5PV210@800MHz(OK)

APLL = 800MHz, HclkMsys = 200MHz, PclkMsys = 100MHz

Page 3: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 3

MPLL = 667MHz, EPLL = 80MHz

HclkDsys = 166MHz, PclkDsys = 83MHz

HclkPsys = 133MHz, PclkPsys = 66MHz

SCLKA2M = 200MHz

Serial = CLKUART

Board: MANGO210

DRAM: 512 MB

SD/MMC: 7647MB

NAND: 256 MB

In: serial

Out: serial

Err: serial

checking mode for fastboot ...

Hit any key to stop autoboot: 0

MANGO210 #

MANGO210 # nand scrub

NAND scrub: device 0 whole chip

Warning: scrub option will erase all factory set bad blocks!

There is no reliable way to recover them.

Use this command only for testing purposes if you

are sure of what you are doing!

Really scrub this NAND flash? <y/N>

Erasing at 0x6660000 -- 40% complete.

NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5

Erasing at 0x87a0000 -- 53% complete.

NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5

Erasing at 0xb320000 -- 70% complete.

NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5

Erasing at 0xffe0000 -- 100% complete.

Scanning device for bad blocks

OK

MANGO210 # nand erase 0 40000;tftp 21000000 mango210_uboot.bin;nand write 21000000 0

40000

그리고, NAND BOOT로 모드를 변경합니다.

Page 4: 망고210 android fastboot nand write 방법

4

부팅하면 아래와 같이 u-boot가 실행 되면 OK입니다.

U-Boot 1.3.4 (Jan 10 2011 - 23:17:47) for MANGO210

CPU: S5PV210@800MHz(OK)

APLL = 800MHz, HclkMsys = 200MHz, PclkMsys = 100MHz

MPLL = 667MHz, EPLL = 80MHz

HclkDsys = 166MHz, PclkDsys = 83MHz

HclkPsys = 133MHz, PclkPsys = 66MHz

SCLKA2M = 200MHz

Serial = CLKUART

Board: MANGO210

DRAM: 512 MB

SD/MMC: 7647MB

NAND: 256 MB

*** Warning - using default environment

In: serial

Page 5: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 5

Out: serial

Err: serial

checking mode for fastboot ...

Hit any key to stop autoboot: 0

MANGO210 #

1.1.2. 먼저 Android SDK 및 ADT(Android Development Tool) 설치

저는 Window XP 환경입니다. 이미 설치 되어 있지맊 다시 환경을 Setting 해 보도록 하겠습니다.

http://developer.android.com/sdk/index.html

에서 SDK를 다운로드 받습니다.

zip파일 또는 exe 파일 둘 중에 아무거나 받으시면 됩니다.

저는 installer_r08-windows.exe파일을 다운받았습니다.

그리고, 클릭해서 실행 시키고, 설치하시면 됩니다.

Page 6: 망고210 android fastboot nand write 방법

6

마지막에 start s아를 시행하느냐 묻는데, 실행한다고 클릭하면 아래과 같이 묻습니다.

모두 Accept하시고 설치하시면 됩니다.

모두 업데이트 하면,

Page 7: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 7

Usb driver 폴더가 생성됩니다.

드라이버 설치 시

Page 8: 망고210 android fastboot nand write 방법

8

다음 클릭 하면 됩니다. 경고 창이 뜨는데 무시하시고, 확인 누르시면 됩니다.

Window command 명령에서 “fastboot”를 입력합니다.

C:\Program Files\Android\android-sdk-windows>fastboot

'fastboot'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는

배치 파일이 아닙니다.

위와 같이 에러가 발생하면, PATH에 추가를 합니다.

Page 9: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 9

“C:\Program Files\Android\android-sdk-windows\tools\” 경로를 추가합니다.

그리고, command 창을 새로 실행 후 fastboot를 입력하고 아래와 같이 에러가 발생을 하면,

“C:\Program Files\Android\android-sdk-windows\platform-tools\”

을 “내컴퓨터->속성->고급->환경변수”

에 추가합니다.

C:\Program Files\Android>fastboot

usage: fastboot [ <option> ] <command>

commands:

update <filename> reflash device from update.zip

flashall flash boot + recovery + system

flash <partition> [ <filename> ] write a file to a flash partition

erase <partition> erase a flash partition

getvar <variable> display a bootloader variable

boot <kernel> [ <ramdisk> ] download and boot kernel

Page 10: 망고210 android fastboot nand write 방법

10

flash:raw boot <kernel> [ <ramdisk> ] create bootimage and flash it

devices list all connected devices

reboot reboot device normally

reboot-bootloader reboot device into bootloader

options:

-w erase userdata and cache

-s <serial number> specify device serial number

-p <product> specify product name

-c <cmdline> override kernel commandline

-i <vendor id> specify a custom USB vendor id

-b <base_addr> specify a custom kernel base address

-n <page size> specify the nand page size. default:

2048

위와 같이 나오면, Setting이 끝났습니다.

1.1.3. Fast boot 명려으로 NAND에 Write하기

명령은 간단합니다.

dos>fastboot –w flash kernel mango210_zImage

dos>fastboot flash system system.img

dos>fastboot flash ramdisk ramdisk-u-boot.img

dos>fastboot flash userdata userdata.img

NAND Boot 시 “Reset”키 누르고, KEY1또는 KEY2를 계속 누릅니다.

그럼 아래와 같이 터미널 창에 메시지가 나옵니다.

U-Boot 1.3.4 (Jan 10 2011 - 23:17:47) for MANGO210

CPU: S5PV210@800MHz(OK)

APLL = 800MHz, HclkMsys = 200MHz, PclkMsys = 100MHz

MPLL = 667MHz, EPLL = 80MHz

HclkDsys = 166MHz, PclkDsys = 83MHz

HclkPsys = 133MHz, PclkPsys = 66MHz

SCLKA2M = 200MHz

Serial = CLKUART

Board: MANGO210

DRAM: 512 MB

Page 11: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 11

SD/MMC: 7647MB

NAND: 256 MB

In: serial

Out: serial

Err: serial

checking mode for fastboot ...

Fastboot: employ default partition information

[Partition table on NAND]

ptn 0 name='bootloader' start=0x0 len=0x100000(~1024KB)

ptn 1 name='misc' start=0x100000 len=0x500000(~5120KB)

ptn 2 name='kernel' start=0x600000 len=0x500000(~5120KB)

ptn 3 name='ramdisk' start=0xB00000 len=0x300000(~3072KB)

ptn 4 name='system' start=0xE00000 len=0x7800000(~122880KB) (Yaffs)

ptn 5 name='cache' start=0x8600000 len=0x5000000(~81920KB) (Yaffs)

ptn 6 name='userdata' start=0xB800000 len=N/A (Yaffs)

Fastboot 환경이 드라이버를 설치하라는 창이 뜨면,

C:\Program Files\Android\android-sdk-windows\google-usb_driver\

에 있는 드라이버를 설치하시면 됩니다.

Window XP환경에서 DOS command창을 실행을 합니다.

커널 이미지를 업데이트 하는 방법은

Mango210_zImage 파일이 있는 디렉토리 이동을 해야 합니다.

fastboot –w flash kernel mango210_zImage

을 수행을 합니다. 수행 결과는 아래와 같습니다.

Y:\image>fastboot -w flash kernel mango210_zImage

sending 'kernel' (3177 KB)... OKAY [ 1.719s]

writing 'kernel'... OKAY [ 2.828s]

erasing 'userdata'... OKAY [ 0.563s]

erasing 'cache'... OKAY [ 0.594s]

finished. total time: 5.703s

Page 12: 망고210 android fastboot nand write 방법

12

이제 파일 시스템을 Write 해 보겠습니다.

12월8일자 Froyo 소스를 받습니다.

망고210 Froyo 2010년 12월 8일 다운로드

압축을 풀면 ,”image” 폴더안에 “ramdisk-u-boot.img system.img userdata.img”

확장자가 img인 파일이 세개가 있습니다.

[icanjji@CRZTECH froyo]$ cd image

[icanjji@CRZTECH image]$ pwd

/home/icanjji/work/mango210/froyo/image

[icanjji@CRZTECH image]$ ls

ramdisk-u-boot.img system.img userdata.img

[icanjji@CRZTECH image]$

DOS command 창에서 해당 ramdisk-u-boot.img 파일이 있는 경로로 이동합니다.

Dos>fastboot flash system system.img

위와 같이 명령을 입력합니다. 그럼 아래와 같이 수행이 됩니다.

Y:\image>fastboot flash system system.img

sending 'system' (104401 KB)... OKAY [ 51.859s]

writing 'system'... OKAY [112.844s]

finished. total time: 164.703s

명령 인자를 보면

Dos>fastboot flash <partition> <filename>

입니다. 파티션을 결정하는 부분은 커널 소스에 있습니다.

위치는 ./drivers/mtd/nand/s3c_nand.c 에 있습니다.

#if defined(CONFIG_ARCH_S5PV210)

struct mtd_partition s3c_partition_info[] = {

#if defined(CONFIG_MACH_MANGO210)

{

.name = "bootloader",

.offset = 0, /* for bootloader */

.size = (1*SZ_1M),

// .mask_flags = MTD_CAP_NANDFLASH,

},

{

.name = "recovery",

.offset = MTDPART_OFS_APPEND,

Page 13: 망고210 android fastboot nand write 방법

1. 오류! 참조 원본을 찾을 수 없습니다.

www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 13

.size = (5*SZ_1M),

//.mask_flags = MTD_CAP_NANDFLASH,

},

{

.name = "kernel",

.offset = MTDPART_OFS_APPEND,

.size = (5*SZ_1M),

},

{

.name = "ramdisk",

.offset = MTDPART_OFS_APPEND,

.size = (3*SZ_1M),

},

{

.name = "system",

.offset = MTDPART_OFS_APPEND,

.size = (120*SZ_1M),

},

{

.name = "cache",

.offset = MTDPART_OFS_APPEND,

.size = (80*SZ_1M),

},

{

.name = "userdata",

.offset = MTDPART_OFS_APPEND,

.size = MTDPART_SIZ_FULL,

참고하시면 됩니다.

커널 부팅 시 로그를 보면 아래와 같이 출력이 됩니다.

Creating 7 MTD partitions on "s5pv210-nand":

0x000000000000-0x000000100000 : "bootloader"

0x000000100000-0x000000600000 : "recovery"

0x000000600000-0x000000b00000 : "kernel"

0x000000b00000-0x000000e00000 : "ramdisk"

0x000000e00000-0x000008600000 : "system"

0x000008600000-0x00000d600000 : "cache"

0x00000d600000-0x000010000000 : "userdata"

Ramdisk를 NAND에 Write합니다.

Page 14: 망고210 android fastboot nand write 방법

14

Dos>fastboot flash ramdisk ramdisk-u-boot.img

위와 같이 명령을 입력합니다. 그럼 아래와 같이 수행이 됩니다.

Y:\image>fastboot flash ramdisk ramdisk-u-boot.img

sending 'ramdisk' (1267 KB)... OKAY [ 0.797s]

writing 'ramdisk'... OKAY [ 1.250s]

finished. total time: 2.047s

마지막으로 userdata.img를 Write합니다.

Dos> fastboot flash userdata userdata.img

위와 같이 명령을 입력합니다. 그럼 아래와 같이 수행이 됩니다.

Y:\image>fastboot flash userdata userdata.img

sending 'userdata' (1320 KB)... OKAY [ 0.797s]

writing 'userdata'... OKAY [ 2.375s]

finished. total time: 3.172s

망고 보드에 “Reset” 키를 누릅니다.