SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
1. 오류! 참조 원본을 찾을 수 없습니다.



1. 망고210 매뉴얼
망고210 보드를 처음 사용하시는 멤버 붂들께 도움이 되도록 , 소스 일자 별로 올리는 방법을
정리했습니다. 이미 카페에 모두 공개가 되어 있지맊, 한 개의 파일로 정리 한 것입니다.


1.1. 처음 보드를 받아서 보드를 점검 해 보기
우선 보드를 받아서 젂원을 연결하고, SD Boot 모드로 설정 후 보드를 구매할 때 받은 MMC card를
보드에 삽입합니다.




                                 1-1 SD Boot 모드
SDHC card는 “1번” SDIO_0에 삽입하면 됩니다.




            www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   1
어댑터,3pin Serial cable을 보드에 연결합니다.


디폴트로 Android가 부팅이 됩니다.
이제 소스 일자 별로 올리는 방법을 정리 한 것을 하나씩 살펴 보겠습니다.
이젂 버젂을 올리싞      멤버는 최싞 일자로 올리시기 바랍니다.

1.2.   망고210 8월 6일자 u-boot,kernel,froyo 포팅하기

1.2.1. U-boot 포팅하기

(망고210 & u-boot) u-boot 이미지 올리기 (sd booting)
망고210은 현재 SD booting, usb mode, Nand 부팅 , Secure booting 을 지원합니다.




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




이번에는 SD booting을 해 보도록 하겠습니다. S5PV210 데이터시트를 참조하면,




위와 같습니다.




           www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   3
SD booting을 하려면, SW100 스위치를 SD booting으로 맞추어 주어야 합니다.




S5PV210 DataSheet는 위와 같이 설정을 해야 SD/MMC 부팅을 지원을 합니다.
따라서, SW100 스위치는 b‟001100




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




u-boot소스는 다운 받습니다.
-u-boot 소스 다운로드
압축 풀기
>tar xvf mango210_uboot_2010_08_03.tgz
망고210 u-boot는 s5pc110 cpu와 거의 동일한 레지스터를 가집니다.
컴파일 방법
>make mango210_config
>make
만들어진 u-boot 이미지를 SD card에 Write하는 방법
필요한 것들
     1)   sdwrite-210 스크릱트 : BL1 이미지와 u-boot 이미지를 SDHC card Write하는 기능 , 추후
          kernel,파일시스템 모두 Write하도록 맊들 예정
     2)   u-boot 이미지 : 컴파일 한 결과의 산물, 컴파일러(GCC 4.3.3 (2009q1) 또는 GCC 4.2.2 사
          용) , 컴파일러 설치 방법은 http://cafe.naver.com/embeddedcrazyboys/6769 참조 바랍니다.
     3)   SDHC card Class6 Tflash 준비


순서
     1)   Sdwrite 툴 다운받기
     2)   망고210 u-boot 이미지 다운받기



                 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   5
3)   망고210 u-boot 이미지를 sdwrite-210 파일이 있는 디렉토리에 copy
         예)cp mango210_uboot.bin ../mango210-sdtool
    4)   SDHC card를 리눅스가 설치된 PC에 삽입




    5)   “dmesg |tail “명령으로 디바이스 정보를 봅니다.
                  [root@icanjji-linux mango210-sdtool]# dmesg |tail
                  scsi 16:0:0:0: Direct-Access         ChipsBnk SD/MMCReader        4081 PQ: 0 ANSI:
                  2
                  sd 16:0:0:0: Attached scsi generic sg2 type 0
                  sd 16:0:0:0: [sdb] 8040448 512-byte logical blocks: (4.11 GB/3.83 GiB)
                  sd 16:0:0:0: [sdb] Write Protect is off
                  sd 16:0:0:0: [sdb] Mode Sense: 0b 00 00 08
                  sd 16:0:0:0: [sdb] Assuming drive cache: write through
                  sd 16:0:0:0: [sdb] Assuming drive cache: write through
                   sdb:
                  sd 16:0:0:0: [sdb] Assuming drive cache: write through
          sd 16:0:0:0: [sdb] Attached SCSI removable disk


    6)   ./sdwrite-210 /dev/sdb mango210_uboot.bin
                  [root@icanjji-linux         mango210-sdtool]#          ./sdwrite-210      /dev/sdb
                  mango210_uboot.bin
                  ./sdwrite-210: line 11: [-e: command not found
                  SD Card Writer BL1, Uboot
                  T-Flash-device:/dev/sdb Mango-image:mango210_bl1.bin mango210_uboot.bin
                  NSectors:8040448,      Do      you     want   to   write   mango210_bl1.bin   and
                  mango210_uboot.bin(yes/no): yes




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


                 Erase BL1 and UBOOT Area


                 1072+0 records in
                 1072+0 records out
                 548864 bytes (549 kB) copied, 0.516379 s, 1.1 MB/s


                 Write BL1 and UBOOT


                 15+1 records in
                 15+1 records out
                 8092 bytes (8.1 kB) copied, 0.220987 s, 36.6 kB/s
                 468+1 records in
                 468+1 records out
         239800 bytes (240 kB) copied, 1.56035 s, 154 kB/s


    7)   PC에서 SD card를 붂리한 후 망고210 Tflash 에 꽂습니다. (SDIO 0번 채널)




    1번 Tflash Connect에 Tflash를 Insert 하면 됩니다.
    8)   SD booting Mode로 SW100 스위치를 변경 후 젂원을 인가합니다.


부팅 메시지가 아래와 같이 나오면, 문제없이 부팅이 된 것입니다.
U-Boot 1.3.4 (Aug 10 2010 - 00:33:07) for MANGO210




                www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   7
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: 3926MB
NAND:        256 MB
*** Warning - using default environment


In:      serial
Out:      serial
Err:     serial
Hit any key to stop autoboot: 0
reading kernel.. 1073, 8192
MMC read: dev # 0, block # 1073, count 8192 ...8192 blocks read: OK
completed
get_format
-------- 0 --------
Wrong Image Format for bootm command
ERROR: can't get kernel image!
MANGO210 #




1.2.2. 커널 포팅하기(8월6일)

(망고210:s5pv210 & 커널) linux 커널 SD card에 올리기
망고210에서 사용하는 커널 버젂은 2.6.32 버젂입니다.
컴파일러는 GCC 4.3.3 (2009q1) 입니다.
http://cafe.naver.com/embeddedcrazyboys/7433
망고210 uboot 올리기: http://cafe.naver.com/embeddedcrazyboys/7421


커널 2.6.32 소스 다운로드 받기
커널 이미지
Sdwrite 툴 다운받기



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


LCD 선택




컴파일 하기
>tar xvf mango210_kernel_2010_08_06.tgz
>cd kernel
>make mango210_android_defconfig
>./fast_build
이미지 SD card에 Write하기
     1)   컴파일 된 이미지를 sdwrite tool이 있는 디렉토리로 복사


     2)   SD card를 리눅스가 설치 된 PC에 Insert




     3)   “dmesg | tail” 명령으로 디바이스 확인




                www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   9
4)   ./sdwrite-210 /dev/sdb mango210_uboot.bin mango210_zImage




     5)   SD card를 PC에서 제거 후 망고210 보드에 Tflash를 삽입 후
     SW100 스위치를 아래와 같이 변경 후 젂원을 인가하면 됩니다.




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




1.2.3. Froyo 포팅하기(8월6일)

(망고210:s5pv210 & Froyo) Android Froyo build 및 올리기
이제 Root File system을 올려보겠습니다.
그 젂에 u-boot,커널이 sd card에 write가 되어 있어야 합니다.
(망고210 & u-boot) u-boot 이미지 올리기 (sd booting)
(망고210:s5pv210 & 커널) linux 커널 SD card에 올리기
-망고210 Froyo 소스 다운로드 받기
-망고210 Froyo Filesystem 다운로드 받기


일단 소스를 받았으면, 압축을 풉니다.
#tar xvf mango210_froyo_2010_08_06.tgz
#cd froyo
#./mango210_build.sh
컴파일하는데 1시갂 이상 걸릱니다. 컴퓨터 사양이 좋은면 30붂..


NFS 파일 시스템 올리기 (nfs 설정은 각자 알아서하기 바랍니다. 자료는 검색하면 됩니다)
    1)   U-boot 에서 실행이 되면,
    2)   setenv ipaddr 192.168.0.20; setenv gatewayip 192.168.0.1; setenv serverip 192.168.0.4


                 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology              11
(각자 네트워크 맞게 세팅)
     3)   setenv bootargs "root=/dev/nfs rw
          nfsroot=192.168.0.4:/home/icanjji/nfsroot/mango210_froyo
          ip=192.168.0.20:192.168.0.4:192.168.0.1:255.255.255.0:::off init=/init
          console=ttySAC1,115200"
     4)   tftpboot 21000000 mango210_zImage;bootm 21000000


NAND Write 하기 (yaffs2)
선행 환경: tftp,nfs 설정이 되어 있어야 합니다.
     1)   SD card를 망고210 보드에 삽입 후 SD booting으로 부팅
     2)   U-boot 올리기
     >nand scrub
     >nand erase 0 80000;tftp 21000000 mango210_uboot.bin;nand write 21000000 0 80000
     3)   NAND Mode 설정: http://cafe.naver.com/embeddedcrazyboys/7439
     4)   젂원인가하면 NAND에 Write된 u-boot가 실행 됩니다. 안되면 2)번 다시
     5)   setenv ipaddr 192.168.0.20; setenv gatewayip 192.168.0.1;setenv serverip 192.168.0.4;save
     6)   kernel 올리기
          >nand erase 80000 300000;tftp 21000000 mango100_zImage;nand write 21000000 80000
          300000
     7)   파일 시스템 올리기
          >tftp 21000000 mango210-froyo.yaffs2
          >nand erase 400000 A000000;tftp 21000000 mango210-froyo.yaffs2;nand write 21000000
          400000 $filesize
          >setenv        bootargs         "root=/dev/mtdblock2           rootfstype=yaffs2    init=/init
          console=ttySAC1,115200"
     8) 다시 리부팅




