SlideShare una empresa de Scribd logo
1 de 108
Descargar para leer sin conexión
망고100(S5PC100),망고64(S3C6410)
 구입멤버대상 안드로이드초보강좌
             http://cafe.naver.com/embeddedcrazyboys
                   http://www.mangoboard.com
               분당테크노파크 A동 1층 세미나실
                      2010.09.01 16:00~19:00




http://www.mangoboard.com
망고100 특징
 Cortex-A8 Core 기반으로 삼성 CPU S5PC100 탑재
    (667/800Mhz)
   3D Hardware 가속기 CPU에 기본 내장
   Wince 6.0, Android,Embedded linux 체험 및 프로젝트에
    적합한 보드
   듀얼 카메라 지원
   HDMI ,TV out 기능 지원
   가로100 mm,세로 70mm로 휴대 간편



http://www.mangoboard.com
망고100 하드웨어




http://www.mangoboard.com
망고100 하드웨어




      1 Micro-SD card Connector   2   HDMI connector
      3 B2B Expansion Connector   4   40Pin ZIF ATA Connector
      5 RTC Battery               6   20Pin Camera Expansion
                                      Connector
http://www.mangoboard.com
망고100 구조도




http://www.mangoboard.com
망고100 부팅과정




http://www.mangoboard.com
망고100 부팅 Mode


                            #   SW100    SW101
                            1   XOM0    NFMOD0
                            2   XOM1    NFMOD1
                            3   XOM2    NFMOD2
                            4   XOM3    NFMOD3
                            5   XOM4    NFMOD4
                            6    NC     NFMOD5




http://www.mangoboard.com
S5PC100 부팅 모드




http://www.mangoboard.com
망고100 부팅모드
 USB Boot Mode
 Nand Boot Mode
 SD Boot Mode




http://www.mangoboard.com
망고100 USB Mode




http://www.mangoboard.com
망고100 Nand Boot Mode
SW101




  „OM[2:1]=0b00‟
  „NFMOD[2:0]=0b110‟
  Nand Large Block , 5 Addr Cycle
  6번 0읶 경우 Nand Booting




    http://www.mangoboard.com
망고100 SD Boot Mode
SW100

                          ON

SW101




  OM[2:1]:0b10 MMC boot mode




  http://www.mangoboard.com
Boot Mode 실습
 Booting Mode 실습
 DNW Tool 다운받기
