처음에 Fastboot 사용법을 정확히 숙지하지 못해, 좀 당황했는데 이제 좀 알겠다.
uboot에서 fastboot 모드로 진입을 하여, 윈도우에서 연결하여 이를 사용하는 방식이다.
그래서 uboot에서 fastboot를 제공하지 않으면 이를 실행할 수가 없다.
핸드폰 일 경우, 볼륨다운+전원버튼을 기기가 켜질때까지 누르고 있으면, 화면이
바뀐다고한다. 이를 bootloader모드라고 하며 이때 window에서 역시 접근이 가능하다.
2. U-BOOT에서 FASTBOOT MODE 설정 ( bootloader 모드)
아래와 같이 uboot에서 fastboot command를 입력 후 fastboot 모드로 진입이 되며,
Window의 fastboot 연결을 기다린다.
U-Boot 2010.12-svn (Nov 28 2012 - 11:35:59) for ODROID4412 CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1000MHz, MPLL = 880MHz DRAM: 2 GiB PMIC VERSION : 0x00, CHIP REV : 2 BL1 version: N/A (TrustZone Enabled BSP) Checking Boot Mode ... SDMMC MMC Device 0: 7695 MB MMC Device 1 not found *** Warning - using default environment ModeKey Check... run normal_boot Net: No ethernet found. Hit any key to stop autoboot: 0 ODROID4412 # ODROID4412 # fastboot [Partition table on MoviNAND] ptn 0 name='fwbl1' start=0x0 len=N/A (use hard-coded info. (cmd: movi)) ptn 1 name='bl2' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 2 name='bootloader' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 3 name='tzsw' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 4 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi)) ptn 5 name='ramdisk' start=N/A len=0x1000000(~16384KB) (use hard-coded info. (cmd: movi)) ptn 6 name='system' start=0x43D2200 len=0x380BDE00(~918263KB) ptn 7 name='userdata' start=0x3C490000 len=0x400D9000(~1049444KB) ptn 8 name='cache' start=0x7C569000 len=0x801B200(~131180KB) ptn 9 name='fat' start=0x84584200 len=0x4C87BE00(~1253871KB) Insert a OTG cable into the connector!
Fastboot 기본사용법
https://github.com/red-root/PortingARMLinux/wiki/Fastboot-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95
http://www.jinhaesi.com/bbs/skin/ggambo7002_board/print.php?id=jaewonquestion&no=62
3. Fastboot 기본 사용법
Android Device의 Flash를 Erase,Write 및 Reboot 조절이 가능하다.
- fastboot --help 기본사용법
fastboot
command :
- flash
[ ] : 해당파일을 partition에 write한다. - erase
: partition 을 지운다. - format
: partition을 format 한다. - boot
[ ] : 해당 kernel와 ramdisk를 download한 후 boot한다. - devices : 연결된 device list를 보여준다.
options:
- -w : erase userdata and cache
기본예제들
기본이미지 write
fastboot flash kernel arch/arm/boot/zIamge
fastboot flash kernel arch/arm/boot/zImage
fastboot flash ramdisk out/target/product/odroidx2/ramdisk-uboot.img
fastboot flash system out/target/product/odroidx2/system.img
Ref. (omap에서 사용하는 fastboot )
http://omappedia.org/wiki/Android_eMMC_Booting
Ref.
http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidx&kind=&bid=1564
4. Linux 에서 Image Control
dd 명령어 사용
- if = input file
- of = output file
- iflag = input flag, direct 와 dsync 있다.
- oflag = output flag
- seek = output file 시작 위치 기준으로 block 단위로 넘어간다.
- skip = input file 시작 위치 기준으로 block 단위로 넘어간다.
- bs = 한번에 처리할 bytes, 이를 block ( ibs , obs 개별 설정도 가능)
- count = 이를 몇번 처리할 총 횟수 ( bs * count 용량계산 512x32 = 16k bytes)
# sudo dd iflag=dsync oflag=dsync if=./u-boot-bl1.bin of=/dev/sdb seek=1 // u-boot-bl1.bin 파일을 /dev/sdb 에 1부터 write # sudo dd iflag=dsync oflag=dsync if=./u-boot.bin of=/dev/sdb seek=33 // u-boot.bin 파일을 /dev/sdb에 33block부터 write # sudo dd iflag=dsync oflag=dsync if=/dev/zero of=/dev/sdb bs=512 count=32 // /dev/sdb를 16k (512 x 32 ) 만큼 지운다. # dd iflag=dsync oflag=dsync if=./dump-img.img of=/dev/sde bs=512 count=1024 //512kbyt 만큼 /dev/sde에 dump-img.img write # dd iflag=dsync oflag=dsync of=./dump-img.img if=/dev/sde bs=512 count=1024 //512kbyt 만큼 /dev/sde에 dump-img.img read # dd if=/dev/mtd2 of=./default_env.img // 기본적인 read
http://www.thomas-krenn.com/en/wiki/Linux_I/O_Performance_Tests_using_dd
http://www.mapoo.net/entry/dd-%EC%98%88%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%98%B5%EC%85%98%EC%9D%98-%EC%9D%98%EB%AF%B8
http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidq2&kind=&bid=2482
기타 명령어
# eraseall /dev/mtd3
# hexdump -C default_env.img | more
http://forum.falinux.com/zbxe/index.php?document_srl=561988&mid=lecture_tip
http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroida&kind=9&bid=563
http://blog.naver.com/PostView.nhn?blogId=dong880510&logNo=140162582089
http://www.vim.org/vimscriptlinks.php