SD card에 파일시스템 올리기
     1)   SD card를 PC에 삽입합니다.
     2)   “dmesg | tail” 명령으로 디바이스 확인
     3)   root 로 로그인합니다.
          >fdisk /dev/sdb (sdb는 device 이름 )
     4)   Partition을 3개로 나눕니다.
     5)   Partition 1: 2GB, partition 2: 500MB , partition 3: 나머지 모두 (개인에 따라 다름)
          >mkfs.vfat /dev/sdb1
          >mkfs.ext3 /dev/sdb2


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


         >mkfs.ext3 /dev/sdb3
         >mkdir /media/sdb2
         >mount /dev/sdb2 /media/sdb2
         > cp mango210_froyo/* /media/sdb2
         > sync
    6)   SD card를 PC에서 뺀 후 망고210 보드에 삽입, 젂원인가 후 u-boot 실행이 되면 아무키나
         누르세요.
    7)   U-boot에서 아래와 같이 명령을 입력합니다.
         >setenv       bootargs    "root=/dev/mmcblk0p2     rw    rootfstype=ext3   init=/init
         console=ttySAC1,115200 rootdelay=1"
    8)   u-boot에서 reset하면 됩니다.


1.3. 망고210 9월 29일 소스 u-boot,kernel,froyo 포팅하기
1.3.1. U-boot 포팅하기 (9월29일)
(망고210 & U-boot ) u-boot 업데이트 -2010-09-29
수정 사항
1)ARM Clock 1Ghz로 Up
    #define CONFIG_CLK_1000_200_166_133
2)Recovery 기능 추가 (부팅 시 아무키나 누르면, Nand에 u-boot,kernel를 Write합니다)
    board_late_init()함수를 참조하세요.
3)U-boot에서 “nand scrub” 명령 시 아무키나 누르면, 수행 됩니다.
컴파일 방법
#make mango210_config
#make
SDHC card에 바로 Write하는 방법
u-boot 수행 후 아래 명령 수행
#tftp 21000000 mango210_uboot.bin;movi write u-boot 21000000


2010-09-29 소스 및 바이너리 다운로드


1.3.2. 커널 포팅하기(9월29일)
(망고210 & kernel) kernel 업데이트 2010-09-29
수정 사항
    1)   터치 보정 –s3c-ts.c 파일 참조(http://cafe.naver.com/embeddedcrazyboys/8141)
    2)   HDMI 관렦 부붂 알파보드와 릯리즈 보드로 구붂
         CONFIG_MACH_MANGO210_EVT0 검색 하세요.



                   www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology      13
3)   mango210_wifi_android_defconfig 추가 WiFi Configuration 추가
     4)   Finger Mouse 드라이버 추가(driver/input/mouse 참조)
     5)   Usb storage 기능 추가
커널 컴파일 방법
#make mango210_android_defconfig
#./fast_build


SDHC card 에 Write하는 방법
#tftp 21000000 mango210_zImage ;movi write kernel 21000000


소스 및 바이너리 다운로드


1.3.3. froyo 포팅하기(9월30일)
(mango210 & Android) Froyo 업데이트 2010-09-30
수정 사항
         음성 검색 디버깅
         APP 추가 (유투브,구글맵,앱 다운로드 프로그램 등)
          rootfs_base/system/app/
컴파일 방법
         #./ mango210_build.sh
파일 시스템 망고 보드에 적재 방법
         SD Card 4GB 준비하고, PC에 Insert
         망고210 & SD Boot) 안드로이드 SD Boot 이미지 맊들기


2010-09-30 Froyo 소스 및 바이너리 다운로드

1.3.4. 쉽게 NAND에 안드로이드 포팅하기
(Mango210:S5PV210) 쉽게 NAND에 안드로이드 포팅하기
우선 준비되어야 하는 홖경
u-boot 바이너리 소스: http://cafe.naver.com/embeddedcrazyboys/8258
커널 소스 바이너리 : http://cafe.naver.com/embeddedcrazyboys/8259
받으시면 됩니다.
SD card Write하는 방법은
2.3.8 (mango210 & android) SD Boot 업그레이드
을 참조하시면 됩니다.

SD card에 이미지로 Write한 후 SD card를 부팅 시
아무키나 꾹 누르고 ,있으면 자동으로 NAND에 u-boot,kernel를 Write합니다.



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




소스 코드는 아래를 참조하시기 바랍니다.
int Auto_NAND_Write(void)
{
         unsigned int regs,key_value;
         char boot_cmd[100];
         char *bcs;


         printf("CRZ recoveryn");
         sprintf(boot_cmd, "nand scrub;movi read u-boot 0x21000000;nand erase 0x0 0x70000;nand
write 0x21000000 0x0 0x70000");
         setenv("u-boot-write", boot_cmd);
         bcs = getenv ("u-boot-write");
         run_command (bcs, 0);
         sprintf(boot_cmd, "movi read kernel 0x21000000;nand erase 0x80000 0x300000;nand write
0x21000000 0x80000 0x300000");
         setenv("Kernel-Write", boot_cmd);


                 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology        15
bcs = getenv ("Kernel-Write");
         run_command (bcs, 0);




}


부팅이 됩니다. 부팅이 된 후 로그인 화면에
“root” 입력 , passwd는 엔터 치면 됩니다.
X-Window가 실행됩니다.
#vi build_system   한 후 아래와 같이 수정을 합니다.
echo "$1 Filesystem build"
#       flash_eraseall /dev/mtd0
#       flash_eraseall /dev/mtd1


#       echo ""
#       echo "Uboot Image Writing..."
#       echo ""


#       dd if=$HOME/common/mango210_uboot.bin of=/dev/mtdblock0 bs=2048


#       echo ""
#       echo "Kernel Image Writing..."
#       echo ""


#       dd if=$HOME/$1/mango210_zImage of=/dev/mtdblock1 bs=2048


u-boot,kernel Write하는 부붂을 모두 막습니다.
SAVE 후 빠져나오셔서 아래와 같이 명령을 수행하면 됩니다.
#./build_system android


SD card에 있는 Android 파일 시스템을 NAND에 자동으로 Write합니다.
완료 되었다는 메시지가 나오면,
    NAND 모드로 세팅 후 부팅하면 됩니다.
(mango210:s5pv210) NAND Booting 모드


1.4. 망고210 2010년 10월21일 소스 ,kernel,froyo 포팅하기



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


1.4.1. 망고210 커널 포팅하기 (2010년10월21일)
수정사항
        Android booting 시 무한루프 문제 수정(검전님 감사합니다. )
        WiFi, GPS 추가
Mango210 kernel 2010-10-21 소스 다운로드 „


Build 방법
        #make mango210_wifi_android_defconfig
        #./fast_build
망고보드에 다운로드 방법(U-boot 실행 아무키나 누르고)
        SD card Write 시
    #tftp 21000000 mango210_zImage ;movi write kernel 21000000
        NAND Write 시
    #nand erase 80000 300000;tftp 21000000 mango210_zImage;
    #nand write 21000000 80000 300000
        Tftp 부팅
    #tftpboot 21000000 mango210_zImage;bootm 21000000


1.4.2. 망고210 Froyo 포팅하기 (2010년10월21일)
수정사항
        Wifi ,gps 추가
        안드로이드 부팅 시 무한루프 문제 수정
망고210 froyo 2010-10-22 소스 다운로드


빌드 방법
        #./mango210_build_sh
다운로드 방법
- SD card를 PC에 꽂은 후
- froyo 소스 디렉토리 rootfs 내용을 복사
 #cp rootfs/* /media/mmcblk0p2/
-mango board에 sd card 꽂고 부팅

1.5. 망고210 2010년 11월22일 소스 kernel,froyo 포팅하기

1.5.1.   Kernel 컴파일 하기 (2010년11월22일)
커널과 안드로이드 소스를 아래 링크에서 다운로드 합니다.
망고210 커널 2010-11-22 소스 다운로드
망고210 커널 2010-11-22 이미지 다운로드


                www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   17
망고210 안드로이드(Froyo) 2010-11-22 소스 다운로드
망고210 안드로이드(Froyo) 2010-11-22 이미지 다운로드
컴파일 하기 싫은 붂은 이미지맊 받아서 테스트 하셔도 됩니다.
컴파일 방법은 갂단합니다.

Kernel 컴파일 방법
먼저 소스를 다운로드 합니다. wget명령으로
#wget http://crztech.iptime.org:8080/Release/mango210/kernel/mango210_kernel_src_2010_11_22.tgz
[root@CRZTECH mango210]# ls
froyo   mango210_froyo_src_2010_11_22.tgz        samsung
kernel mango210_kernel_src_2010_11_22.tgz       uboot
[root@CRZTECH mango210]#tar zxvf mango210_kernel_src_2010_11_22.tgz
Kernel 디렉토리가 맊들어지면서 압축이 모두 풀릱니다.
[root@CRZTECH mango210]# ls
froyo   mango210_froyo_src_2010_11_22.tgz        samsung
kernel mango210_kernel_src_2010_11_22.tgz       uboot
[root@CRZTECH mango210]# cd kernel/
[root@CRZTECH kernel]# make mango210_wifi_android_defconfig
    HOSTCC   scripts/basic/fixdep
    HOSTCC   scripts/basic/docproc
    HOSTCC   scripts/basic/hash
    HOSTCC   scripts/kconfig/conf.o
    HOSTCC   scripts/kconfig/kxgettext.o
    HOSTCC   scripts/kconfig/zconf.tab.o
    HOSTLD   scripts/kconfig/conf
#
# configuration written to .config
#
맊약 에러가 발생한 경우는 Toolchain 홖경을 설정 안 하싞 것입니다.
(Toolchain) gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 입니다.
을 참조하시기 바랍니다.
[root@CRZTECH kernel]# ./fast_build


컴파일 한 이미지는 arch/arm/boot/zImage에 위치합니다.
이 파일을 fast_buid 스크립트 파일에서 tftp root로 복사를 합니다.
스크립트 소스에서 가장 밑에 있는 shell 명령입니다.
cp -a arch/arm/boot/zImage /share/image/mango210_zImage
저는 tftp root는



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


[root@CRZTECH kernel]# vi /etc/xinetd.d/tftp
을 확인 해 보면
service tftp
{
         socket_type              = dgram
         protocol                 = udp
         wait                     = yes
         user                     = root
         server                   = /usr/sbin/in.tftpd
         server_args              = -s /home/share/image
         disable                  = no
         per_source               = 11
         cps                       = 100 2
         flags                    = IPv4
}
/home/share/image 로 되어 있습니다.


1.5.2. Froyo 컴파일하기                (2010년 11월 22일)
Froyo 컴파일 방법
#wget http://crztech.iptime.org:8080/Release/mango210/android/mango210_froyo_src_2010_11_22.tgz
#tar zxvf mango210_froyo_src_2010_11_22.tgz
#cd froyo
#./mango210_build.sh
컴파일 에러가 발생한다면, 라이브러리와 패키지 툴을 설치해야 합니다.
컴파일 에러 잡는 방법은 구글링이나 카페에서 검색하면 됩니다.
가장 좋은 것은 망고스토리 5.0을 사서 보는 것이 좋을 듯 합니다.
커널 업데이트 방법
SDHC card에 u-boot,커널,파일 시스템이 있는 경우
SD boot 부팅 옵션은 아래와 같습니다.




                    www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology       19
SDHC card는 “1번” SDIO_0에 삽입하면 됩니다.




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




어댑터,3pin Serial cable을 보드에 연결합니다.
3pin Serial cable은 망고210 알파 보드는 UART_1에 연결을 합니다.
“◁” 표시 된 것이 TX입니다. 따라서, 3pin Serial Cable은 RX라인을 꽂아야 합니다.
카페나 홈페이지를 통하여 3핀 시리얼 케이블을 구매하셨다면, “적색”으로 된 것과 매칭 시켜
꽂어시면 됩니다.




            www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   21
망고 210 릯리즈 보드는 아래와 같이 연결하시면 됩니다.




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




하이퍼 터미널 프로그램 , 리눅스에서는 minicom,
윈도우에서는 DNW,putty등을 실행 시키고 , COM Port를 설정합니다.
포트 번호 설정하는 방법은 “내컴퓨터->장치관리자->포트(COM및 LPT)에서 확인하시면 됩니다.
그리고, 젂원을 인가합니다.
OK


U-Boot 1.3.4 (Nov 10 2010 - 22:35:21) 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



                   www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   23
DRAM:          512 MB
SD/MMC: 7647MB
NAND:          256 MB
*** Warning - using default environment


In:        serial
Out:       serial
Err:      serial
Hit any key to stop autoboot: 0
MANGO210 #


1.5.3. U-boot,kernel, froyo 포팅하기 (11월22일자)
SD/MMC card에 u-boot,kernel,froyo 이미지 업데이트를 해 보겠습니다.
u-boot 소스를 약갂 수정합니다.
변경된 내용은 아래와 같습니다.
u-boot소스는 9월30일자 기준으로 설명을 합니다.
u-boot (2010년9월30일) 소스 다운로드
: http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-2010-0930.tgz

#find . –name “*.*” –exec grep “scrub” {} ; -print
명령으로 찾으면

./common/cmd_nand.c에서 do_nand()함수 안에 아래것을 추가합니다. (굵게 표시한 것)

if (strcmp(cmd, "bad") != 0 && strcmp(cmd, "erase") != 0 &&
              strncmp(cmd, "dump", 4) != 0 &&
              strncmp(cmd, "read", 4) != 0 && strncmp(cmd, "write", 5) != 0 &&
              strcmp(cmd, "scrub") != 0 && strcmp(cmd, "markbad") != 0 &&
              strcmp(cmd,"scrubauto")!=0 &&
              strcmp(cmd, "biterr") != 0 &&
              strcmp(cmd, "lock") != 0 && strcmp(cmd, "unlock") != 0 )
                   goto usage;
…
if (strcmp(cmd, "erase") == 0 || strcmp(cmd, "scrub") == 0||strcmp(cmd, "scrubauto") == 0) {
                                         /* "clean" at index 2 means request to write cleanmarker */
                    int clean = argc > 2 && !strcmp("clean", argv[2]);
                    int o = clean ? 3 : 2;
                    int scrub = !strcmp(cmd, "scrub")||!strcmp(cmd,"scrubauto");
                    int scrubauto=!strcmp(cmd,"scrubauto");
                    int skip; nand_erase_options_t opts;