(http://cafe.naver.com/embeddedcrazyboys/5701)
 UART Port 설정 “장치관리자” 확읶




http://www.mangoboard.com
Mango100 USB Boot Mode 실습
 DNW Tool 실행
 망고100 보드에 전원,UART, USB 연결
 SW101 Boot 스위치 조정

 전원읶가 후 아래와 같이 나오면 OK




http://www.mangoboard.com
망고100 UART 연결
 “내 컴퓨터 ->장치관리자” PORT 확읶
 DNW Tool Configuration 설정
 “Serial Port -> Connect “ 클릭




http://www.mangoboard.com
망고100 USB BootLoader 실행하기
 “USB Port ->Transmit -> Transmit” 선택
 “mango100_bl_umon.bin” 선택




http://www.mangoboard.com
망고100 Nand Mode boot 실습
 DNW 실행
 UART 연결 후 NAND Mode Booting
 Wince 구동 되는 모습




http://www.mangoboard.com
망고100 SD Boot 실행 모습
 SDHC Card를 보드에 Insert
 Default : GNOME File System
 Android 부팅 방법
(setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3
  console=ttySAC1,115200 rootdelay=1„)




http://www.mangoboard.com
망고64 특징
 ARM1176 Core 기반으로 삼성 S3C6410 CPU내장
 ARM Processor Clock 533/667Mhz
 Firmware,Wince 6.0, Android 공부에 적합한 보드
 WiFi, GPS 옵션으로 내장된 보드
 3축 센서 기본 Mount




http://www.mangoboard.com
망고64 부품면
22
             29       30            8        12                               11

                                                           10



                                             26
                        5                                                     9
      14                                                        6

                                                  25

                                                  24
              28                                                              21
      27
                            1                                            18

      13

                                2            4         3                 17
                                                                                   20

                    7
     http://www.mangoboard.com          23                          16        15
                                                                         19
망고64 부품면
Num    Description                              Num   Description
1      S3C6410X ARM1176JZF-S 667MHz AP          2     128Mbytes Mobile DDR SDRAM

3      256Mbytes SLC NAND (K9F2G08U0M)          4     4Mbytes NOR (K8P3215UQB)

5      WM8960 Audio Codec + 1W AMP              6     SMSC9220 100Mbs Ethernet Controller

7      USB 2.0 OTG Connector                    8     USB 1.1 Host Connector

9      SD Card Slot                             10    RJ45 Ethernet Connector

11     20pin ARM Standard JTAG                  12    UART Port 1, DSUB9 Connector

13     WiFi/Bluetooth Combo (Option)            14    GPS Module (Option)

15     DC 5V Power JACK (5V/2A)                 16    24P Korean Standard Charger Connector
17     Boot Mode Select SW [OM,GPN]             18    Board Configuration Shunts

19     Reset Switch                             20    Power ON/OFF Slide Switch

21     Battery Connector (Single-Cell Li-Ion)   22    TV-Out Connector (S-Video Type)

23     LCD Expansion Connector                  24    IrDA Connector [UART Port 3]

25     SPI Port 0 Connector                     26    ADC Input Connector, AIN[3:0]

27     WiFi/BT Expansion [SD0, UART3]           28    GPS Expansion (UART Port 0)

29     Microphone Jack                          30    Headphone Jack




      http://www.mangoboard.com
망고64 LCD 면




 Num   Description                      Num   Description
 1     LCD Connector                    2     Loud Speaker
 3     Camera Expansion Connector       4     EBI/IO Expansion Connector
 5     SPI1/SD2 Expansion Connector     6     I2S Port 2 Expansion
 7     Power On/Off Switch [Tactile]    8     General Purpose Key 2 [XEINT2]
 9     General Purpose Key 0 [XEINT0]   10    General Purpose Key 3 [XEINT3]
 11    General Purpose Key 1 [XEINT1]   12    LCD Expansion Connector
 13    3-Axis Acceleration Sensor       14    HDD Connector (Not Tested)
망고64 NOR Mode Boot
망고64 NAND Mode
개발환경설정
 Vmware 7.1 설치
 Fedora 12 사용
 Tool Chain 4.2.2 버전 사용
 JDK1.6 버전




http://www.mangoboard.com
Vmware설치-1
        http://www.vmware.com/products/workstation/index.html




http://www.mangoboard.com
Vmware 설치 -2
     로그읶 후 계속 버튺 선택




http://www.mangoboard.com
VM ware 설치-3




http://www.mangoboard.com
Vmware 설치 -4
       Email 확읶하면 Register 등록




http://www.mangoboard.com
Fedora 12 설치-1
 Vmware에서 “File->New->Virtual Manchine”선택




http://www.mangoboard.com
Fedora 12 설치-2
    Fedora 12 설치 CD를 Insert




http://www.mangoboard.com
Fedora 12 설치-3




http://www.mangoboard.com
Fedora 12 설치-4




http://www.mangoboard.com
Fedora 설치-5




http://www.mangoboard.com
Fedora 설치-5




http://www.mangoboard.com
Fedora 설치-6




http://www.mangoboard.com
Fedora 설치-9




http://www.mangoboard.com
Fedora 설이-10




http://www.mangoboard.com
Fedora 환경설정




http://www.mangoboard.com
Fedora 환경 설정(SELinux 비활성화)




http://www.mangoboard.com
Fedora 환경 설정 (방화벽 비 활성화)




http://www.mangoboard.com
Fedora 설치 (예외처리)
 Vmware 7.1 +Fedora 설치하는 경우




 #df 명령으로 / 디렉토리가 작은 경우 (VMware7.1)
 # cd usr
 #mv share /home/share
 #ln –s /home/share share



http://www.mangoboard.com
Sudo 명령 사용하기
 #su
 #vim /etc/sudoers




 #sudo 계정




http://www.mangoboard.com
삼바(SAMBA)설정
 Window 시스템과 파읷 공유




http://www.mangoboard.com
삼바 설정-2




http://www.mangoboard.com
삼바 설정-3




http://www.mangoboard.com
삼바설정-4




http://www.mangoboard.com
삼바설정-5




http://www.mangoboard.com
삼바설정-6
 Guest Account 계정은 하나 추가해서 사용해도 됨




http://www.mangoboard.com
삼바설정 확인



   “시작-> 실행” 에서 ip Address 입력




http://www.mangoboard.com
Tool chain ?
 Tool chain 이란?
    Target 시스템의 Software 개발을 진행하기 위해 필요한
     host system의 cross compile(교차 컴파일)환경.
    source code 을 compile하고 build하여 binary 실행 파일을
     생성하는데 필요한 각종 Utility 및 Library의 모음.
    기본적으로 Assembler, Linker, C compiler, C library 등으로
     구성되어 있다.
    GNU에서 제공하는Tool-chain을 사용.
       GNU GCC compilers for C, C++
       GNU binary utilities
         assembler, linker various object file utilities
       GNU C library

 http://www.mangoboard.com
Toolchain 설치
 http://crztech.iptime.org:8080/Release/Toolchain/cross-4.2.2-
    eabi.tar.bz2
   #tar xvfjcross-4.2.2-eabi.tar.bz2
   # mkir /usr/local/arm
   #cd /usr/local/arm
   #mv 4.2.2-eabi /usr/local/arm/
   #vim ~/.bashrc
   #source ~/.bashrc
   #env
   #arm-linux-gcc -v
   최신 Tool
    chain:http://www.codesourcery.com/sgpp/lite/arm/portal/release10
    33


http://www.mangoboard.com
Toolchain
  Tool chain Test - Test 용 파일 생성
#> vi hello.c
                                           VI 에디터를 사용해서 샘플
#include<stdio.h>                          프로그램 생성
int main(void) {
            printf(“Hello Embedded”);
  return 0;                                I386 용 프로그램 생성
}                                          ARM 용 프로그램 생성
#> gcc –o hello hello.c
#> arm-linux-gcc –o hello-arm hello.c
#> ls
#> file hello
# ./hello
#> file hello-arm
다음과 같은 결과가 나오면.. 크로스 개발 환경이 제대로 설치가 된 것이
다.

   http://www.mangoboard.com
JAVA JDK설치-1
 http://java.sun.com/javase/downloads/widget/jdk6.jsp




http://www.mangoboard.com
JAVA JDK설치-2
 Binary Download




http://www.mangoboard.com
JAVA JDK설치-3
 # mkdir /home/java
 #cp jdk-6u21-linux-i586.bin ../java/
 #cd ../java
 #./ jdk-6u20-linux-i586.bin




http://www.mangoboard.com
JAVA JDK설치-4
 #vim ~/.bashrc




 #source ~/.bashrc
 #which java


http://www.mangoboard.com
minicom 설정
 Minicom 설정
 >#yum install minicom
 >#ls /dev/ttyUSB*
 ># minicom –s




http://www.mangoboard.com
Minicom 설정
 Serial Device :/dev/ttyUSB0
 Baudrate:115200
 Hardware Flow control: NO




 Save setup as dfl선택



http://www.mangoboard.com
TFTP
 Server로 부터 필요한 File을 읽어와 자신의 Memory에 Load 시킬 때
   필요한 Protocol
    Flash Memory에 맞도록 설계된 단순한 Protocol
    Disk 없는 System의 가동 프로세서에 이용
    UDP를 이용하여 Client와 Server 사이의 통신
    Booting에 필요한 간단한 Program과 BOOTP, RARP, TFTP만 탑재한 시스템
      에서 많이 이용되며 펌웨어 자동 업그레이드에 이용 가능
 장점
    시스템이 단순하고 간단함
    어떤 형태의 전달 서비스상에서도 동작이 가능
 단점
    정보보호 기능이 없음
    Data에 대한 보장성이 없음




http://www.mangoboard.com
TFTP
 TFTP 설치 /미설치 확읶 방법

           #>rpm –qa | grep tftp
           #>yum install tftp*




http://www.mangoboard.com
TFTP
 TFTP 환경설정
   Host의 /home 밑에 tftpboot라는 이름의 디렉토리를 만듬
   #mkdir -p /home/icanjji/tftpboot

   #vi /etc/xinet.d/tftp 파일을 수정




                                       전송될 파일의 위치
                                       디렉토리



 http://www.mangoboard.com
TFTP
 리눅스 부팅 시 자동 활성 방법

            #>/etc/init.d/xinetd restart
            #> chkconfig tftp on




http://www.mangoboard.com
TFTP 실습
 #cd /home/tftpboot
 #touch test.tftp
 #tftp xxx.xxx.xxx.xxx
 >get test.tftp
 >quit
 #ls




http://www.mangoboard.com
TFTP (VMWare 에서 설정)
-Cross cable,공유기 사용 시 모두적용
 “VM->Setting”




http://www.mangoboard.com
TFTP (HOST PC)
-Cross Cable 사용시
 #ifconfig eth0 xxx.xxx.xxx.xxx up
 #minicom




http://www.mangoboard.com
TFTP 실습-Cross Cable사용시
               Host PC 설정   Mango100 u-boot 설정




http://www.mangoboard.com
NFS(Network File System)
 NFS 란?
   SUN 사가 개발한 RPC(Remote Procedure Call) 기반 시스템
   Remote Computer의 파일을 마치 자신의 컴퓨터에 있는 것처럼 이용
   Server/Client 기반 응용 프로그램
   FS이 존재하지 않는 Client 시스템에서 원격의 Host 시스템에서 설정된 일부
    디렉터리를 이용



                                 /data
                                                                       /data
                                 /lib
                                                                       /lib
                                 /etc
                       /                                       /root   /etc
                                  …




                                                                         …
                                 /system
                                                  NFS Client           /system
          NFS Server             /sdcard
                                                                       /sdcard
                                 /init
                                                                       /init
                               Host File System


   http://www.mangoboard.com
NFS
 장점
    개발 호스트에서 작업한 것을 NFS 시스템을 이용하여
     Target Board의 리눅스 상에서 mount 시켜 사용하면 download
     할 필요가 없음.
    개발 호스트 상의 파일이 Target Board의 리눅스 파일시스템
     위에서 접근이 가능하고 실행이 가능.
    램 디스크 상에서 올리기에 너무 큰 파일도 NFS 상에서는
     호스트의 기억 용량에 의존하기 때문에 쉽게 처리 가능.
 단점
    특수 파일은 NFS에 연결된 디렉토리에 만들 수 없음.
      예: 장치 파일
    읽고 쓰는 속도가 빠른 파일로는 사용이 곤란.
      예: 멀티미디어 파일


http://www.mangoboard.com
TFTP/NFS를 이용한 부팅 시나리오
                                             Target

                                                RAM             RAM
                                                      5. 분기 및
                             NAND                     커널압축
                 1.TFTP             4.커널분기            해제      Linux 커널
   Host          request    부트 로더

                                             압축커널
                                             이미지
                                    3.압축커널
                 2.TFTP             다운로드
                  reply
                 (압축커널만)
                                                             6. NFS
                                                             Root
                                                             FS 마운트


Host Hard Disk
(File System)




http://www.mangoboard.com
NFS 서버 설정
    ># rpm –qa | grep nfs
    > # yum install nfs-*


   /etc/exports 파일의 내용에 추가할 사항
     /home/계정/nfsroot <tab>보드IP[또는 *](rw,no_root_squash)
        예) /home/계정/nfsroot *(rw, no_root_squash, no_all_squash) 또는
          /home/계정/nfsroot 192.168.0.*(rw, no_root_squash, no_all_squash)

no_root_squash : 원격 루트 사용자가 공유 파읷 시스템에서 모든 파읷을 변경
no_all_squash : uid,gid root권한으로 연결
rw: read/write 가능하도록 권한 부여




   http://www.mangoboard.com
NFS 설정(예)
 NFS 서버측 설정
    NFS 디렉토리 생성 및 권한 설정
        #>mkdir /home/계정/nfsroot (유저가 정하기 나름)
        #>chmod 777 /home/계정 /nfsroot




    NFS 환경설정
      #>vi /etc/exports                     NFS 디렉토리, 타겟보드 IP

        …
        /home/계정/nfsroot    *(rw,no_root_squash,no_all_squash)
        …
        #>
                                       문장 사이 사이에 띄어쓰기는 없어야 한다


http://www.mangoboard.com
NFS 서버 설정(2)
 /usr/sbin/ntsysv
    여러 항목 리스트 중에서 nfs를 찾아서 선택(* 표시)
 NFS 서비스 start 시킴
    Service nfs start 혹은 /etc/init.d/nfs restart




 위와 같이 나오면 NFS 설정은 완료되었음