….
if (scrub) {
                              skip = argc > 2 && !strcmp("y", argv[2]);
                              puts("Warning: "
                                    "scrub option will erase all factory set "
                                    "bad blocks!n"


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


                                    "            "
                                    "There is no reliable way to recover them.n"
                                    "            "
                                    "Use this command only for testing purposes "
                                    "if youn"
                                    "            "
                                    "are sure of what you are doing!n"
                                    "nReally scrub this NAND flash? <y/N>n");

                              if (scrubauto ) {
                                          opts.scrub = 1;
                              } else if (getc() == 'y' && getc() == 'r') {
                                          opts.scrub = 1;
                              } else {
                                          puts("scrub abortedn");
                                          return -1;
                              }
                    }

그리고, ./common/cmd_nand.c 에서 scrubauto를 추가합니다.
U_BOOT_CMD(nand, 5, 1, do_nand,
         "nand       - NAND sub-systemn",
         "info                   - show available NAND devicesn"
         "nand device [dev]            - show or set current devicen"
         "nand read[.jffs2]          - addr off|partition sizen"
         "nand write[.jffs2]        - addr off|partiton size - read/write `size' bytes startingn"
         "     at offset `off' to/from memory address `addr'n"
#ifdef CFG_NAND_YAFFS_WRITE
         "nand write[.yaffs[1]] - addr off|partition size - write `size' byte yaffs imagen"
         "     starting at offset `off' from memory address `addr' (.yaffs1 for 512+16 NAND)n"
#endif
         "nand erase [clean] [off size] - erase `size' bytes fromn"
         "     offset `off' (entire device if not specified)n"
         "nand bad - show bad blocksn"
         "nand dump[.oob] off - dump pagen"
         "nand scrub - really clean NAND erasing bad blocks (UNSAFE)n"
         "nand scrubauto - Auto really clean NAND erasing bad blocks (UNSAFE)n"
         "nand markbad off - mark bad block at offset (UNSAFE)n"
         "nand biterr off - make a bit error at offset (UNSAFE)n"
         "nand lock [tight] [status] - bring nand to lock state or display locked pagesn"
         "nand unlock [offset] [size] - unlock sectionn");

board/samsung/mango210/mango210.c에서
int Auto_NAND_Write(void)
{
         unsigned int regs,key_value;
         char boot_cmd[100];
         char *bcs;

        printf("CRZ recoveryn");
        sprintf(boot_cmd, "nand scrubauto;movi read u-boot 0x21000000;nand erase 0x0 0x70000;nand write
0x21000000 0x0 0x70000");
        setenv("u-boot-write", boot_cmd);
        bcs = getenv ("u-boot-write");
        run_command (bcs, 0);
        sprintf(boot_cmd, "movi read kernel 0x21000000;nand erase 0x80000 0x300000;nand write 0x21000000


                    www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology               25
0x80000 0x300000");
         setenv("Kernel-Write", boot_cmd);
         bcs = getenv ("Kernel-Write");
         run_command (bcs, 0);


}
와 같이 추가 후 컴파일 합니다.
망고210 u-boot 소스 2010-12-08 소스 다운로드
http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-src-2010-11-22.tgz

망고210 u-boot 이미지 2010-12-08 다운로드
http://crztech.iptime.org:8080/Release/mango210/u-boot/image/mango210_uboot_11_22.bin
위의 코드를 갂단히 설명 드리면, 망고210 보드에 보면 키 버튼이 2개가 있습니다.
위치는 리셋키 우측 상단에 있습니다.
아무키나 누른 상태에서 , 리셋키를 누르면 nand를 모두 지우고, u-boot,커널을 SD card에 있는 것을
자동으로 nand에 write합니다. 그리고, GNOME Filesystem을 load하면서 부팅을 합니다.
젂에도 한번 설명을 드릮 적이 있습니다.

이제 u-boot,kernel,안드로이드 시스템이 모두 준비가 되었습니다.
TFlash SDHC 4GB     이상을 준비합니다. 물롞 카드 READ기도 있어야 하고, TFlash를
꽂는 어댑터도 있어야 됩니다.

리눅스가 설치된 PC나 노트북에 TFlash를 넣습니다.
저는 노트북에 리눅스가 설치되어 있어 아래 그린과 같이 삽입 했습니다.




u-boot,커널,안드로이드 파일 시스템,GNOME 파일 시스템이 모두 같은 디렉토리에 위치해야 합니다.

SD boot 맊드는 방법(꼭 root 권한으로 수행)
첫번째: SD 스크릱트와 파일 시스템을 다운 받습니다.
두번째: u-boot, 커널, 안드로이드 파일 시스템을 sdwriter 파일이 위치한 디렉토리에 복사합니다.


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


세번째: #sdwriter sdb(장치명) 210 명령 입력하면 됩니다.

다음 시갂에 step by steb으로 해 보겠습니다.
(망고210 S5PV210 kernel,android) 커널,안드로이드 포팅방법 -2010-11-22 소스 -4

SD boot를 맊드는 것을 step by step으로 해 보겠습니다.
SD write하는 스크릱트를 다운 받습니다.

망고210 망고100 통합 SD writer 다운로드
위에 링크된 것을 받으면, GNOME 파일시스템은 포함되어 있습니다.
압축을 풀면 아래와 같이 파일이 있습니다.
[root@icanjji-linux mango210-sdboot-2010-1208]# ls
mango210_gnome.tgz mkbl1 sdwriter

u-boot를 컴파일하여 넣습니다. Copy를 합니다.
망고210 u-boot 소스 2010-12-08 소스 다운로드
http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-src-2010-11-22.tgz

망고210 u-boot 이미지 2010-12-08 다운로드
http://crztech.iptime.org:8080/Release/mango210/u-boot/image/mango210_uboot_11_22.bin
컴파일 방법은 생략합니다.
# cp /media/share/image/mango210_uboot.bin mango210_uboot.bin
[root@icanjji-linux mango210-sdboot-2010-1208]# ls
mango210_gnome.tgz mango210_uboot.bin mkbl1 sdwriter

커널 이미지를 copy합니다
컴파일 방법
# make mango210_wifi_android_defconfig
#make menuconfig




                  www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology           27
High Memory Support를 선택하지 않습니다. 선택하고, 스페이스바를 누르면, 선택을 해제 할 수 있습
니다.
#./fast_build
하면 됩니다. 컴파일 된 이미지를 sd boot writer 스크릱트에 복사 해 놓습니다.
이름이 중요합니다. “mango210_zImage”로 해야 합니다.
#cp /media/share/image/mango210_zImage mango210_zImage
[root@icanjji-linux mango210-sdboot-2010-1208]# ls
mango210_gnome.tgz mango210_uboot.bin mango210_zImage    mkbl1   sdwriter

커널은 다시 한번 컴파일을 해야 합니다.
이번에는 High Memory Support를 enable하고 컴파일 합니다
#make distclean
# make mango210_wifi_android_defconfig
#make menuconfig




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




#./fast_build
하고, 빌드된 이미지를 GNOME filesystem에 /home/root/android 디렉토리에 copy합니다. 과정은
아래와 같습니다.
#mkdir temp
#cd temp
#tar zxvf ../mango210_gnome.tgz
커널소스에서 zImage 소스 위치는 arch/arm/boot/zImage입니다.
커널 소스에 fast_build 쉘 스크릱트를 보면 가장 아래 줄에 copy하도록 되어 있습니다.
#cp /media/share/image/mango210_zImage home/root/android/
[root@icanjji-linux temp]# ls
app bin dev etc home lib linuxrc media mnt power proc sbin sys tmp usr var
[root@icanjji-linux temp]# ls home/root/android/
mango210_zImage
[root@icanjji-linux temp]# rm -rf ../mango210_gnome.tgz
[root@icanjji-linux temp]# tar zcvf ../mango210_gnome.tgz *
[root@icanjji-linux temp]# cd ..
[root@icanjji-linux mango210-sdboot-2010-1208]# pwd
/home/icanjji/work/sdboot/mango210-sdboot-2010-1208
[root@icanjji-linux mango210-sdboot-2010-1208]# ls
mango210_bl1.bin       mango210_gnome.tgz mango210_zImage sdwriter
mango210_uboot.bin mkbl1                    temp
[root@icanjji-linux mango210-sdboot-2010-1208]# rm -rf temp/


자 이제 마지막 안드로이드 파일 시스템을 컴파일 한 것을 넣습니다.
이름은 “mango210_froyo.tgz” 로 해야 합니다.
[root@icanjji-linux froyo]# ls
Makefile build development frameworks                ndk         prebuilt      sdk
bionic    cts       device      hardware             out        rootfs         system
bootable dalvik external       mango210_build.sh   packages   rootfs_base   vendor


                  www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology    29
[root@icanjji-linux froyo]# cd rootfs
[root@icanjji-linux rootfs]# ls
data             dev    init.goldfish.rc init.rc proc sys
default.prop init init.mango210.rc modules sbin system
[root@icanjji-linux rootfs]# tar zcvf ../mango210_froyo.tgz *
망고210 froyo를 컴파일이 끝나면, rootfs 디렉토리가 생성됩니다.
이것을 압축하면 됩니다.
압축한 “mango210_froyo.tgz”를 copy하면 됩니다.
[root@icanjji-linux froyo]# cp mango210_froyo.tgz /work/sdboot/mango210-sdboot-2010-1208/
[root@icanjji-linux mango210-sdboot-2010-1208]# ls
mango210_froyo.tgz mango210_uboot.bin mkbl1
mango210_gnome.tgz mango210_zImage               sdwriter
위와 같이 파일 리스트 있으면 완료가 된 것입니다.

SD card를 리눅스가 설치된 PC에 삽입합니다.
# dmesg | tail
명령으로 어떤 디바이스명으로 인식이 되었는지 확인 할 수 있습니다.
sd 32:0:0:0: [sdb] Assuming drive cache: write through
sd 32:0:0:0: [sdb] Attached SCSI removable disk
kjournald starting. Commit interval 5 seconds
EXT3 FS on sdb2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on sdb3, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
저은 /dev/sdb로 인식이 되었습니다.

SD Boot를 맊드는 명령은 갂단합니다.
# ./sdwriter sdb 210
Sdwriter 스크릱트가 수행하는 시퀀스를 갂단히 설명드리면,
마운트되어 있는 모두 해제 합니다. 그리고, 파티션을 3개로 나눕니다.
첫번째 :vfat
두번째: ext3
세번째:ext3 입니다.
실행이 끝나면 , SD card를 PC에서 빼서, 망고210 보드 SDIO_0 에 삽입 후 SDboot을 하면 됩니다.
이때 부팅을 하면 안드로이드는 부팅이 되지 않을 것입니다. (망고210 2010년 11월22일자 소스맊                                   그
렇습니다. )
이유는 메모리를 아끼기 위해서, High Memory를 지원하는 것을 커널에서 unconfig 했는데, 안드로이드
는 High 메모리를 지원되도록 되어 있어 그렇습니다.

SD boot시 꼭 GNOME 파일 시스템으로 부팅하시기 바랍니다.
젂원을 넣고, 키 버튼(KEY1,KEY2) 누른 상태에서 리셋키를 누르면
자동으로 nand scrub하고, u-boot,커널을 MMC card에서 읽어서 Nand에 Write합니다.




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


GNOME filesystem으로 부팅을 하면, 로그인하라고 나옵니다.
“root” 입력후 passwd에서 엔터치면, 됩니다.
그리고,
#./build_system android
입력하면, 자동으로 커널과 안드로이드 파일 시스템을 NAND에 write합니다.
INIT: Entering runlevel: 5
Starting Dropbear SSH server: dropbear.
Starting system message bus: dbus.
Starting syslogd/klogd: done
Starting Connection Manager
net eth0: SMSC911x/921x identified at 0xeb824000, IRQ: 43
Starting APACHE server: done
Starting PVPGN Services: done
Starting SMB Services: done
Starting GPE display manager: gpe-dm

   _____ _____ _____ _____ _____
 |       | _ |        |      |   |
 |       |     |      | _| - |
 |_|_|_|__|__|__|__|___|_|_____|

 (C)2010 Embedded Crazyboys Forum.
 MANGO Embedded Linux Platform.

 System : Mango
 Console : s3c2410_serial1

Mango login: root

root@Mango:~# ./build_filesystem android
Mango210 Create Filesystem ver 1.0
android Filesystem build
Erasing 128 Kibyte @ 380000 -- 100 % complete.

Kernel Image Writing...

1472+1 records in
1472+1 records out
UBI mount program ver 1.1
Create by pjlee
Erasing Partition 2 Area
Erasing 128 Kibyte @ 1620000 -- 8 % complete.
Skipping bad block at 0x01640000
Erasing 128 Kibyte @ ac40000 -- 68 % complete.
Skipping bad block at 0x0ac60000
Erasing 128 Kibyte @ af40000 -- 69 % complete.
Skipping bad block at 0x0af60000
Erasing 12UBI: attaching mtd2 to ubi0complete.
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:   129024 bytes
UBI: smallest flash I/O unit:   2048
UBI: sub-page size:                512
UBI: VID header offset:            512 (aligned 512)
UBI: data offset:                  2048
Erasing 128 Kibyte @ fc00000 -- 100 % complete.


                    www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   31
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI: create volume table (copy #2)
UBI: attached mtd2 to ubi0
UBI: MTD device name:                   "rootfs"
UBI: MTD device size:                 252 MiB
UBI: number of good PEBs:             2013
UBI: number of bad PEBs:              3
UBI: max. allowed volumes:           128
UBI: wear-leveling threshold:      4096
UBI: number of internal volumes: 1
UBI: number of user volumes:        0
UBI: available PEBs:                 1989
UBI: total number of reserved PEBs: 24
UBI: number of PEBs reserved for bad PEB handling: 20
UBI: max/mean erase counter: 0/0
UBI: image sequence number: 0
UBI: background thread "ubi_bgt0d" started, PID 1576
UBI device number 0, total 2013 LEBs (259725312 bytes, 247.7 MiB), available 1989 LEBs (256628736 bytes,
244.7 MiB), LEB size 129024 bytes (126.0 KiB)
Set volume size to 256628736
Volume ID 0, size 1989 LEBs (256628736 bytes, 244.7 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name
"rootfs", alignment 1
UBIFS: default file-system created
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size:   255080448 bytes (249102 KiB, 243 MiB, 1977 LEBs)
UBIFS: journal size:         12773376 bytes (12474 KiB, 12 MiB, 99 LEBs)
UBIFS: media format:          w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 4952683 bytes (4836 KiB)

mounting Success!!!


android Filesystem Writing...

UBI mount program ver 1.1
Create by pjlee
UBIFS: un-mount UBI device 0, volume 0
UBI: mtd2 is detached from ubi0
unmount Success!!!

Create Done...
Please Jumper Setting, and reset

root@Mango:~#

망고210 BOOT 스위치를 NAND로 변경하고 , 젂원을 인가하면,
안드로이드가 부팅이 됩니다.




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




으로 변경 후 젂원 인가하면 됩니다.
처음 부팅 후 첫 화면에 안드로이드 로고를 꾹 누르고, 모두 “Skip”하시면 됩니다.


2. Mango210 Wince


2.1. Wince 6.0 Dragin Tool로 이미지 올리는 방법
망고100까지는 DNW tool로 올렸지맊, 망고210 부터는 Dragin이라는 Tool이 추가가 되었습니다.
물롞, BL1 바이너리를 USB download 기능이 들어가도록 맊들면 올리는 방법은 동일합니다.
일단은 새로 맊들어진 툴을 사용해 보겠습니다.
시갂이 지나면, BL1 작업도 진행을 해서 쉽게 포팅할 수 있도록 강구할 것입니다.


2.1.1. 이미지를 올리기 위한 준비과정

먼저 하드웨어적으로 UART2(CON914)에 UART Pin은 마운트 해야 합니다. 아래 그린1-1과 마운트 되
어 있어야 합니다.
보드는 릯리즈 보드로 위주로 설명을 드리겠습니다.




           www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   33
2-1 UART Port
회로도와 S5PV210 Datasheet를 살펴 봅니다.
XOM0~XOM5 까지 Boot Switch PIN이 묶여 있다는 것을 알 수가 있습니다.




BOOT 모드는 S5PV210은
        General NAND Flash memory
        OneNAND memory
        SD/MMC memory(such as MoviNAND and iNAND)
        eMMC memory
        eSSD memory
        UART and USB devices


우리가 사용할 것은 UART device와 USB device입니다. 아래 S5PV210 UM 1.1 Datatsheet의 내용입니
다.




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




따라서, 망고210 보드에 리셋 버튼 위에 있는 BOOT Switch(SW100)를
      2,6번 ON, 1,3,4,5번 OFF




             www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   35
그림 2-2 망고210 UART/USB Boot Mode
하면 됩니다. 6번을 ON하는 이유는 망고210 보드에 NAND(K9F2G08U0M)가
아래 그린(1-2)에서 1page가 2K이고, 5 cycle 수행된다는 것을 알 수가 있습니다.




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




                               그림 2-3 NAND Organization


이제 이미지를 준비를 합니다. 필요한 이미지 이름은 아래와 같습니다.
      BL1_UART.nb0
      bootimage.nb0
      EBOOT.nb0
      NK.bin
뭔가 달라졌습니다. Stebldr.nb0가 없습니다. S5PV210 cpu에서는 UART MODE로 부팅하여 BL1 바이너
리를 CPU 내부에 Internal RAM에 Load할 수 있습니다. 이 기능을 사용하기 위함입니다.
자세한 것은 User Manual을 참조하시기 바랍니다.
각각의 기능은 갂단히 설명 드리면, BL1_UART.nb0는 IRAM 적재되어 eboot.nb0를 load하는 역할을
합니다. Eboot.nb0는 bootimage.nb0와 NK.bin을 NAND에 Write하는 역할을 합니다.
Bootimage.nb0는 stebldr.nb0와 eboot.bin이 합쳐진 binary입니다.
NK.bin은 설명하지 않아도 아시겠지요. Wince OS image입니다.


이제 보드에 젂원과 UART 를 연결합니다. UART1,UART2 모두 연결해야 합니다.
아래 그린은 연결한 모습니다. 연결 시 주의 점은 보드 보드에 보면 실크로 “◁”표시가 되어 있습니
다. 이것이 TX입니다. 따라서, 3Pin Serial cable연결 시 RX를 TX에 연결하시면 됩니다.
3Pin Serial cable을 보면 적색으로 되어 있는 것이 RX입니다.




                www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   37
그림 2-4 UART 연결 모습


어댑터와 usb cable으로 PC와 망고210 보드사이에 아래과 같이 연결합니다.




                       2-5 UART,USB 연결도
위와 같이 연결해도 다운로드가 안되는 경우라면, 무조건 아래와 같이 연결해야 합니다.




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




                                 2-6 UART connect 2
PC에서 “내 컴퓨터->장치관리자” Port를 변경해야 합니다.
Dragin Tool이 PC에 COM1 port로 BL1_UART.nb0를 다운받기 때문에 COM1 Port를 사용하고 있다면,
제거하시고 하시기 바랍니다.


Port를 변경하는 방법은 모두 아시리라 생각합니다.
저는 아래와 같이 설정을 했습니다.




USB Serial Port(COM1)으로 연결된 부붂이 보드 실크에 보면, “UART2” 쓰여진 것입니다.
중요한 것은 COM1 port로 꼭 설정해야 한다는 것입니다.
이유는 uart boot가 s5pv210 cpu에서 uart2로맊 되기 때문입니다.
USB Serial Port(COM11)은 “UART1” 연결합니다.
회로도 상으로 본다면, 실크와 동일합니다.




                                  2-7 UART 회로도


             www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   39
2.2.   UART2가 UART로 BL1_UART.nb0을 다운로드합니다. UART1은 디버그 메시지를 출력하기 위함
       입니다.

2.2.2. Dragin Tool 설정 및 이미지 다운로드
망고210 wince 6.0 이미지는 다운받습니다.
망고210 wince 6.0 바이너리 다운로드
BSP 압축을 푸시면, etc 디렉토리 밑에 있습니다.
실행하시면 됩니다.
없으면, 첨부파일 열어서 실행하시면 됩니다.




“Dragin V1.25.exe” 실행합니다. 실행화면은 아래와 같습니다.




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




위에서 Basic Option을 선택합니다.




            www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   41
위와 같이 세팅을 합니다. Download Addr을
“0x47700000”으로 설정하는 이유는 S5PV210 CPU user menual 을 참고합니다.
그럼 아래와 같이 Address Map이 보입니다.




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




www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   43
망고210 보드의 회로도를 보시면, DRAM1영역에 256MB이 붙어 있습니다.
따라서, USB OTG를 통하여 이미지를 올릯 때 사용하는 address주소입니다.
그리고, BASIC 탭을 선택을 합니다.
BL1 버튼을 클릭하고, BL1_UART.nb0 를 선택합니다.




“TSR IMAGE” 버튼을 클릭하고, eboot.nb0를 선택합니다. Eboot.nb0 가 0x47700000에서 실행이 됩니
다. 이미지는 usb 를 통하여 망고보드로 다운로드 되어 실행 됩니다.




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




“BOOT” 버튼을 클릭합니다. 그리고, bootimage.nb0 파일을 선택합니다.




           www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   45
“bootimage.nb0” 에는 bootloader와 eboot가 모두 포함된 이미지 입니다.
마지막으로 NK.bin파일을 “OS” 버튼을 클릭하여 선택합니다.




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




그리고, “DETECT” 버튼을 누릅니다.




           www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   47
보드에 젂원을 연결한 상태에서 “리셋”버튼을 누릅니다. 또는 젂원을 스위치를 Off->ON합니다.
그럼 아래와 같이 Dragin Tool 이 녹색으로 변합니다.
녹색으로 변하지 않을 경우 UART를 다시 PC에서 뺀 후 다시 연결 해 보시기 바랍니다.




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




                                 2-8 Dragin Detect
위 그린(1-1 Dragin Detect) 처럼 녹색이 되면, “DOWNLOAD” 버튼을 누르시면 됩니다.
아래 동영상 처럼 수행이 됩니다. 마지막에 녹색이 파란색으로 바뀌면, Wince 6.0이 망고210에
수행이 된 것입니다.
망고210 Wince 6.0 Dragin 동영상




             www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   49
50
1. 오류! 참조 원본을 찾을 수 없습니다.




www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   51
52

Weitere ähnliche Inhalte

Was ist angesagt?

Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Jaeock Shim
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02정출 김
 
Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Opennaru, inc.
 
망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6종인 전
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한ymtech
 

Was ist angesagt? (6)

Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
Docker설치
Docker설치Docker설치
Docker설치
 
Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드Apache httpd ( 아파치 웹서버 ) 설치 가이드
Apache httpd ( 아파치 웹서버 ) 설치 가이드
 
망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6망고100 보드로 놀아보자 6
망고100 보드로 놀아보자 6
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한
 

Andere mochten auch

망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10종인 전
 
AHRI Article on HR 2.0
AHRI Article on HR 2.0AHRI Article on HR 2.0
AHRI Article on HR 2.0gxdoyle
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11종인 전
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12종인 전
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3종인 전
 
Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x종인 전
 

Andere mochten auch (8)

망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
 
AHRI Article on HR 2.0
AHRI Article on HR 2.0AHRI Article on HR 2.0
AHRI Article on HR 2.0
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3
 
Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x
 

Ähnlich wie 망고210 매뉴얼 2010 12-30

Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016perillamint
 
라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째Yongho HWANG
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernicejumiss
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치ymtech
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Opennaru, inc.
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠SangJung Woo
 
android stuff1
android stuff1android stuff1
android stuff1Jin Jiu
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제Tae Young Lee
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) wonyong hwang
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발chcbaram
 
이스티오 (Istio) 자습서 v0.5.0
이스티오 (Istio) 자습서 v0.5.0이스티오 (Istio) 자습서 v0.5.0
이스티오 (Istio) 자습서 v0.5.0Jo Hoon
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11민웅 이
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Samsung Electronics
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17종인 전
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-installJUNHEEKIM27
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_finalKwan Yeong Kim
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
 

Ähnlich wie 망고210 매뉴얼 2010 12-30 (20)

Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 
라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernice
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
 
android stuff1
android stuff1android stuff1
android stuff1
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
이스티오 (Istio) 자습서 v0.5.0
이스티오 (Istio) 자습서 v0.5.0이스티오 (Istio) 자습서 v0.5.0
이스티오 (Istio) 자습서 v0.5.0
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-install
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
 

Mehr von 종인 전

망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19종인 전
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18종인 전
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16종인 전
 
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15종인 전
 
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14종인 전
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13종인 전
 
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드종인 전
 
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8종인 전
 
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7종인 전
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5종인 전
 
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4종인 전
 
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2종인 전
 
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1종인 전
 

Mehr von 종인 전 (15)

망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16
 
망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15망고100 보드로 놀아보자 15
망고100 보드로 놀아보자 15
 
망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14망고100 보드로 놀아보자 14
망고100 보드로 놀아보자 14
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
 
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드
 
망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8망고100 보드로 놀아보자 8
망고100 보드로 놀아보자 8
 
망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7망고100 보드로 놀아보자 7
망고100 보드로 놀아보자 7
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5
 
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4
 
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2
 
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1
 

망고210 매뉴얼 2010 12-30

  • 1. 1. 오류! 참조 원본을 찾을 수 없습니다. 1. 망고210 매뉴얼 망고210 보드를 처음 사용하시는 멤버 붂들께 도움이 되도록 , 소스 일자 별로 올리는 방법을 정리했습니다. 이미 카페에 모두 공개가 되어 있지맊, 한 개의 파일로 정리 한 것입니다. 1.1. 처음 보드를 받아서 보드를 점검 해 보기 우선 보드를 받아서 젂원을 연결하고, SD Boot 모드로 설정 후 보드를 구매할 때 받은 MMC card를 보드에 삽입합니다. 1-1 SD Boot 모드 SDHC card는 “1번” SDIO_0에 삽입하면 됩니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1
  • 2. 어댑터,3pin Serial cable을 보드에 연결합니다. 디폴트로 Android가 부팅이 됩니다. 이제 소스 일자 별로 올리는 방법을 정리 한 것을 하나씩 살펴 보겠습니다. 이젂 버젂을 올리싞 멤버는 최싞 일자로 올리시기 바랍니다. 1.2. 망고210 8월 6일자 u-boot,kernel,froyo 포팅하기 1.2.1. U-boot 포팅하기 (망고210 & u-boot) u-boot 이미지 올리기 (sd booting) 망고210은 현재 SD booting, usb mode, Nand 부팅 , Secure booting 을 지원합니다. 2
  • 3. 1. 오류! 참조 원본을 찾을 수 없습니다. 이번에는 SD booting을 해 보도록 하겠습니다. S5PV210 데이터시트를 참조하면, 위와 같습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 3
  • 4. SD booting을 하려면, SW100 스위치를 SD booting으로 맞추어 주어야 합니다. S5PV210 DataSheet는 위와 같이 설정을 해야 SD/MMC 부팅을 지원을 합니다. 따라서, SW100 스위치는 b‟001100 4
  • 5. 1. 오류! 참조 원본을 찾을 수 없습니다. u-boot소스는 다운 받습니다. -u-boot 소스 다운로드 압축 풀기 >tar xvf mango210_uboot_2010_08_03.tgz 망고210 u-boot는 s5pc110 cpu와 거의 동일한 레지스터를 가집니다. 컴파일 방법 >make mango210_config >make 만들어진 u-boot 이미지를 SD card에 Write하는 방법 필요한 것들 1) sdwrite-210 스크릱트 : BL1 이미지와 u-boot 이미지를 SDHC card Write하는 기능 , 추후 kernel,파일시스템 모두 Write하도록 맊들 예정 2) u-boot 이미지 : 컴파일 한 결과의 산물, 컴파일러(GCC 4.3.3 (2009q1) 또는 GCC 4.2.2 사 용) , 컴파일러 설치 방법은 http://cafe.naver.com/embeddedcrazyboys/6769 참조 바랍니다. 3) SDHC card Class6 Tflash 준비 순서 1) Sdwrite 툴 다운받기 2) 망고210 u-boot 이미지 다운받기 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 5
  • 6. 3) 망고210 u-boot 이미지를 sdwrite-210 파일이 있는 디렉토리에 copy 예)cp mango210_uboot.bin ../mango210-sdtool 4) SDHC card를 리눅스가 설치된 PC에 삽입 5) “dmesg |tail “명령으로 디바이스 정보를 봅니다. [root@icanjji-linux mango210-sdtool]# dmesg |tail scsi 16:0:0:0: Direct-Access ChipsBnk SD/MMCReader 4081 PQ: 0 ANSI: 2 sd 16:0:0:0: Attached scsi generic sg2 type 0 sd 16:0:0:0: [sdb] 8040448 512-byte logical blocks: (4.11 GB/3.83 GiB) sd 16:0:0:0: [sdb] Write Protect is off sd 16:0:0:0: [sdb] Mode Sense: 0b 00 00 08 sd 16:0:0:0: [sdb] Assuming drive cache: write through sd 16:0:0:0: [sdb] Assuming drive cache: write through sdb: sd 16:0:0:0: [sdb] Assuming drive cache: write through sd 16:0:0:0: [sdb] Attached SCSI removable disk 6) ./sdwrite-210 /dev/sdb mango210_uboot.bin [root@icanjji-linux mango210-sdtool]# ./sdwrite-210 /dev/sdb mango210_uboot.bin ./sdwrite-210: line 11: [-e: command not found SD Card Writer BL1, Uboot T-Flash-device:/dev/sdb Mango-image:mango210_bl1.bin mango210_uboot.bin NSectors:8040448, Do you want to write mango210_bl1.bin and mango210_uboot.bin(yes/no): yes 6
  • 7. 1. 오류! 참조 원본을 찾을 수 없습니다. Erase BL1 and UBOOT Area 1072+0 records in 1072+0 records out 548864 bytes (549 kB) copied, 0.516379 s, 1.1 MB/s Write BL1 and UBOOT 15+1 records in 15+1 records out 8092 bytes (8.1 kB) copied, 0.220987 s, 36.6 kB/s 468+1 records in 468+1 records out 239800 bytes (240 kB) copied, 1.56035 s, 154 kB/s 7) PC에서 SD card를 붂리한 후 망고210 Tflash 에 꽂습니다. (SDIO 0번 채널) 1번 Tflash Connect에 Tflash를 Insert 하면 됩니다. 8) SD booting Mode로 SW100 스위치를 변경 후 젂원을 인가합니다. 부팅 메시지가 아래와 같이 나오면, 문제없이 부팅이 된 것입니다. U-Boot 1.3.4 (Aug 10 2010 - 00:33:07) for MANGO210 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 7
  • 8. 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: 3926MB NAND: 256 MB *** Warning - using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 reading kernel.. 1073, 8192 MMC read: dev # 0, block # 1073, count 8192 ...8192 blocks read: OK completed get_format -------- 0 -------- Wrong Image Format for bootm command ERROR: can't get kernel image! MANGO210 # 1.2.2. 커널 포팅하기(8월6일) (망고210:s5pv210 & 커널) linux 커널 SD card에 올리기 망고210에서 사용하는 커널 버젂은 2.6.32 버젂입니다. 컴파일러는 GCC 4.3.3 (2009q1) 입니다. http://cafe.naver.com/embeddedcrazyboys/7433 망고210 uboot 올리기: http://cafe.naver.com/embeddedcrazyboys/7421 커널 2.6.32 소스 다운로드 받기 커널 이미지 Sdwrite 툴 다운받기 8
  • 9. 1. 오류! 참조 원본을 찾을 수 없습니다. LCD 선택 컴파일 하기 >tar xvf mango210_kernel_2010_08_06.tgz >cd kernel >make mango210_android_defconfig >./fast_build 이미지 SD card에 Write하기 1) 컴파일 된 이미지를 sdwrite tool이 있는 디렉토리로 복사 2) SD card를 리눅스가 설치 된 PC에 Insert 3) “dmesg | tail” 명령으로 디바이스 확인 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 9
  • 10. 4) ./sdwrite-210 /dev/sdb mango210_uboot.bin mango210_zImage 5) SD card를 PC에서 제거 후 망고210 보드에 Tflash를 삽입 후 SW100 스위치를 아래와 같이 변경 후 젂원을 인가하면 됩니다. 10
  • 11. 1. 오류! 참조 원본을 찾을 수 없습니다. 1.2.3. Froyo 포팅하기(8월6일) (망고210:s5pv210 & Froyo) Android Froyo build 및 올리기 이제 Root File system을 올려보겠습니다. 그 젂에 u-boot,커널이 sd card에 write가 되어 있어야 합니다. (망고210 & u-boot) u-boot 이미지 올리기 (sd booting) (망고210:s5pv210 & 커널) linux 커널 SD card에 올리기 -망고210 Froyo 소스 다운로드 받기 -망고210 Froyo Filesystem 다운로드 받기 일단 소스를 받았으면, 압축을 풉니다. #tar xvf mango210_froyo_2010_08_06.tgz #cd froyo #./mango210_build.sh 컴파일하는데 1시갂 이상 걸릱니다. 컴퓨터 사양이 좋은면 30붂.. NFS 파일 시스템 올리기 (nfs 설정은 각자 알아서하기 바랍니다. 자료는 검색하면 됩니다) 1) U-boot 에서 실행이 되면, 2) setenv ipaddr 192.168.0.20; setenv gatewayip 192.168.0.1; setenv serverip 192.168.0.4 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 11
  • 12. (각자 네트워크 맞게 세팅) 3) setenv bootargs "root=/dev/nfs rw nfsroot=192.168.0.4:/home/icanjji/nfsroot/mango210_froyo ip=192.168.0.20:192.168.0.4:192.168.0.1:255.255.255.0:::off init=/init console=ttySAC1,115200" 4) tftpboot 21000000 mango210_zImage;bootm 21000000 NAND Write 하기 (yaffs2) 선행 환경: tftp,nfs 설정이 되어 있어야 합니다. 1) SD card를 망고210 보드에 삽입 후 SD booting으로 부팅 2) U-boot 올리기 >nand scrub >nand erase 0 80000;tftp 21000000 mango210_uboot.bin;nand write 21000000 0 80000 3) NAND Mode 설정: http://cafe.naver.com/embeddedcrazyboys/7439 4) 젂원인가하면 NAND에 Write된 u-boot가 실행 됩니다. 안되면 2)번 다시 5) setenv ipaddr 192.168.0.20; setenv gatewayip 192.168.0.1;setenv serverip 192.168.0.4;save 6) kernel 올리기 >nand erase 80000 300000;tftp 21000000 mango100_zImage;nand write 21000000 80000 300000 7) 파일 시스템 올리기 >tftp 21000000 mango210-froyo.yaffs2 >nand erase 400000 A000000;tftp 21000000 mango210-froyo.yaffs2;nand write 21000000 400000 $filesize >setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttySAC1,115200" 8) 다시 리부팅 SD card에 파일시스템 올리기 1) SD card를 PC에 삽입합니다. 2) “dmesg | tail” 명령으로 디바이스 확인 3) root 로 로그인합니다. >fdisk /dev/sdb (sdb는 device 이름 ) 4) Partition을 3개로 나눕니다. 5) Partition 1: 2GB, partition 2: 500MB , partition 3: 나머지 모두 (개인에 따라 다름) >mkfs.vfat /dev/sdb1 >mkfs.ext3 /dev/sdb2 12
  • 13. 1. 오류! 참조 원본을 찾을 수 없습니다. >mkfs.ext3 /dev/sdb3 >mkdir /media/sdb2 >mount /dev/sdb2 /media/sdb2 > cp mango210_froyo/* /media/sdb2 > sync 6) SD card를 PC에서 뺀 후 망고210 보드에 삽입, 젂원인가 후 u-boot 실행이 되면 아무키나 누르세요. 7) U-boot에서 아래와 같이 명령을 입력합니다. >setenv bootargs "root=/dev/mmcblk0p2 rw rootfstype=ext3 init=/init console=ttySAC1,115200 rootdelay=1" 8) u-boot에서 reset하면 됩니다. 1.3. 망고210 9월 29일 소스 u-boot,kernel,froyo 포팅하기 1.3.1. U-boot 포팅하기 (9월29일) (망고210 & U-boot ) u-boot 업데이트 -2010-09-29 수정 사항 1)ARM Clock 1Ghz로 Up #define CONFIG_CLK_1000_200_166_133 2)Recovery 기능 추가 (부팅 시 아무키나 누르면, Nand에 u-boot,kernel를 Write합니다) board_late_init()함수를 참조하세요. 3)U-boot에서 “nand scrub” 명령 시 아무키나 누르면, 수행 됩니다. 컴파일 방법 #make mango210_config #make SDHC card에 바로 Write하는 방법 u-boot 수행 후 아래 명령 수행 #tftp 21000000 mango210_uboot.bin;movi write u-boot 21000000 2010-09-29 소스 및 바이너리 다운로드 1.3.2. 커널 포팅하기(9월29일) (망고210 & kernel) kernel 업데이트 2010-09-29 수정 사항 1) 터치 보정 –s3c-ts.c 파일 참조(http://cafe.naver.com/embeddedcrazyboys/8141) 2) HDMI 관렦 부붂 알파보드와 릯리즈 보드로 구붂 CONFIG_MACH_MANGO210_EVT0 검색 하세요. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 13
  • 14. 3) mango210_wifi_android_defconfig 추가 WiFi Configuration 추가 4) Finger Mouse 드라이버 추가(driver/input/mouse 참조) 5) Usb storage 기능 추가 커널 컴파일 방법 #make mango210_android_defconfig #./fast_build SDHC card 에 Write하는 방법 #tftp 21000000 mango210_zImage ;movi write kernel 21000000 소스 및 바이너리 다운로드 1.3.3. froyo 포팅하기(9월30일) (mango210 & Android) Froyo 업데이트 2010-09-30 수정 사항  음성 검색 디버깅  APP 추가 (유투브,구글맵,앱 다운로드 프로그램 등) rootfs_base/system/app/ 컴파일 방법  #./ mango210_build.sh 파일 시스템 망고 보드에 적재 방법  SD Card 4GB 준비하고, PC에 Insert  망고210 & SD Boot) 안드로이드 SD Boot 이미지 맊들기 2010-09-30 Froyo 소스 및 바이너리 다운로드 1.3.4. 쉽게 NAND에 안드로이드 포팅하기 (Mango210:S5PV210) 쉽게 NAND에 안드로이드 포팅하기 우선 준비되어야 하는 홖경 u-boot 바이너리 소스: http://cafe.naver.com/embeddedcrazyboys/8258 커널 소스 바이너리 : http://cafe.naver.com/embeddedcrazyboys/8259 받으시면 됩니다. SD card Write하는 방법은 2.3.8 (mango210 & android) SD Boot 업그레이드 을 참조하시면 됩니다. SD card에 이미지로 Write한 후 SD card를 부팅 시 아무키나 꾹 누르고 ,있으면 자동으로 NAND에 u-boot,kernel를 Write합니다. 14
  • 15. 1. 오류! 참조 원본을 찾을 수 없습니다. 소스 코드는 아래를 참조하시기 바랍니다. int Auto_NAND_Write(void) { unsigned int regs,key_value; char boot_cmd[100]; char *bcs; printf("CRZ recoveryn"); sprintf(boot_cmd, "nand scrub;movi read u-boot 0x21000000;nand erase 0x0 0x70000;nand write 0x21000000 0x0 0x70000"); setenv("u-boot-write", boot_cmd); bcs = getenv ("u-boot-write"); run_command (bcs, 0); sprintf(boot_cmd, "movi read kernel 0x21000000;nand erase 0x80000 0x300000;nand write 0x21000000 0x80000 0x300000"); setenv("Kernel-Write", boot_cmd); www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 15
  • 16. bcs = getenv ("Kernel-Write"); run_command (bcs, 0); } 부팅이 됩니다. 부팅이 된 후 로그인 화면에 “root” 입력 , passwd는 엔터 치면 됩니다. X-Window가 실행됩니다. #vi build_system 한 후 아래와 같이 수정을 합니다. echo "$1 Filesystem build" # flash_eraseall /dev/mtd0 # flash_eraseall /dev/mtd1 # echo "" # echo "Uboot Image Writing..." # echo "" # dd if=$HOME/common/mango210_uboot.bin of=/dev/mtdblock0 bs=2048 # echo "" # echo "Kernel Image Writing..." # echo "" # dd if=$HOME/$1/mango210_zImage of=/dev/mtdblock1 bs=2048 u-boot,kernel Write하는 부붂을 모두 막습니다. SAVE 후 빠져나오셔서 아래와 같이 명령을 수행하면 됩니다. #./build_system android SD card에 있는 Android 파일 시스템을 NAND에 자동으로 Write합니다. 완료 되었다는 메시지가 나오면, NAND 모드로 세팅 후 부팅하면 됩니다. (mango210:s5pv210) NAND Booting 모드 1.4. 망고210 2010년 10월21일 소스 ,kernel,froyo 포팅하기 16
  • 17. 1. 오류! 참조 원본을 찾을 수 없습니다. 1.4.1. 망고210 커널 포팅하기 (2010년10월21일) 수정사항  Android booting 시 무한루프 문제 수정(검전님 감사합니다. )  WiFi, GPS 추가 Mango210 kernel 2010-10-21 소스 다운로드 „ Build 방법  #make mango210_wifi_android_defconfig  #./fast_build 망고보드에 다운로드 방법(U-boot 실행 아무키나 누르고)  SD card Write 시 #tftp 21000000 mango210_zImage ;movi write kernel 21000000  NAND Write 시 #nand erase 80000 300000;tftp 21000000 mango210_zImage; #nand write 21000000 80000 300000  Tftp 부팅 #tftpboot 21000000 mango210_zImage;bootm 21000000 1.4.2. 망고210 Froyo 포팅하기 (2010년10월21일) 수정사항  Wifi ,gps 추가  안드로이드 부팅 시 무한루프 문제 수정 망고210 froyo 2010-10-22 소스 다운로드 빌드 방법  #./mango210_build_sh 다운로드 방법 - SD card를 PC에 꽂은 후 - froyo 소스 디렉토리 rootfs 내용을 복사 #cp rootfs/* /media/mmcblk0p2/ -mango board에 sd card 꽂고 부팅 1.5. 망고210 2010년 11월22일 소스 kernel,froyo 포팅하기 1.5.1. Kernel 컴파일 하기 (2010년11월22일) 커널과 안드로이드 소스를 아래 링크에서 다운로드 합니다. 망고210 커널 2010-11-22 소스 다운로드 망고210 커널 2010-11-22 이미지 다운로드 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 17
  • 18. 망고210 안드로이드(Froyo) 2010-11-22 소스 다운로드 망고210 안드로이드(Froyo) 2010-11-22 이미지 다운로드 컴파일 하기 싫은 붂은 이미지맊 받아서 테스트 하셔도 됩니다. 컴파일 방법은 갂단합니다. Kernel 컴파일 방법 먼저 소스를 다운로드 합니다. wget명령으로 #wget http://crztech.iptime.org:8080/Release/mango210/kernel/mango210_kernel_src_2010_11_22.tgz [root@CRZTECH mango210]# ls froyo mango210_froyo_src_2010_11_22.tgz samsung kernel mango210_kernel_src_2010_11_22.tgz uboot [root@CRZTECH mango210]#tar zxvf mango210_kernel_src_2010_11_22.tgz Kernel 디렉토리가 맊들어지면서 압축이 모두 풀릱니다. [root@CRZTECH mango210]# ls froyo mango210_froyo_src_2010_11_22.tgz samsung kernel mango210_kernel_src_2010_11_22.tgz uboot [root@CRZTECH mango210]# cd kernel/ [root@CRZTECH kernel]# make mango210_wifi_android_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/docproc HOSTCC scripts/basic/hash HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/kxgettext.o HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # 맊약 에러가 발생한 경우는 Toolchain 홖경을 설정 안 하싞 것입니다. (Toolchain) gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 입니다. 을 참조하시기 바랍니다. [root@CRZTECH kernel]# ./fast_build 컴파일 한 이미지는 arch/arm/boot/zImage에 위치합니다. 이 파일을 fast_buid 스크립트 파일에서 tftp root로 복사를 합니다. 스크립트 소스에서 가장 밑에 있는 shell 명령입니다. cp -a arch/arm/boot/zImage /share/image/mango210_zImage 저는 tftp root는 18
  • 19. 1. 오류! 참조 원본을 찾을 수 없습니다. [root@CRZTECH kernel]# vi /etc/xinetd.d/tftp 을 확인 해 보면 service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/share/image disable = no per_source = 11 cps = 100 2 flags = IPv4 } /home/share/image 로 되어 있습니다. 1.5.2. Froyo 컴파일하기 (2010년 11월 22일) Froyo 컴파일 방법 #wget http://crztech.iptime.org:8080/Release/mango210/android/mango210_froyo_src_2010_11_22.tgz #tar zxvf mango210_froyo_src_2010_11_22.tgz #cd froyo #./mango210_build.sh 컴파일 에러가 발생한다면, 라이브러리와 패키지 툴을 설치해야 합니다. 컴파일 에러 잡는 방법은 구글링이나 카페에서 검색하면 됩니다. 가장 좋은 것은 망고스토리 5.0을 사서 보는 것이 좋을 듯 합니다. 커널 업데이트 방법 SDHC card에 u-boot,커널,파일 시스템이 있는 경우 SD boot 부팅 옵션은 아래와 같습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 19
  • 20. SDHC card는 “1번” SDIO_0에 삽입하면 됩니다. 20
  • 21. 1. 오류! 참조 원본을 찾을 수 없습니다. 어댑터,3pin Serial cable을 보드에 연결합니다. 3pin Serial cable은 망고210 알파 보드는 UART_1에 연결을 합니다. “◁” 표시 된 것이 TX입니다. 따라서, 3pin Serial Cable은 RX라인을 꽂아야 합니다. 카페나 홈페이지를 통하여 3핀 시리얼 케이블을 구매하셨다면, “적색”으로 된 것과 매칭 시켜 꽂어시면 됩니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 21
  • 22. 망고 210 릯리즈 보드는 아래와 같이 연결하시면 됩니다. 22
  • 23. 1. 오류! 참조 원본을 찾을 수 없습니다. 하이퍼 터미널 프로그램 , 리눅스에서는 minicom, 윈도우에서는 DNW,putty등을 실행 시키고 , COM Port를 설정합니다. 포트 번호 설정하는 방법은 “내컴퓨터->장치관리자->포트(COM및 LPT)에서 확인하시면 됩니다. 그리고, 젂원을 인가합니다. OK U-Boot 1.3.4 (Nov 10 2010 - 22:35:21) 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 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 23
  • 24. DRAM: 512 MB SD/MMC: 7647MB NAND: 256 MB *** Warning - using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 MANGO210 # 1.5.3. U-boot,kernel, froyo 포팅하기 (11월22일자) SD/MMC card에 u-boot,kernel,froyo 이미지 업데이트를 해 보겠습니다. u-boot 소스를 약갂 수정합니다. 변경된 내용은 아래와 같습니다. u-boot소스는 9월30일자 기준으로 설명을 합니다. u-boot (2010년9월30일) 소스 다운로드 : http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-2010-0930.tgz #find . –name “*.*” –exec grep “scrub” {} ; -print 명령으로 찾으면 ./common/cmd_nand.c에서 do_nand()함수 안에 아래것을 추가합니다. (굵게 표시한 것) if (strcmp(cmd, "bad") != 0 && strcmp(cmd, "erase") != 0 && strncmp(cmd, "dump", 4) != 0 && strncmp(cmd, "read", 4) != 0 && strncmp(cmd, "write", 5) != 0 && strcmp(cmd, "scrub") != 0 && strcmp(cmd, "markbad") != 0 && strcmp(cmd,"scrubauto")!=0 && strcmp(cmd, "biterr") != 0 && strcmp(cmd, "lock") != 0 && strcmp(cmd, "unlock") != 0 ) goto usage; … if (strcmp(cmd, "erase") == 0 || strcmp(cmd, "scrub") == 0||strcmp(cmd, "scrubauto") == 0) { /* "clean" at index 2 means request to write cleanmarker */ int clean = argc > 2 && !strcmp("clean", argv[2]); int o = clean ? 3 : 2; int scrub = !strcmp(cmd, "scrub")||!strcmp(cmd,"scrubauto"); int scrubauto=!strcmp(cmd,"scrubauto"); int skip; nand_erase_options_t opts; …. if (scrub) { skip = argc > 2 && !strcmp("y", argv[2]); puts("Warning: " "scrub option will erase all factory set " "bad blocks!n" 24
  • 25. 1. 오류! 참조 원본을 찾을 수 없습니다. " " "There is no reliable way to recover them.n" " " "Use this command only for testing purposes " "if youn" " " "are sure of what you are doing!n" "nReally scrub this NAND flash? <y/N>n"); if (scrubauto ) { opts.scrub = 1; } else if (getc() == 'y' && getc() == 'r') { opts.scrub = 1; } else { puts("scrub abortedn"); return -1; } } 그리고, ./common/cmd_nand.c 에서 scrubauto를 추가합니다. U_BOOT_CMD(nand, 5, 1, do_nand, "nand - NAND sub-systemn", "info - show available NAND devicesn" "nand device [dev] - show or set current devicen" "nand read[.jffs2] - addr off|partition sizen" "nand write[.jffs2] - addr off|partiton size - read/write `size' bytes startingn" " at offset `off' to/from memory address `addr'n" #ifdef CFG_NAND_YAFFS_WRITE "nand write[.yaffs[1]] - addr off|partition size - write `size' byte yaffs imagen" " starting at offset `off' from memory address `addr' (.yaffs1 for 512+16 NAND)n" #endif "nand erase [clean] [off size] - erase `size' bytes fromn" " offset `off' (entire device if not specified)n" "nand bad - show bad blocksn" "nand dump[.oob] off - dump pagen" "nand scrub - really clean NAND erasing bad blocks (UNSAFE)n" "nand scrubauto - Auto really clean NAND erasing bad blocks (UNSAFE)n" "nand markbad off - mark bad block at offset (UNSAFE)n" "nand biterr off - make a bit error at offset (UNSAFE)n" "nand lock [tight] [status] - bring nand to lock state or display locked pagesn" "nand unlock [offset] [size] - unlock sectionn"); board/samsung/mango210/mango210.c에서 int Auto_NAND_Write(void) { unsigned int regs,key_value; char boot_cmd[100]; char *bcs; printf("CRZ recoveryn"); sprintf(boot_cmd, "nand scrubauto;movi read u-boot 0x21000000;nand erase 0x0 0x70000;nand write 0x21000000 0x0 0x70000"); setenv("u-boot-write", boot_cmd); bcs = getenv ("u-boot-write"); run_command (bcs, 0); sprintf(boot_cmd, "movi read kernel 0x21000000;nand erase 0x80000 0x300000;nand write 0x21000000 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 25
  • 26. 0x80000 0x300000"); setenv("Kernel-Write", boot_cmd); bcs = getenv ("Kernel-Write"); run_command (bcs, 0); } 와 같이 추가 후 컴파일 합니다. 망고210 u-boot 소스 2010-12-08 소스 다운로드 http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-src-2010-11-22.tgz 망고210 u-boot 이미지 2010-12-08 다운로드 http://crztech.iptime.org:8080/Release/mango210/u-boot/image/mango210_uboot_11_22.bin 위의 코드를 갂단히 설명 드리면, 망고210 보드에 보면 키 버튼이 2개가 있습니다. 위치는 리셋키 우측 상단에 있습니다. 아무키나 누른 상태에서 , 리셋키를 누르면 nand를 모두 지우고, u-boot,커널을 SD card에 있는 것을 자동으로 nand에 write합니다. 그리고, GNOME Filesystem을 load하면서 부팅을 합니다. 젂에도 한번 설명을 드릮 적이 있습니다. 이제 u-boot,kernel,안드로이드 시스템이 모두 준비가 되었습니다. TFlash SDHC 4GB 이상을 준비합니다. 물롞 카드 READ기도 있어야 하고, TFlash를 꽂는 어댑터도 있어야 됩니다. 리눅스가 설치된 PC나 노트북에 TFlash를 넣습니다. 저는 노트북에 리눅스가 설치되어 있어 아래 그린과 같이 삽입 했습니다. u-boot,커널,안드로이드 파일 시스템,GNOME 파일 시스템이 모두 같은 디렉토리에 위치해야 합니다. SD boot 맊드는 방법(꼭 root 권한으로 수행) 첫번째: SD 스크릱트와 파일 시스템을 다운 받습니다. 두번째: u-boot, 커널, 안드로이드 파일 시스템을 sdwriter 파일이 위치한 디렉토리에 복사합니다. 26
  • 27. 1. 오류! 참조 원본을 찾을 수 없습니다. 세번째: #sdwriter sdb(장치명) 210 명령 입력하면 됩니다. 다음 시갂에 step by steb으로 해 보겠습니다. (망고210 S5PV210 kernel,android) 커널,안드로이드 포팅방법 -2010-11-22 소스 -4 SD boot를 맊드는 것을 step by step으로 해 보겠습니다. SD write하는 스크릱트를 다운 받습니다. 망고210 망고100 통합 SD writer 다운로드 위에 링크된 것을 받으면, GNOME 파일시스템은 포함되어 있습니다. 압축을 풀면 아래와 같이 파일이 있습니다. [root@icanjji-linux mango210-sdboot-2010-1208]# ls mango210_gnome.tgz mkbl1 sdwriter u-boot를 컴파일하여 넣습니다. Copy를 합니다. 망고210 u-boot 소스 2010-12-08 소스 다운로드 http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210-uboot-src-2010-11-22.tgz 망고210 u-boot 이미지 2010-12-08 다운로드 http://crztech.iptime.org:8080/Release/mango210/u-boot/image/mango210_uboot_11_22.bin 컴파일 방법은 생략합니다. # cp /media/share/image/mango210_uboot.bin mango210_uboot.bin [root@icanjji-linux mango210-sdboot-2010-1208]# ls mango210_gnome.tgz mango210_uboot.bin mkbl1 sdwriter 커널 이미지를 copy합니다 컴파일 방법 # make mango210_wifi_android_defconfig #make menuconfig www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 27
  • 28. High Memory Support를 선택하지 않습니다. 선택하고, 스페이스바를 누르면, 선택을 해제 할 수 있습 니다. #./fast_build 하면 됩니다. 컴파일 된 이미지를 sd boot writer 스크릱트에 복사 해 놓습니다. 이름이 중요합니다. “mango210_zImage”로 해야 합니다. #cp /media/share/image/mango210_zImage mango210_zImage [root@icanjji-linux mango210-sdboot-2010-1208]# ls mango210_gnome.tgz mango210_uboot.bin mango210_zImage mkbl1 sdwriter 커널은 다시 한번 컴파일을 해야 합니다. 이번에는 High Memory Support를 enable하고 컴파일 합니다 #make distclean # make mango210_wifi_android_defconfig #make menuconfig 28
  • 29. 1. 오류! 참조 원본을 찾을 수 없습니다. #./fast_build 하고, 빌드된 이미지를 GNOME filesystem에 /home/root/android 디렉토리에 copy합니다. 과정은 아래와 같습니다. #mkdir temp #cd temp #tar zxvf ../mango210_gnome.tgz 커널소스에서 zImage 소스 위치는 arch/arm/boot/zImage입니다. 커널 소스에 fast_build 쉘 스크릱트를 보면 가장 아래 줄에 copy하도록 되어 있습니다. #cp /media/share/image/mango210_zImage home/root/android/ [root@icanjji-linux temp]# ls app bin dev etc home lib linuxrc media mnt power proc sbin sys tmp usr var [root@icanjji-linux temp]# ls home/root/android/ mango210_zImage [root@icanjji-linux temp]# rm -rf ../mango210_gnome.tgz [root@icanjji-linux temp]# tar zcvf ../mango210_gnome.tgz * [root@icanjji-linux temp]# cd .. [root@icanjji-linux mango210-sdboot-2010-1208]# pwd /home/icanjji/work/sdboot/mango210-sdboot-2010-1208 [root@icanjji-linux mango210-sdboot-2010-1208]# ls mango210_bl1.bin mango210_gnome.tgz mango210_zImage sdwriter mango210_uboot.bin mkbl1 temp [root@icanjji-linux mango210-sdboot-2010-1208]# rm -rf temp/ 자 이제 마지막 안드로이드 파일 시스템을 컴파일 한 것을 넣습니다. 이름은 “mango210_froyo.tgz” 로 해야 합니다. [root@icanjji-linux froyo]# ls Makefile build development frameworks ndk prebuilt sdk bionic cts device hardware out rootfs system bootable dalvik external mango210_build.sh packages rootfs_base vendor www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 29
  • 30. [root@icanjji-linux froyo]# cd rootfs [root@icanjji-linux rootfs]# ls data dev init.goldfish.rc init.rc proc sys default.prop init init.mango210.rc modules sbin system [root@icanjji-linux rootfs]# tar zcvf ../mango210_froyo.tgz * 망고210 froyo를 컴파일이 끝나면, rootfs 디렉토리가 생성됩니다. 이것을 압축하면 됩니다. 압축한 “mango210_froyo.tgz”를 copy하면 됩니다. [root@icanjji-linux froyo]# cp mango210_froyo.tgz /work/sdboot/mango210-sdboot-2010-1208/ [root@icanjji-linux mango210-sdboot-2010-1208]# ls mango210_froyo.tgz mango210_uboot.bin mkbl1 mango210_gnome.tgz mango210_zImage sdwriter 위와 같이 파일 리스트 있으면 완료가 된 것입니다. SD card를 리눅스가 설치된 PC에 삽입합니다. # dmesg | tail 명령으로 어떤 디바이스명으로 인식이 되었는지 확인 할 수 있습니다. sd 32:0:0:0: [sdb] Assuming drive cache: write through sd 32:0:0:0: [sdb] Attached SCSI removable disk kjournald starting. Commit interval 5 seconds EXT3 FS on sdb2, internal journal EXT3-fs: recovery complete. EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sdb3, internal journal EXT3-fs: recovery complete. EXT3-fs: mounted filesystem with ordered data mode. 저은 /dev/sdb로 인식이 되었습니다. SD Boot를 맊드는 명령은 갂단합니다. # ./sdwriter sdb 210 Sdwriter 스크릱트가 수행하는 시퀀스를 갂단히 설명드리면, 마운트되어 있는 모두 해제 합니다. 그리고, 파티션을 3개로 나눕니다. 첫번째 :vfat 두번째: ext3 세번째:ext3 입니다. 실행이 끝나면 , SD card를 PC에서 빼서, 망고210 보드 SDIO_0 에 삽입 후 SDboot을 하면 됩니다. 이때 부팅을 하면 안드로이드는 부팅이 되지 않을 것입니다. (망고210 2010년 11월22일자 소스맊 그 렇습니다. ) 이유는 메모리를 아끼기 위해서, High Memory를 지원하는 것을 커널에서 unconfig 했는데, 안드로이드 는 High 메모리를 지원되도록 되어 있어 그렇습니다. SD boot시 꼭 GNOME 파일 시스템으로 부팅하시기 바랍니다. 젂원을 넣고, 키 버튼(KEY1,KEY2) 누른 상태에서 리셋키를 누르면 자동으로 nand scrub하고, u-boot,커널을 MMC card에서 읽어서 Nand에 Write합니다. 30
  • 31. 1. 오류! 참조 원본을 찾을 수 없습니다. GNOME filesystem으로 부팅을 하면, 로그인하라고 나옵니다. “root” 입력후 passwd에서 엔터치면, 됩니다. 그리고, #./build_system android 입력하면, 자동으로 커널과 안드로이드 파일 시스템을 NAND에 write합니다. INIT: Entering runlevel: 5 Starting Dropbear SSH server: dropbear. Starting system message bus: dbus. Starting syslogd/klogd: done Starting Connection Manager net eth0: SMSC911x/921x identified at 0xeb824000, IRQ: 43 Starting APACHE server: done Starting PVPGN Services: done Starting SMB Services: done Starting GPE display manager: gpe-dm _____ _____ _____ _____ _____ | | _ | | | | | | | | _| - | |_|_|_|__|__|__|__|___|_|_____| (C)2010 Embedded Crazyboys Forum. MANGO Embedded Linux Platform. System : Mango Console : s3c2410_serial1 Mango login: root root@Mango:~# ./build_filesystem android Mango210 Create Filesystem ver 1.0 android Filesystem build Erasing 128 Kibyte @ 380000 -- 100 % complete. Kernel Image Writing... 1472+1 records in 1472+1 records out UBI mount program ver 1.1 Create by pjlee Erasing Partition 2 Area Erasing 128 Kibyte @ 1620000 -- 8 % complete. Skipping bad block at 0x01640000 Erasing 128 Kibyte @ ac40000 -- 68 % complete. Skipping bad block at 0x0ac60000 Erasing 128 Kibyte @ af40000 -- 69 % complete. Skipping bad block at 0x0af60000 Erasing 12UBI: attaching mtd2 to ubi0complete. UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical eraseblock size: 129024 bytes UBI: smallest flash I/O unit: 2048 UBI: sub-page size: 512 UBI: VID header offset: 512 (aligned 512) UBI: data offset: 2048 Erasing 128 Kibyte @ fc00000 -- 100 % complete. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 31
  • 32. UBI: empty MTD device detected UBI: create volume table (copy #1) UBI: create volume table (copy #2) UBI: attached mtd2 to ubi0 UBI: MTD device name: "rootfs" UBI: MTD device size: 252 MiB UBI: number of good PEBs: 2013 UBI: number of bad PEBs: 3 UBI: max. allowed volumes: 128 UBI: wear-leveling threshold: 4096 UBI: number of internal volumes: 1 UBI: number of user volumes: 0 UBI: available PEBs: 1989 UBI: total number of reserved PEBs: 24 UBI: number of PEBs reserved for bad PEB handling: 20 UBI: max/mean erase counter: 0/0 UBI: image sequence number: 0 UBI: background thread "ubi_bgt0d" started, PID 1576 UBI device number 0, total 2013 LEBs (259725312 bytes, 247.7 MiB), available 1989 LEBs (256628736 bytes, 244.7 MiB), LEB size 129024 bytes (126.0 KiB) Set volume size to 256628736 Volume ID 0, size 1989 LEBs (256628736 bytes, 244.7 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name "rootfs", alignment 1 UBIFS: default file-system created UBIFS: mounted UBI device 0, volume 0, name "rootfs" UBIFS: file system size: 255080448 bytes (249102 KiB, 243 MiB, 1977 LEBs) UBIFS: journal size: 12773376 bytes (12474 KiB, 12 MiB, 99 LEBs) UBIFS: media format: w4/r0 (latest is w4/r0) UBIFS: default compressor: lzo UBIFS: reserved for root: 4952683 bytes (4836 KiB) mounting Success!!! android Filesystem Writing... UBI mount program ver 1.1 Create by pjlee UBIFS: un-mount UBI device 0, volume 0 UBI: mtd2 is detached from ubi0 unmount Success!!! Create Done... Please Jumper Setting, and reset root@Mango:~# 망고210 BOOT 스위치를 NAND로 변경하고 , 젂원을 인가하면, 안드로이드가 부팅이 됩니다. 32
  • 33. 1. 오류! 참조 원본을 찾을 수 없습니다. 으로 변경 후 젂원 인가하면 됩니다. 처음 부팅 후 첫 화면에 안드로이드 로고를 꾹 누르고, 모두 “Skip”하시면 됩니다. 2. Mango210 Wince 2.1. Wince 6.0 Dragin Tool로 이미지 올리는 방법 망고100까지는 DNW tool로 올렸지맊, 망고210 부터는 Dragin이라는 Tool이 추가가 되었습니다. 물롞, BL1 바이너리를 USB download 기능이 들어가도록 맊들면 올리는 방법은 동일합니다. 일단은 새로 맊들어진 툴을 사용해 보겠습니다. 시갂이 지나면, BL1 작업도 진행을 해서 쉽게 포팅할 수 있도록 강구할 것입니다. 2.1.1. 이미지를 올리기 위한 준비과정 먼저 하드웨어적으로 UART2(CON914)에 UART Pin은 마운트 해야 합니다. 아래 그린1-1과 마운트 되 어 있어야 합니다. 보드는 릯리즈 보드로 위주로 설명을 드리겠습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 33
  • 34. 2-1 UART Port 회로도와 S5PV210 Datasheet를 살펴 봅니다. XOM0~XOM5 까지 Boot Switch PIN이 묶여 있다는 것을 알 수가 있습니다. BOOT 모드는 S5PV210은  General NAND Flash memory  OneNAND memory  SD/MMC memory(such as MoviNAND and iNAND)  eMMC memory  eSSD memory  UART and USB devices 우리가 사용할 것은 UART device와 USB device입니다. 아래 S5PV210 UM 1.1 Datatsheet의 내용입니 다. 34
  • 35. 1. 오류! 참조 원본을 찾을 수 없습니다. 따라서, 망고210 보드에 리셋 버튼 위에 있는 BOOT Switch(SW100)를  2,6번 ON, 1,3,4,5번 OFF www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 35
  • 36. 그림 2-2 망고210 UART/USB Boot Mode 하면 됩니다. 6번을 ON하는 이유는 망고210 보드에 NAND(K9F2G08U0M)가 아래 그린(1-2)에서 1page가 2K이고, 5 cycle 수행된다는 것을 알 수가 있습니다. 36
  • 37. 1. 오류! 참조 원본을 찾을 수 없습니다. 그림 2-3 NAND Organization 이제 이미지를 준비를 합니다. 필요한 이미지 이름은 아래와 같습니다.  BL1_UART.nb0  bootimage.nb0  EBOOT.nb0  NK.bin 뭔가 달라졌습니다. Stebldr.nb0가 없습니다. S5PV210 cpu에서는 UART MODE로 부팅하여 BL1 바이너 리를 CPU 내부에 Internal RAM에 Load할 수 있습니다. 이 기능을 사용하기 위함입니다. 자세한 것은 User Manual을 참조하시기 바랍니다. 각각의 기능은 갂단히 설명 드리면, BL1_UART.nb0는 IRAM 적재되어 eboot.nb0를 load하는 역할을 합니다. Eboot.nb0는 bootimage.nb0와 NK.bin을 NAND에 Write하는 역할을 합니다. Bootimage.nb0는 stebldr.nb0와 eboot.bin이 합쳐진 binary입니다. NK.bin은 설명하지 않아도 아시겠지요. Wince OS image입니다. 이제 보드에 젂원과 UART 를 연결합니다. UART1,UART2 모두 연결해야 합니다. 아래 그린은 연결한 모습니다. 연결 시 주의 점은 보드 보드에 보면 실크로 “◁”표시가 되어 있습니 다. 이것이 TX입니다. 따라서, 3Pin Serial cable연결 시 RX를 TX에 연결하시면 됩니다. 3Pin Serial cable을 보면 적색으로 되어 있는 것이 RX입니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 37
  • 38. 그림 2-4 UART 연결 모습 어댑터와 usb cable으로 PC와 망고210 보드사이에 아래과 같이 연결합니다. 2-5 UART,USB 연결도 위와 같이 연결해도 다운로드가 안되는 경우라면, 무조건 아래와 같이 연결해야 합니다. 38
  • 39. 1. 오류! 참조 원본을 찾을 수 없습니다. 2-6 UART connect 2 PC에서 “내 컴퓨터->장치관리자” Port를 변경해야 합니다. Dragin Tool이 PC에 COM1 port로 BL1_UART.nb0를 다운받기 때문에 COM1 Port를 사용하고 있다면, 제거하시고 하시기 바랍니다. Port를 변경하는 방법은 모두 아시리라 생각합니다. 저는 아래와 같이 설정을 했습니다. USB Serial Port(COM1)으로 연결된 부붂이 보드 실크에 보면, “UART2” 쓰여진 것입니다. 중요한 것은 COM1 port로 꼭 설정해야 한다는 것입니다. 이유는 uart boot가 s5pv210 cpu에서 uart2로맊 되기 때문입니다. USB Serial Port(COM11)은 “UART1” 연결합니다. 회로도 상으로 본다면, 실크와 동일합니다. 2-7 UART 회로도 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 39
  • 40. 2.2. UART2가 UART로 BL1_UART.nb0을 다운로드합니다. UART1은 디버그 메시지를 출력하기 위함 입니다. 2.2.2. Dragin Tool 설정 및 이미지 다운로드 망고210 wince 6.0 이미지는 다운받습니다. 망고210 wince 6.0 바이너리 다운로드 BSP 압축을 푸시면, etc 디렉토리 밑에 있습니다. 실행하시면 됩니다. 없으면, 첨부파일 열어서 실행하시면 됩니다. “Dragin V1.25.exe” 실행합니다. 실행화면은 아래와 같습니다. 40
  • 41. 1. 오류! 참조 원본을 찾을 수 없습니다. 위에서 Basic Option을 선택합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 41
  • 42. 위와 같이 세팅을 합니다. Download Addr을 “0x47700000”으로 설정하는 이유는 S5PV210 CPU user menual 을 참고합니다. 그럼 아래와 같이 Address Map이 보입니다. 42
  • 43. 1. 오류! 참조 원본을 찾을 수 없습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 43
  • 44. 망고210 보드의 회로도를 보시면, DRAM1영역에 256MB이 붙어 있습니다. 따라서, USB OTG를 통하여 이미지를 올릯 때 사용하는 address주소입니다. 그리고, BASIC 탭을 선택을 합니다. BL1 버튼을 클릭하고, BL1_UART.nb0 를 선택합니다. “TSR IMAGE” 버튼을 클릭하고, eboot.nb0를 선택합니다. Eboot.nb0 가 0x47700000에서 실행이 됩니 다. 이미지는 usb 를 통하여 망고보드로 다운로드 되어 실행 됩니다. 44
  • 45. 1. 오류! 참조 원본을 찾을 수 없습니다. “BOOT” 버튼을 클릭합니다. 그리고, bootimage.nb0 파일을 선택합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 45
  • 46. “bootimage.nb0” 에는 bootloader와 eboot가 모두 포함된 이미지 입니다. 마지막으로 NK.bin파일을 “OS” 버튼을 클릭하여 선택합니다. 46
  • 47. 1. 오류! 참조 원본을 찾을 수 없습니다. 그리고, “DETECT” 버튼을 누릅니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 47
  • 48. 보드에 젂원을 연결한 상태에서 “리셋”버튼을 누릅니다. 또는 젂원을 스위치를 Off->ON합니다. 그럼 아래와 같이 Dragin Tool 이 녹색으로 변합니다. 녹색으로 변하지 않을 경우 UART를 다시 PC에서 뺀 후 다시 연결 해 보시기 바랍니다. 48
  • 49. 1. 오류! 참조 원본을 찾을 수 없습니다. 2-8 Dragin Detect 위 그린(1-1 Dragin Detect) 처럼 녹색이 되면, “DOWNLOAD” 버튼을 누르시면 됩니다. 아래 동영상 처럼 수행이 됩니다. 마지막에 녹색이 파란색으로 바뀌면, Wince 6.0이 망고210에 수행이 된 것입니다. 망고210 Wince 6.0 Dragin 동영상 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 49
  • 50. 50
  • 51. 1. 오류! 참조 원본을 찾을 수 없습니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 51
  • 52. 52