http://www.mangoboard.com
NFS/TFTP 실습
   http://crztech.iptime.org:8080 에서 Download
   Host PC

             #>cd /home/계정/nfsroot
             #>mv éclair_RFS /home/계정/nfsroot
             #>chmod –R 777 /home/계정/nfsroot


   Target Board(u-boot 실행 후)
       # setenv bootargs "root=/dev/nfs rw
       nfsroot=192.168.0.10:/home/icanjji/nfsroot/
       éclair_RFS
       ip=192.168.0.20:192.168.0.10:192.168.0.1:255.255.255.
       0:::off init=/init console=ttySAC1,115200
       mem=256M";tftpboot 21000000 zImage;bootm 21000000

http://www.mangoboard.com
VNC 서버 설정 (Tip)
 #rpm –qa | grep vnc-server
 # yum install vnc*
 #vi /etc/sysconfig/vncservers


 #vncserver :1
 패스워드 입력
 #service vncserver restart
 # vi /usr/bin/vncserver


 #chkconfig vncserver on

http://www.mangoboard.com
VNC Client 설정
 http://www.tightvnc.com/download.php




http://www.mangoboard.com
U-Boot란? & 특징
 부트로더
   간단하게 특정 cpu에 OS 혹은 어떤 프로그램을 돌릴 수 있도록
    cpu가 동작하는데 필요한 아주 기초적읶 부분이나 ROM(or flash),
    RAM, UART등의 기본적읶 디바이스들을 동작할 수 있게 만드는
    프로그램.
 Universal Bootloader 의 약자로 간단하게 PowerPC와 ARM
  에 기반을 둔 임베디드 보드를 위한 부트로더.
    Ppcboot와 ARMboot를 썼던 사람들에게 익숙하다..
    발전을 해가면서 다양한 platform에 포팅(ppc, arm, mips, x86...)
    코드가 깔끔하고 구조가 좋음.
    굉장히 강력하고 그나마 쉬운(?) 환경 설정: 많이 쓰이는 cpu를 사용한 상
     용 evaluation board에 대한 기본 sample코드 존재(수정하여 사용가능)
    다른cpu에 대해 같은 명령어 체계를 사용하므로, 다른 platform에 적용을
     하더라도 큰 어려움 없이 쉽게 접근가능

http://www.mangoboard.com
U-boot 최신 소스 얻는 법
 http://www.denx.de/wiki/U-Boot
 CPU 칩 Band 업체에서 얻는 것이 가장 좋다.
 망고100 ,망고64 보드 :http://crztech.iptime.org:8080
   최신 소스 사용




http://www.mangoboard.com
망고100 U-boot Download , Compile
 #mkdir ~/work
 #tar xvf mango100-uboot-2010-0629.tgz
 #cd mango100_uboot_2010_06_29
 #make mango100_config
 #vi Makefile 수정
$(obj)u-boot.bin:     $(obj)u-boot
          $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
          cp -a $(obj)u-boot.bin /home/tftpboot/mango100-uboot.bin
 #make –j3



http://www.mangoboard.com
Mango100 u-boot write-1
 DNW Tool 실행 (NAND에 u-boot가 없을 경우)
 DNW Tool 다운로드
  (http://cafe.naver.com/embeddedcrazyboys/2305)
 Configuration(Download Address:0x2fe00000)




http://www.mangoboard.com
Mango100 u-boot write-2
     •USB Mode로 설정




     •전원읶가
     •Mango100_bl1_umon.bin 실행




     •Mango100-uboot.bin 다운로드(삼바설정 , 네트워크 드라이버 연결)




http://www.mangoboard.com
Mango100 tftp 로 u-boot write-3
 >#minicom 또는 putty (터미널 프로그램) 실행
 설명:ipaddr :망고보드 ip, serverip :tftp host ip ,
   gatewayip:Gatewayip

 공유기 네트워크 구성




http://www.mangoboard.com
Mango100 tftp 로 u-boot write-4
 Host PC와 보드와 Cross Cable로 연결




 setenv ipaddr 192.168.3.10; setenv gatewayip
   192.168.3.1;setenv serverip 192.168.3.20;save



http://www.mangoboard.com
Fedora Static IP 설정




http://www.mangoboard.com
Mango100 tftp 로 u-boot write-5
 MANGO100 #nand scrub
 MANGO100 # nand erase 0 80000
 MANGO100 # nand write 21000000 0 80000
 Nand 모드로 부팅




http://www.mangoboard.com
Yaffs2 파일시스템 tool 설정
 http://cafe.naver.com/embeddedcrazyboys/6240
 # cp mkyaffs2image /usr/bin/
 #which mkyaffs2image




http://www.mangoboard.com
Mango100 Kernel compile
Image Write (NAND)
  #wget
   http://crztech.iptime.org:8080/Release/mango100/kernel/mango100_kernel_2010_07_15.tgz
 tar xvf mango100_kernel_2010_07_15.tgz
 cd mango100_kernel_2010_07_15
 #vi .cross_compile 수정
 arm-linux-
 # make mango100_android_defconfig
 #make menuconfig 에서 yaffs2 filesystem추가




 #./fast_build
 #cp arch/arm/boot/zImage /home/icanjji/tftpboot/mango100_zImage



http://www.mangoboard.com
Mango100 Kernel compile
Image Write (NAND)
 Mango100보드에 전원읶가 u-boot실행 후 아래 명령
  수행
 MANGO100# tftp 21000000 mango100_zImage
 MANGO100# nand erase 80000 400000
 MANGO100# nand write 21000000 80000 300000
 setenv bootcmd "nand read 20008000 80000 300000;bootm
  20008000"
 Save
 리부팅


http://www.mangoboard.com
Mango100 Android Compile
       Filesystem Write –yaffs2
   #wget http://crztech.iptime.org:8080/Release/mango100/eclair/mango100_eclair_2010_07_15.tgz
   #tar xvf mango100_eclair_2010_07_15.tgz
   # yum install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl wget
   # yum install zlib-devel
   #yum install libX11-devel.i686
   #./mango100_build.sh
   #mkyaffs2image rootfs mango100_eclair.yaffs2
   #chmod 755 mango100_éclair.yaffs2
   #cp mango100_éclair.yaffs2 /home/icanjji/tftpboot/
   U-boot 실행 후
   #tftp 21000000 mango100_éclair.yaffs2
   #nand erase 400000 8000000
   #nand write.yaffs 21000000 400000 $filesize
   setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttySAC1,115200“;save




       http://www.mangoboard.com
망고100 USB OTG 이용 u-boot write
-리눅스
 http://cafe.naver.com/embeddedcrazyboys/5484




 >#mincom 실행
 >#dnw 21000000




http://www.mangoboard.com
망고100 USB OTG 이용 u-boot write
-Window 환경
 http://cafe.naver.com/embeddedcrazyboys/5484
 DNW tool 실행
 삼바 설정 및 네트워크 드라이버 연결


 MANGO100#dnw 21000000
 MANGO100# nand scrub
 MANGO100# nand erase 0 80000
 MANGO100# nand write 0x21000000 0x0 0x80000



http://www.mangoboard.com
망고100 SD booting 준비물
 SDHC 4G Card




 리눅스 설치 된 PC
 SD boot 망고100 Image




http://www.mangoboard.com
망고100 SD booting Image Write
 MMC /SD Card 리눅스 Host 에 Insert
 SD boot Script 다운 받는곳
   (http://crztech.iptime.org:8080)




http://www.mangoboard.com
망고100 SD booting Image Write
 #mkdir sdboot
 # tar xvf mango100_sdimage_4g_2010_07_15.tgz
 tar xvf sdtool.tgz
 #./sdwriter /dev/장치 mango-image
 #./sdwriter /dev/sdb mango100_sdimage_4g_2010_07_15.img
 완료가 되면, mmc card를 망고100에 삽입
 SD 부팅 모드로 변경                         6   5   4   3   2   1

                               SW100

                                                               ON
                               SW101
   http://www.mangoboard.com
                                       1   2   3   4   5   6
Mango100 Android Nand write하기
-간편방법
 SD Booting 후
 root@Mango:~# ./build_filesystem android
 실행 후 NAND mode로 부팅




http://www.mangoboard.com
망고100 NAND Partition 영역

                             0x00000000
                                        Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
               U-boot                   0x000000000000-0x000000080000 : "Bootloader"
          (/dev/mtdblock0)              0x000000080000-0x000000400000 : "Kernel"
                                        0x000000400000-0x000010000000 : "File System“
                             0x80000    --커널 부팅 시 메시지


               Kernel                   커널소스 위치는
256MB     (/dev/mtdblock1)
                             0x400000      부팅 후 확읶 방법
                                           #cat /proc/mtd
              Filesystem
          (/dev/mtdblock2)
                             0x10000000
SD /MMC Partition 구성
                              1
           FAT32(2.4GB)
                                           Disk /dev/mmcblk0: 3941 MB, 3941597184 bytes
                                           4 heads, 16 sectors/track, 120288 cylinders, total 7698432 sectors
                                           Units = sectors of 1 * 512 = 512 bytes
         GNOME FS(500MB)
                                                              1.    Fdisk 명령으로 파티션을 만든다
         Android FS(500MB)                                    2.    Mkfs.ext3 /dev/sdb1
                                                              3.    Mkfs.ext3 /dev/sdb2
                              TSECTORS-9266                   4.    Mkfs.ext3 /dev/sdb3
              Kernel                                          5.    Mount -t ext3 /dev/sdb2 /media/android
3941MB        (4MB)                                           6.    파읷시스템 복사
                              TSECTORS-1074
              U-boot
             (512KB)
                                  TSECTORS-34
            U-boot ENV
              (16KB)
                              TSECTORS-18
            Bootloader
              (9KB)
                             TSECTORS=7698432 sectors
Mango64 U-boot Write하기-1
 wget http://crztech.iptime.org:8080/Release/mango64/u-
    boot/mango64-u-boot-1.3.4-V01-03.tgz
   #tar xvf mango64-u-boot-1.3.4-V01-03.tgz
   #make mango64_config
   #make
   #cp -a u-boot.bin /home/icanjji/tftpboot/mango64-
    uboot.bin
   DNW Tool 실행
   Mango64 Nor Mode로 부팅


http://www.mangoboard.com
Mango64 U-boot Write하기-2
 DNW Configuration(Download Address:0x57e00000)




 U-boot 이미지 실행하기



http://www.mangoboard.com
Mango64 U-boot Write하기-3
 DNW 종료 후 Putty 실행
 MANGO64 # nand scrub




 MANGO64 # setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1;
  setenv serverip 192.168.0.6;save
(사용자 네트워크 설정에 따라 달라짐)

http://www.mangoboard.com
Mango64 U-boot Write하기-4
 MANGO64 # tftp 51000000 mango64-uboot.bin
 MANGO64 # nand erase 0 40000
 MANGO64 # nand write 51000000 0 40000
 NAND Mode로 부팅




http://www.mangoboard.com
Mango64 커널 컴파일 및 Write하기
 wget
    http://crztech.iptime.org:8080/Release/mango64/kernel/mango64_
    kernel_2010_07_02.tgz
   #tar xvf mango64_kernel_2010_07_02.tgz
   #make mango64_V01_05_defconfig
   #make –j3
   #cp arch/arm/boot/zImage /home/icanjji/tftpboot/mango64_zImage
   U-boot실행 후
   setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1; setenv
    serverip 192.168.0.6;save
   MANGO64#tftp 51000000 mango64_zImage
   MANGO64#nand erase 40000 400000
   MANGO64#nand write 51000000 40000 300000


http://www.mangoboard.com
Mango64 NFS 로
Filesystem Mount하기
 Wget http://crztech.iptime.org:8080/Release/mango64/android/cupcake/mango64-
  cupcake-V01-03.tgz
 #tar xvf mango64-cupcake-V01-03.tgz
 [root@localhost mango64]# ls cupcake-work/




 [root@localhost mango64]# mv cupcake-work/binary/Android_RFS
  /home/icanjji/nfsroot/cupcake-fs
 U-boot 실행 후
 MANGO64#setenv bootargs "root=/dev/nfs rw
  nfsroot=192.168.0.6:/home/icanjji/nfsroot/cupcake-fs
  ip=192.168.3.20:192.168.0.6:192.168.3.1:255.255.255.0:::off init=/init
  console=ttySAC1,115200 mem=128M"
 MANGO64# boot




http://www.mangoboard.com
Mango64 cupcake 컴파일및 Write하기
-1
 #cd cupcake-work/src
 # yum install flex bison gperf libsdl-dev libesd0-dev
    libwxgtk2.6-dev build-essential zip curl wget
   #yum install valgrind
   #yum install python*
   # yum install zlib-devel
   #yum install libX11-devel.i686
   #yum install glibc*
   #make -j3

http://www.mangoboard.com
Mango64 cupcake 컴파일및 Write하기
       -2
 # mkdir -p Android_RFS
 #cp -a out/target/product/generic/root/* ./ Android_RFS
 #cp -a out/target/product/generic/data ./ Android_RFS
 #cp -a out/target/product/generic/system ./ Android_RFS
 #mkdir Android_RFS/module
 #cp –a $KERNEL_DIR/drivers/net/wireless/libertas/libertas_sdio.ko
    /home/icanjji/Android_RFS/module/
   # cd ./Android_RFS
   #tar cvf ../rootfs-cup.tar . >/dev/null
   #cd ..
   #cp -a ./Android_RFS/* /home/icanjji/nfsroot/cupcake-fs
   #cp -a rootfs-cup.tar /home/icanjji/nfsroot/
   #mkyaffs2image Android_RFS mang64-cupcake.yaffs2 &2>/dev/null
   #chmod 755 mang64-cupcake.yaffs2
   #cp -a mang64-cupcake.yaffs2 home/icanjji/tftpboot/


       http://www.mangoboard.com
Mango64 cupcake 컴파일및 Write하기
      -3
 망고64에 u-boot,커널을 Nand에 Write후 Nand모드로 부팅
 U-boot에서 아래 명령 수행
 # setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1;
    setenv serverip 192.168.0.6
   # nand erase 400000 8000000
   #tftp 51000000 cupcake-mango64.yaffs2
   #nand write.yaffs 51000000 400000 $filesize
   # setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2
    init=/init console=ttySAC1,115200“
   #reset

      http://www.mangoboard.com
망고64 NAND Partition 영역
                             0x00000000

               U-boot
                                       Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit":
          (/dev/mtdblock0)             0x000000000000-0x000000040000 : "Bootloader"
                                       0x000000040000-0x000000400000 : "Kernel"
                             0x40000   0x000000400000-0x00000a800000 : "Rootfs"
                                       0x00000a800000-0x000010000000 : "File System" --커널 부팅 시 메시지
               Kernel
          (/dev/mtdblock1)
                                         커널소스 위치는
256MB                        0x400000

               RootFS
          (/dev/mtdblock2)                 부팅 후 확읶 방법
                                           #cat /proc/mtd
                             0xa800000

              Filesystem
          (/dev/mtdblock2)
                             0x10000000
Android Build시 대처 법
 fedora12 cupcake에서 zlib.h 파읷이 없다고 에러 발생 시
 yum install zlib-devel

 /usr/bin/ld: cannot find –lhistory 에러 발생 시
 libhistory.so가 없는 것 입니다.
 locate libhistory 명령으로 찾습니다.

   [root@localhost src]# locate libhistory
   /usr/lib/libhistory.so.6
   /usr/lib/libhistory.so.6.0
   심벌 링크를 겁니다.
   [root@localhost src]# ln -s /usr/lib/libhistory.so.6
    /usr/lib/libhistory.so

http://www.mangoboard.com

Más contenido relacionado

La actualidad más candente

OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발chcbaram
 
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요chcbaram
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11종인 전
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02정출 김
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.chcbaram
 
[드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23][드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23]chcbaram
 
Skyrover project
Skyrover projectSkyrover project
Skyrover project박 형일
 
강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노chcbaram
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치ymtech
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Settingymtech
 
[세미나] Vagrant 이지원
[세미나] Vagrant 이지원[세미나] Vagrant 이지원
[세미나] Vagrant 이지원지원 이
 
라즈베리파이 와 스카이로버 나노에 만남
라즈베리파이 와 스카이로버 나노에 만남라즈베리파이 와 스카이로버 나노에 만남
라즈베리파이 와 스카이로버 나노에 만남Jae Sang Lee
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정ymtech
 
강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요chcbaram
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동GyuSeok Lee
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅승엽 신
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편Sam Kim
 
강좌 06 부트로더
강좌 06 부트로더강좌 06 부트로더
강좌 06 부트로더chcbaram
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축chcbaram
 

La actualidad más candente (20)

Docker설치
Docker설치Docker설치
Docker설치
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
[드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23][드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23]
 
Skyrover project
Skyrover projectSkyrover project
Skyrover project
 
강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Setting
 
[세미나] Vagrant 이지원
[세미나] Vagrant 이지원[세미나] Vagrant 이지원
[세미나] Vagrant 이지원
 
라즈베리파이 와 스카이로버 나노에 만남
라즈베리파이 와 스카이로버 나노에 만남라즈베리파이 와 스카이로버 나노에 만남
라즈베리파이 와 스카이로버 나노에 만남
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정
 
강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편
 
강좌 06 부트로더
강좌 06 부트로더강좌 06 부트로더
강좌 06 부트로더
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축
 

Similar a 망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌

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
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트OpenStack Korea Community
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016perillamint
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)JongyoonWon1
 
G rover 프로젝트
G rover 프로젝트G rover 프로젝트
G rover 프로젝트박 형일
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Opennaru, inc.
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_shareRhea Strike
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지Kyunghee Univ
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
Switch Principles of operation
Switch Principles of operationSwitch Principles of operation
Switch Principles of operationLee Kenneth
 
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
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조Logpresso
 
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기KTH, 케이티하이텔
 
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기소리 강
 
Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Steve Kim
 
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드Opennaru, inc.
 

Similar a 망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌 (20)

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
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016Hideroot - Inc0gnito 2016
Hideroot - Inc0gnito 2016
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
 
G rover 프로젝트
G rover 프로젝트G rover 프로젝트
G rover 프로젝트
 
1.develop environment
1.develop environment1.develop environment
1.develop environment
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
 
Batman project
Batman projectBatman project
Batman project
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_share
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
Switch Principles of operation
Switch Principles of operationSwitch Principles of operation
Switch Principles of operation
 
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
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
 
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
 
Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습
 
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
JBoss Web Server ( JBoss 웹서버 ) 설치 가이드
 

Más de 종인 전

Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x종인 전
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19종인 전
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18종인 전
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17종인 전
 
망고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종인 전
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12종인 전
 
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10종인 전
 
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드종인 전
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도종인 전
 
망고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 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3종인 전
 

Más de 종인 전 (20)

Quick start guide-mango-am335x
Quick start guide-mango-am335xQuick start guide-mango-am335x
Quick start guide-mango-am335x
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
 
망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18망고100 보드로 놀아보자 18
망고100 보드로 놀아보자 18
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
 
망고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
 
망고100 보드로 놀아보자 12
망고100 보드로 놀아보자  12망고100 보드로 놀아보자  12
망고100 보드로 놀아보자 12
 
망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10망고100 보드로 놀아보자 10
망고100 보드로 놀아보자 10
 
Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기Mango64 u boot 업데이트 하기
Mango64 u boot 업데이트 하기
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드망고64(s3 c6410) 부팅모드
망고64(s3 c6410) 부팅모드
 
망고64 부품도
망고64 부품도망고64 부품도
망고64 부품도
 
망고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 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3
 

Último

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Último (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

망고100(s5 pc100),망고64(s3c6410) 구입멤버대상 안드로이드포팅강좌

  • 1. 망고100(S5PC100),망고64(S3C6410) 구입멤버대상 안드로이드초보강좌 http://cafe.naver.com/embeddedcrazyboys http://www.mangoboard.com 분당테크노파크 A동 1층 세미나실 2010.09.01 16:00~19:00 http://www.mangoboard.com
  • 2. 망고100 특징  Cortex-A8 Core 기반으로 삼성 CPU S5PC100 탑재 (667/800Mhz)  3D Hardware 가속기 CPU에 기본 내장  Wince 6.0, Android,Embedded linux 체험 및 프로젝트에 적합한 보드  듀얼 카메라 지원  HDMI ,TV out 기능 지원  가로100 mm,세로 70mm로 휴대 간편 http://www.mangoboard.com
  • 4. 망고100 하드웨어 1 Micro-SD card Connector 2 HDMI connector 3 B2B Expansion Connector 4 40Pin ZIF ATA Connector 5 RTC Battery 6 20Pin Camera Expansion Connector http://www.mangoboard.com
  • 7. 망고100 부팅 Mode # SW100 SW101 1 XOM0 NFMOD0 2 XOM1 NFMOD1 3 XOM2 NFMOD2 4 XOM3 NFMOD3 5 XOM4 NFMOD4 6 NC NFMOD5 http://www.mangoboard.com
  • 9. 망고100 부팅모드  USB Boot Mode  Nand Boot Mode  SD Boot Mode http://www.mangoboard.com
  • 11. 망고100 Nand Boot Mode SW101 „OM[2:1]=0b00‟ „NFMOD[2:0]=0b110‟ Nand Large Block , 5 Addr Cycle 6번 0읶 경우 Nand Booting http://www.mangoboard.com
  • 12. 망고100 SD Boot Mode SW100 ON SW101 OM[2:1]:0b10 MMC boot mode http://www.mangoboard.com
  • 13. Boot Mode 실습  Booting Mode 실습  DNW Tool 다운받기 (http://cafe.naver.com/embeddedcrazyboys/5701)  UART Port 설정 “장치관리자” 확읶 http://www.mangoboard.com
  • 14. Mango100 USB Boot Mode 실습  DNW Tool 실행  망고100 보드에 전원,UART, USB 연결  SW101 Boot 스위치 조정  전원읶가 후 아래와 같이 나오면 OK http://www.mangoboard.com
  • 15. 망고100 UART 연결  “내 컴퓨터 ->장치관리자” PORT 확읶  DNW Tool Configuration 설정  “Serial Port -> Connect “ 클릭 http://www.mangoboard.com
  • 16. 망고100 USB BootLoader 실행하기  “USB Port ->Transmit -> Transmit” 선택  “mango100_bl_umon.bin” 선택 http://www.mangoboard.com
  • 17. 망고100 Nand Mode boot 실습  DNW 실행  UART 연결 후 NAND Mode Booting  Wince 구동 되는 모습 http://www.mangoboard.com
  • 18. 망고100 SD Boot 실행 모습  SDHC Card를 보드에 Insert  Default : GNOME File System  Android 부팅 방법 (setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3 console=ttySAC1,115200 rootdelay=1„) http://www.mangoboard.com
  • 19. 망고64 특징  ARM1176 Core 기반으로 삼성 S3C6410 CPU내장  ARM Processor Clock 533/667Mhz  Firmware,Wince 6.0, Android 공부에 적합한 보드  WiFi, GPS 옵션으로 내장된 보드  3축 센서 기본 Mount http://www.mangoboard.com
  • 20. 망고64 부품면 22 29 30 8 12 11 10 26 5 9 14 6 25 24 28 21 27 1 18 13 2 4 3 17 20 7 http://www.mangoboard.com 23 16 15 19
  • 21. 망고64 부품면 Num Description Num Description 1 S3C6410X ARM1176JZF-S 667MHz AP 2 128Mbytes Mobile DDR SDRAM 3 256Mbytes SLC NAND (K9F2G08U0M) 4 4Mbytes NOR (K8P3215UQB) 5 WM8960 Audio Codec + 1W AMP 6 SMSC9220 100Mbs Ethernet Controller 7 USB 2.0 OTG Connector 8 USB 1.1 Host Connector 9 SD Card Slot 10 RJ45 Ethernet Connector 11 20pin ARM Standard JTAG 12 UART Port 1, DSUB9 Connector 13 WiFi/Bluetooth Combo (Option) 14 GPS Module (Option) 15 DC 5V Power JACK (5V/2A) 16 24P Korean Standard Charger Connector 17 Boot Mode Select SW [OM,GPN] 18 Board Configuration Shunts 19 Reset Switch 20 Power ON/OFF Slide Switch 21 Battery Connector (Single-Cell Li-Ion) 22 TV-Out Connector (S-Video Type) 23 LCD Expansion Connector 24 IrDA Connector [UART Port 3] 25 SPI Port 0 Connector 26 ADC Input Connector, AIN[3:0] 27 WiFi/BT Expansion [SD0, UART3] 28 GPS Expansion (UART Port 0) 29 Microphone Jack 30 Headphone Jack http://www.mangoboard.com
  • 22. 망고64 LCD 면 Num Description Num Description 1 LCD Connector 2 Loud Speaker 3 Camera Expansion Connector 4 EBI/IO Expansion Connector 5 SPI1/SD2 Expansion Connector 6 I2S Port 2 Expansion 7 Power On/Off Switch [Tactile] 8 General Purpose Key 2 [XEINT2] 9 General Purpose Key 0 [XEINT0] 10 General Purpose Key 3 [XEINT3] 11 General Purpose Key 1 [XEINT1] 12 LCD Expansion Connector 13 3-Axis Acceleration Sensor 14 HDD Connector (Not Tested)
  • 25. 개발환경설정  Vmware 7.1 설치  Fedora 12 사용  Tool Chain 4.2.2 버전 사용  JDK1.6 버전 http://www.mangoboard.com
  • 26. Vmware설치-1 http://www.vmware.com/products/workstation/index.html http://www.mangoboard.com
  • 27. Vmware 설치 -2 로그읶 후 계속 버튺 선택 http://www.mangoboard.com
  • 29. Vmware 설치 -4 Email 확읶하면 Register 등록 http://www.mangoboard.com
  • 30. Fedora 12 설치-1  Vmware에서 “File->New->Virtual Manchine”선택 http://www.mangoboard.com
  • 31. Fedora 12 설치-2 Fedora 12 설치 CD를 Insert http://www.mangoboard.com
  • 40. Fedora 환경 설정(SELinux 비활성화) http://www.mangoboard.com
  • 41. Fedora 환경 설정 (방화벽 비 활성화) http://www.mangoboard.com
  • 42. Fedora 설치 (예외처리)  Vmware 7.1 +Fedora 설치하는 경우  #df 명령으로 / 디렉토리가 작은 경우 (VMware7.1)  # cd usr  #mv share /home/share  #ln –s /home/share share http://www.mangoboard.com
  • 43. Sudo 명령 사용하기  #su  #vim /etc/sudoers  #sudo 계정 http://www.mangoboard.com
  • 44. 삼바(SAMBA)설정  Window 시스템과 파읷 공유 http://www.mangoboard.com
  • 49. 삼바설정-6  Guest Account 계정은 하나 추가해서 사용해도 됨 http://www.mangoboard.com
  • 50. 삼바설정 확인 “시작-> 실행” 에서 ip Address 입력 http://www.mangoboard.com
  • 51. Tool chain ?  Tool chain 이란?  Target 시스템의 Software 개발을 진행하기 위해 필요한 host system의 cross compile(교차 컴파일)환경.  source code 을 compile하고 build하여 binary 실행 파일을 생성하는데 필요한 각종 Utility 및 Library의 모음.  기본적으로 Assembler, Linker, C compiler, C library 등으로 구성되어 있다.  GNU에서 제공하는Tool-chain을 사용.  GNU GCC compilers for C, C++  GNU binary utilities assembler, linker various object file utilities  GNU C library http://www.mangoboard.com
  • 52. Toolchain 설치  http://crztech.iptime.org:8080/Release/Toolchain/cross-4.2.2- eabi.tar.bz2  #tar xvfjcross-4.2.2-eabi.tar.bz2  # mkir /usr/local/arm  #cd /usr/local/arm  #mv 4.2.2-eabi /usr/local/arm/  #vim ~/.bashrc  #source ~/.bashrc  #env  #arm-linux-gcc -v  최신 Tool chain:http://www.codesourcery.com/sgpp/lite/arm/portal/release10 33 http://www.mangoboard.com
  • 53. Toolchain  Tool chain Test - Test 용 파일 생성 #> vi hello.c VI 에디터를 사용해서 샘플 #include<stdio.h> 프로그램 생성 int main(void) { printf(“Hello Embedded”); return 0; I386 용 프로그램 생성 } ARM 용 프로그램 생성 #> gcc –o hello hello.c #> arm-linux-gcc –o hello-arm hello.c #> ls #> file hello # ./hello #> file hello-arm 다음과 같은 결과가 나오면.. 크로스 개발 환경이 제대로 설치가 된 것이 다. http://www.mangoboard.com
  • 55. JAVA JDK설치-2  Binary Download http://www.mangoboard.com
  • 56. JAVA JDK설치-3  # mkdir /home/java  #cp jdk-6u21-linux-i586.bin ../java/  #cd ../java  #./ jdk-6u20-linux-i586.bin http://www.mangoboard.com
  • 57. JAVA JDK설치-4  #vim ~/.bashrc  #source ~/.bashrc  #which java http://www.mangoboard.com
  • 58. minicom 설정  Minicom 설정  >#yum install minicom  >#ls /dev/ttyUSB*  ># minicom –s http://www.mangoboard.com
  • 59. Minicom 설정  Serial Device :/dev/ttyUSB0  Baudrate:115200  Hardware Flow control: NO  Save setup as dfl선택 http://www.mangoboard.com
  • 60. TFTP  Server로 부터 필요한 File을 읽어와 자신의 Memory에 Load 시킬 때 필요한 Protocol  Flash Memory에 맞도록 설계된 단순한 Protocol  Disk 없는 System의 가동 프로세서에 이용  UDP를 이용하여 Client와 Server 사이의 통신  Booting에 필요한 간단한 Program과 BOOTP, RARP, TFTP만 탑재한 시스템 에서 많이 이용되며 펌웨어 자동 업그레이드에 이용 가능  장점  시스템이 단순하고 간단함  어떤 형태의 전달 서비스상에서도 동작이 가능  단점  정보보호 기능이 없음  Data에 대한 보장성이 없음 http://www.mangoboard.com
  • 61. TFTP  TFTP 설치 /미설치 확읶 방법 #>rpm –qa | grep tftp #>yum install tftp* http://www.mangoboard.com
  • 62. TFTP  TFTP 환경설정  Host의 /home 밑에 tftpboot라는 이름의 디렉토리를 만듬  #mkdir -p /home/icanjji/tftpboot  #vi /etc/xinet.d/tftp 파일을 수정 전송될 파일의 위치 디렉토리 http://www.mangoboard.com
  • 63. TFTP  리눅스 부팅 시 자동 활성 방법 #>/etc/init.d/xinetd restart #> chkconfig tftp on http://www.mangoboard.com
  • 64. TFTP 실습  #cd /home/tftpboot  #touch test.tftp  #tftp xxx.xxx.xxx.xxx  >get test.tftp  >quit  #ls http://www.mangoboard.com
  • 65. TFTP (VMWare 에서 설정) -Cross cable,공유기 사용 시 모두적용  “VM->Setting” http://www.mangoboard.com
  • 66. TFTP (HOST PC) -Cross Cable 사용시  #ifconfig eth0 xxx.xxx.xxx.xxx up  #minicom http://www.mangoboard.com
  • 67. TFTP 실습-Cross Cable사용시 Host PC 설정 Mango100 u-boot 설정 http://www.mangoboard.com
  • 68. NFS(Network File System)  NFS 란?  SUN 사가 개발한 RPC(Remote Procedure Call) 기반 시스템  Remote Computer의 파일을 마치 자신의 컴퓨터에 있는 것처럼 이용  Server/Client 기반 응용 프로그램  FS이 존재하지 않는 Client 시스템에서 원격의 Host 시스템에서 설정된 일부 디렉터리를 이용 /data /data /lib /lib /etc / /root /etc … … /system NFS Client /system NFS Server /sdcard /sdcard /init /init Host File System http://www.mangoboard.com
  • 69. NFS  장점  개발 호스트에서 작업한 것을 NFS 시스템을 이용하여 Target Board의 리눅스 상에서 mount 시켜 사용하면 download 할 필요가 없음.  개발 호스트 상의 파일이 Target Board의 리눅스 파일시스템 위에서 접근이 가능하고 실행이 가능.  램 디스크 상에서 올리기에 너무 큰 파일도 NFS 상에서는 호스트의 기억 용량에 의존하기 때문에 쉽게 처리 가능.  단점  특수 파일은 NFS에 연결된 디렉토리에 만들 수 없음.  예: 장치 파일  읽고 쓰는 속도가 빠른 파일로는 사용이 곤란.  예: 멀티미디어 파일 http://www.mangoboard.com
  • 70. TFTP/NFS를 이용한 부팅 시나리오 Target RAM RAM 5. 분기 및 NAND 커널압축 1.TFTP 4.커널분기 해제 Linux 커널 Host request 부트 로더 압축커널 이미지 3.압축커널 2.TFTP 다운로드 reply (압축커널만) 6. NFS Root FS 마운트 Host Hard Disk (File System) http://www.mangoboard.com
  • 71. NFS 서버 설정 ># rpm –qa | grep nfs > # yum install nfs-*  /etc/exports 파일의 내용에 추가할 사항  /home/계정/nfsroot <tab>보드IP[또는 *](rw,no_root_squash) 예) /home/계정/nfsroot *(rw, no_root_squash, no_all_squash) 또는 /home/계정/nfsroot 192.168.0.*(rw, no_root_squash, no_all_squash) no_root_squash : 원격 루트 사용자가 공유 파읷 시스템에서 모든 파읷을 변경 no_all_squash : uid,gid root권한으로 연결 rw: read/write 가능하도록 권한 부여 http://www.mangoboard.com
  • 72. NFS 설정(예)  NFS 서버측 설정  NFS 디렉토리 생성 및 권한 설정 #>mkdir /home/계정/nfsroot (유저가 정하기 나름) #>chmod 777 /home/계정 /nfsroot  NFS 환경설정 #>vi /etc/exports NFS 디렉토리, 타겟보드 IP … /home/계정/nfsroot *(rw,no_root_squash,no_all_squash) … #> 문장 사이 사이에 띄어쓰기는 없어야 한다 http://www.mangoboard.com
  • 73. NFS 서버 설정(2)  /usr/sbin/ntsysv  여러 항목 리스트 중에서 nfs를 찾아서 선택(* 표시)  NFS 서비스 start 시킴  Service nfs start 혹은 /etc/init.d/nfs restart  위와 같이 나오면 NFS 설정은 완료되었음 http://www.mangoboard.com
  • 74. NFS/TFTP 실습  http://crztech.iptime.org:8080 에서 Download  Host PC #>cd /home/계정/nfsroot #>mv éclair_RFS /home/계정/nfsroot #>chmod –R 777 /home/계정/nfsroot  Target Board(u-boot 실행 후) # setenv bootargs "root=/dev/nfs rw nfsroot=192.168.0.10:/home/icanjji/nfsroot/ éclair_RFS ip=192.168.0.20:192.168.0.10:192.168.0.1:255.255.255. 0:::off init=/init console=ttySAC1,115200 mem=256M";tftpboot 21000000 zImage;bootm 21000000 http://www.mangoboard.com
  • 75. VNC 서버 설정 (Tip)  #rpm –qa | grep vnc-server  # yum install vnc*  #vi /etc/sysconfig/vncservers  #vncserver :1  패스워드 입력  #service vncserver restart  # vi /usr/bin/vncserver  #chkconfig vncserver on http://www.mangoboard.com
  • 76. VNC Client 설정  http://www.tightvnc.com/download.php http://www.mangoboard.com
  • 77. U-Boot란? & 특징  부트로더  간단하게 특정 cpu에 OS 혹은 어떤 프로그램을 돌릴 수 있도록 cpu가 동작하는데 필요한 아주 기초적읶 부분이나 ROM(or flash), RAM, UART등의 기본적읶 디바이스들을 동작할 수 있게 만드는 프로그램.  Universal Bootloader 의 약자로 간단하게 PowerPC와 ARM 에 기반을 둔 임베디드 보드를 위한 부트로더.  Ppcboot와 ARMboot를 썼던 사람들에게 익숙하다..  발전을 해가면서 다양한 platform에 포팅(ppc, arm, mips, x86...)  코드가 깔끔하고 구조가 좋음.  굉장히 강력하고 그나마 쉬운(?) 환경 설정: 많이 쓰이는 cpu를 사용한 상 용 evaluation board에 대한 기본 sample코드 존재(수정하여 사용가능)  다른cpu에 대해 같은 명령어 체계를 사용하므로, 다른 platform에 적용을 하더라도 큰 어려움 없이 쉽게 접근가능 http://www.mangoboard.com
  • 78. U-boot 최신 소스 얻는 법  http://www.denx.de/wiki/U-Boot  CPU 칩 Band 업체에서 얻는 것이 가장 좋다.  망고100 ,망고64 보드 :http://crztech.iptime.org:8080 최신 소스 사용 http://www.mangoboard.com
  • 79. 망고100 U-boot Download , Compile  #mkdir ~/work  #tar xvf mango100-uboot-2010-0629.tgz  #cd mango100_uboot_2010_06_29  #make mango100_config  #vi Makefile 수정 $(obj)u-boot.bin: $(obj)u-boot $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ cp -a $(obj)u-boot.bin /home/tftpboot/mango100-uboot.bin  #make –j3 http://www.mangoboard.com
  • 80. Mango100 u-boot write-1  DNW Tool 실행 (NAND에 u-boot가 없을 경우)  DNW Tool 다운로드 (http://cafe.naver.com/embeddedcrazyboys/2305)  Configuration(Download Address:0x2fe00000) http://www.mangoboard.com
  • 81. Mango100 u-boot write-2 •USB Mode로 설정 •전원읶가 •Mango100_bl1_umon.bin 실행 •Mango100-uboot.bin 다운로드(삼바설정 , 네트워크 드라이버 연결) http://www.mangoboard.com
  • 82. Mango100 tftp 로 u-boot write-3  >#minicom 또는 putty (터미널 프로그램) 실행  설명:ipaddr :망고보드 ip, serverip :tftp host ip , gatewayip:Gatewayip  공유기 네트워크 구성 http://www.mangoboard.com
  • 83. Mango100 tftp 로 u-boot write-4  Host PC와 보드와 Cross Cable로 연결  setenv ipaddr 192.168.3.10; setenv gatewayip 192.168.3.1;setenv serverip 192.168.3.20;save http://www.mangoboard.com
  • 84. Fedora Static IP 설정 http://www.mangoboard.com
  • 85. Mango100 tftp 로 u-boot write-5  MANGO100 #nand scrub  MANGO100 # nand erase 0 80000  MANGO100 # nand write 21000000 0 80000  Nand 모드로 부팅 http://www.mangoboard.com
  • 86. Yaffs2 파일시스템 tool 설정  http://cafe.naver.com/embeddedcrazyboys/6240  # cp mkyaffs2image /usr/bin/  #which mkyaffs2image http://www.mangoboard.com
  • 87. Mango100 Kernel compile Image Write (NAND)  #wget http://crztech.iptime.org:8080/Release/mango100/kernel/mango100_kernel_2010_07_15.tgz  tar xvf mango100_kernel_2010_07_15.tgz  cd mango100_kernel_2010_07_15  #vi .cross_compile 수정 arm-linux-  # make mango100_android_defconfig  #make menuconfig 에서 yaffs2 filesystem추가  #./fast_build  #cp arch/arm/boot/zImage /home/icanjji/tftpboot/mango100_zImage http://www.mangoboard.com
  • 88. Mango100 Kernel compile Image Write (NAND)  Mango100보드에 전원읶가 u-boot실행 후 아래 명령 수행  MANGO100# tftp 21000000 mango100_zImage  MANGO100# nand erase 80000 400000  MANGO100# nand write 21000000 80000 300000  setenv bootcmd "nand read 20008000 80000 300000;bootm 20008000"  Save  리부팅 http://www.mangoboard.com
  • 89. Mango100 Android Compile Filesystem Write –yaffs2  #wget http://crztech.iptime.org:8080/Release/mango100/eclair/mango100_eclair_2010_07_15.tgz  #tar xvf mango100_eclair_2010_07_15.tgz  # yum install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl wget  # yum install zlib-devel  #yum install libX11-devel.i686  #./mango100_build.sh  #mkyaffs2image rootfs mango100_eclair.yaffs2  #chmod 755 mango100_éclair.yaffs2  #cp mango100_éclair.yaffs2 /home/icanjji/tftpboot/  U-boot 실행 후  #tftp 21000000 mango100_éclair.yaffs2  #nand erase 400000 8000000  #nand write.yaffs 21000000 400000 $filesize  setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttySAC1,115200“;save http://www.mangoboard.com
  • 90. 망고100 USB OTG 이용 u-boot write -리눅스  http://cafe.naver.com/embeddedcrazyboys/5484  >#mincom 실행  >#dnw 21000000 http://www.mangoboard.com
  • 91. 망고100 USB OTG 이용 u-boot write -Window 환경  http://cafe.naver.com/embeddedcrazyboys/5484  DNW tool 실행  삼바 설정 및 네트워크 드라이버 연결  MANGO100#dnw 21000000  MANGO100# nand scrub  MANGO100# nand erase 0 80000  MANGO100# nand write 0x21000000 0x0 0x80000 http://www.mangoboard.com
  • 92. 망고100 SD booting 준비물  SDHC 4G Card  리눅스 설치 된 PC  SD boot 망고100 Image http://www.mangoboard.com
  • 93. 망고100 SD booting Image Write  MMC /SD Card 리눅스 Host 에 Insert  SD boot Script 다운 받는곳 (http://crztech.iptime.org:8080) http://www.mangoboard.com
  • 94. 망고100 SD booting Image Write  #mkdir sdboot  # tar xvf mango100_sdimage_4g_2010_07_15.tgz  tar xvf sdtool.tgz  #./sdwriter /dev/장치 mango-image  #./sdwriter /dev/sdb mango100_sdimage_4g_2010_07_15.img  완료가 되면, mmc card를 망고100에 삽입  SD 부팅 모드로 변경 6 5 4 3 2 1 SW100 ON SW101 http://www.mangoboard.com 1 2 3 4 5 6
  • 95. Mango100 Android Nand write하기 -간편방법  SD Booting 후  root@Mango:~# ./build_filesystem android  실행 후 NAND mode로 부팅 http://www.mangoboard.com
  • 96. 망고100 NAND Partition 영역 0x00000000 Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit": U-boot 0x000000000000-0x000000080000 : "Bootloader" (/dev/mtdblock0) 0x000000080000-0x000000400000 : "Kernel" 0x000000400000-0x000010000000 : "File System“ 0x80000 --커널 부팅 시 메시지 Kernel 커널소스 위치는 256MB (/dev/mtdblock1) 0x400000 부팅 후 확읶 방법 #cat /proc/mtd Filesystem (/dev/mtdblock2) 0x10000000
  • 97. SD /MMC Partition 구성 1 FAT32(2.4GB) Disk /dev/mmcblk0: 3941 MB, 3941597184 bytes 4 heads, 16 sectors/track, 120288 cylinders, total 7698432 sectors Units = sectors of 1 * 512 = 512 bytes GNOME FS(500MB) 1. Fdisk 명령으로 파티션을 만든다 Android FS(500MB) 2. Mkfs.ext3 /dev/sdb1 3. Mkfs.ext3 /dev/sdb2 TSECTORS-9266 4. Mkfs.ext3 /dev/sdb3 Kernel 5. Mount -t ext3 /dev/sdb2 /media/android 3941MB (4MB) 6. 파읷시스템 복사 TSECTORS-1074 U-boot (512KB) TSECTORS-34 U-boot ENV (16KB) TSECTORS-18 Bootloader (9KB) TSECTORS=7698432 sectors
  • 98. Mango64 U-boot Write하기-1  wget http://crztech.iptime.org:8080/Release/mango64/u- boot/mango64-u-boot-1.3.4-V01-03.tgz  #tar xvf mango64-u-boot-1.3.4-V01-03.tgz  #make mango64_config  #make  #cp -a u-boot.bin /home/icanjji/tftpboot/mango64- uboot.bin  DNW Tool 실행  Mango64 Nor Mode로 부팅 http://www.mangoboard.com
  • 99. Mango64 U-boot Write하기-2  DNW Configuration(Download Address:0x57e00000)  U-boot 이미지 실행하기 http://www.mangoboard.com
  • 100. Mango64 U-boot Write하기-3  DNW 종료 후 Putty 실행  MANGO64 # nand scrub  MANGO64 # setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1; setenv serverip 192.168.0.6;save (사용자 네트워크 설정에 따라 달라짐) http://www.mangoboard.com
  • 101. Mango64 U-boot Write하기-4  MANGO64 # tftp 51000000 mango64-uboot.bin  MANGO64 # nand erase 0 40000  MANGO64 # nand write 51000000 0 40000  NAND Mode로 부팅 http://www.mangoboard.com
  • 102. Mango64 커널 컴파일 및 Write하기  wget http://crztech.iptime.org:8080/Release/mango64/kernel/mango64_ kernel_2010_07_02.tgz  #tar xvf mango64_kernel_2010_07_02.tgz  #make mango64_V01_05_defconfig  #make –j3  #cp arch/arm/boot/zImage /home/icanjji/tftpboot/mango64_zImage  U-boot실행 후  setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1; setenv serverip 192.168.0.6;save  MANGO64#tftp 51000000 mango64_zImage  MANGO64#nand erase 40000 400000  MANGO64#nand write 51000000 40000 300000 http://www.mangoboard.com
  • 103. Mango64 NFS 로 Filesystem Mount하기  Wget http://crztech.iptime.org:8080/Release/mango64/android/cupcake/mango64- cupcake-V01-03.tgz  #tar xvf mango64-cupcake-V01-03.tgz  [root@localhost mango64]# ls cupcake-work/  [root@localhost mango64]# mv cupcake-work/binary/Android_RFS /home/icanjji/nfsroot/cupcake-fs  U-boot 실행 후  MANGO64#setenv bootargs "root=/dev/nfs rw nfsroot=192.168.0.6:/home/icanjji/nfsroot/cupcake-fs ip=192.168.3.20:192.168.0.6:192.168.3.1:255.255.255.0:::off init=/init console=ttySAC1,115200 mem=128M"  MANGO64# boot http://www.mangoboard.com
  • 104. Mango64 cupcake 컴파일및 Write하기 -1  #cd cupcake-work/src  # yum install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl wget  #yum install valgrind  #yum install python*  # yum install zlib-devel  #yum install libX11-devel.i686  #yum install glibc*  #make -j3 http://www.mangoboard.com
  • 105. Mango64 cupcake 컴파일및 Write하기 -2  # mkdir -p Android_RFS  #cp -a out/target/product/generic/root/* ./ Android_RFS  #cp -a out/target/product/generic/data ./ Android_RFS  #cp -a out/target/product/generic/system ./ Android_RFS  #mkdir Android_RFS/module  #cp –a $KERNEL_DIR/drivers/net/wireless/libertas/libertas_sdio.ko /home/icanjji/Android_RFS/module/  # cd ./Android_RFS  #tar cvf ../rootfs-cup.tar . >/dev/null  #cd ..  #cp -a ./Android_RFS/* /home/icanjji/nfsroot/cupcake-fs  #cp -a rootfs-cup.tar /home/icanjji/nfsroot/  #mkyaffs2image Android_RFS mang64-cupcake.yaffs2 &2>/dev/null  #chmod 755 mang64-cupcake.yaffs2  #cp -a mang64-cupcake.yaffs2 home/icanjji/tftpboot/ http://www.mangoboard.com
  • 106. Mango64 cupcake 컴파일및 Write하기 -3  망고64에 u-boot,커널을 Nand에 Write후 Nand모드로 부팅  U-boot에서 아래 명령 수행  # setenv ipaddr 192.168.3.20; setenv gatewayip 192.168.3.1; setenv serverip 192.168.0.6  # nand erase 400000 8000000  #tftp 51000000 cupcake-mango64.yaffs2  #nand write.yaffs 51000000 400000 $filesize  # setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttySAC1,115200“  #reset http://www.mangoboard.com
  • 107. 망고64 NAND Partition 영역 0x00000000 U-boot Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit": (/dev/mtdblock0) 0x000000000000-0x000000040000 : "Bootloader" 0x000000040000-0x000000400000 : "Kernel" 0x40000 0x000000400000-0x00000a800000 : "Rootfs" 0x00000a800000-0x000010000000 : "File System" --커널 부팅 시 메시지 Kernel (/dev/mtdblock1) 커널소스 위치는 256MB 0x400000 RootFS (/dev/mtdblock2) 부팅 후 확읶 방법 #cat /proc/mtd 0xa800000 Filesystem (/dev/mtdblock2) 0x10000000
  • 108. Android Build시 대처 법  fedora12 cupcake에서 zlib.h 파읷이 없다고 에러 발생 시  yum install zlib-devel  /usr/bin/ld: cannot find –lhistory 에러 발생 시  libhistory.so가 없는 것 입니다.  locate libhistory 명령으로 찾습니다.  [root@localhost src]# locate libhistory  /usr/lib/libhistory.so.6  /usr/lib/libhistory.so.6.0  심벌 링크를 겁니다.  [root@localhost src]# ln -s /usr/lib/libhistory.so.6 /usr/lib/libhistory.so http://www.mangoboard.com