SlideShare a Scribd company logo
1 of 16
Download to read offline
1. 오류! 참조 원본을 찾을 수 없습니다.



1.      U-Boot 컴파일 및 다운로드

1.1. 망고보드 연결 및 부팅 SD/MMC card 만들기
망고210 보드를 받아서 처음 부팅 할 때는 SD/MMC boot 모드로 부팅을 합니다.

1.1.1. SD/MMC card 만들기
Tflash 2GB이상 준비 합니다. 이미지 및 스크립트를 다운로드 받습니다.
http://crztech.iptime.org:8080/Release/mango-sd-recovery/mango-sd-recovery.tgz
다운로드 받은 후 압축을 풉니다.
PC에 Tflash를 삽입합니다. (아래그림 참조)




리눅스 PC 터미널 창에서 df명령으로 디바이스를 확인 합니다.
또는 “dmesg | tail” 명령으로 디바이스를 확인하면 됩니다.
vmware에서 sd/mmc card를 인식하려면,아래와 같이 선택을 해야 합니다.




이유는 window 시스템에서 제거 후 VMware에 connect 시키기 위함입니다.


[root@icanjji-linux icanjji]# df
Filesystem              1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                         135820480    74291288 54629892   58% /
tmpfs                       900184        112    900072   1% /dev/shm
/dev/sda2                   198337      56671    131426   31% /boot
/dev/sdb2                    516040     373808    116020 77% /media/gnome


                   www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   1
/dev/sdb1                   6236196      2252476   3983720 37% /media/mango
/dev/sdb4                    516040      159296    330532 33% /media/android210
/dev/sdb3                    516040      118148    371680 25% /media/android100
“df”명령으로 보면, /dev/sdb라는 것을 알수가 있습니다.


[root@icanjji-linux sdboot]# dmesg | tail
sd 4:0:0:0: [sdb] 15661056 512-byte logical blocks: (8.01 GB/7.46 GiB)
sd 4:0:0:0: [sdb] Write Protect is off
sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 4:0:0:0: [sdb] Assuming drive cache: write through
sd 4:0:0:0: [sdb] Assuming drive cache: write through
 sdb: sdb1 sdb2 sdb3 sdb4
sd 4:0:0:0: [sdb] Assuming drive cache: write through
sd 4:0:0:0: [sdb] Attached SCSI removable disk
EXT3 FS on sdb2, internal journal
EXT3 FS on sdb4, internal journal
EXT3 FS on sdb3, internal journal
“dmesg | tail” 명령으로 어떤 디바이스인지 알 수가 있습니다.


root@ubuntu:/work/Mango210# tar zxvf mango-sd-recovery.tgz
압축을 풀면, “mango-sd-recovery” 디렉토리가 생성됩니다.




“ls”명령으로 보면, 망고100도 포함이 되어 있는 것을 볼 수가 있습니다. 망고100 보드를 가진 멤버
님들도 같이 사용 할 수 있습니다.
해당 디렉토리로 들어가서 아래 명령을 수행하면 됩니다.


root@ubuntu:/work/Mango210/mango-sd-recovery# ./sdwriter sdb 210
장치명을 입력하는 argument에서 /dev/sdb 에서 sdb만 입력하면 됩니다.
명령을 수행 후 “yes”를 입력해야 합니다.


root@ubuntu:/work/Mango210/mango-sd-recovery# ./sdwriter sdb 210
SD Card Writer program V4.0
Create by Pyeongjeong Lee, Crztech


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


http://mangoboard.com
http://cafe.naver.com/embeddedcrazyboys
T-Flash-device:/dev/sdb
NSectors:15661056, Do you want to continue(yes/no):
yes




스크립트가 수행 된 후 SD/MMC card 에 Write하는 내용은 아래 그림과 같습니다.




망고210 보드에 SDIO_0에 삽입 후 보드를 부팅 시킵니다.




                 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   3
실크로 표시 된 “SDIO_0”에 삽입하면 됩니다.
부팅 시 부팅 모드는 SD/MMC boot 모드를 선택하시면 됩니다.
SW100 스위치를 3,4번 ON, 나머지는 1,2,5,6번은 OFF하시면 됩니다.

1.2. 망고보드 연결 및 U-Boot 구동

U-Boot는 매우 훌륭한 부트로더 입니다. 부트로더라는 말이 어려운 분들도 계시겠지만 특정 보드가
구동되는데 있어서 필수적인 작업들을 수행해주는 초기 프로그램이라고 생각하시면 쉬울 것입니다.


U-Boot는 오픈 소스로 되어 있어서 소스 코드가 모두 공개되어 있습니다. 수많은 다양한 보드들에
포팅이 되어 있으며 사용자들이 부트로더를 만들기 위해서 많은 노력을 기울이지 않아도 쉽게 홗용
할 수 있도록 많은 부분들이 이미 구현되어 있습니다.


망고 보드에 대해서도 이미 U-Boot가 포팅되어 적용된 버젂이 공개되어 있습니다. 이를 우리는 쉽게
이용할 수 있는 것입니다.


1.2.2. 망고210 U-Boot 다운로드
CD가 제공되면 소스를 받아서 압축을 푸시면 됩니다.
아래 위치에서 망고210를 위한 U-Boot를 다운로드 받을 수 있습니다.
http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210_uboot_src_2010_12_31.tgz




내용 중에서 u-boot 소스에 대한 링크를 접속해서 u-boot 1.3.4 부분을 클릭하시면 아래의 파일을
받을 수 있습니다.
root@ubuntu:/work/Mango210/gingerbread# tar zxvf mango210_uboot_src_2010_12_31.tgz


다운 받은 파일을 우분투 쪽으로 복사한 이후에 압축을 풀면 uboot 폴더가 생성됩니다. 현재 이 안
에는 바이너리가 포함되어 있지 않기 때문에 반드시 빌드를 수행하셔서 바이너리를 만드셔야 합니다.


1.2.3. 망고210 U-Boot 빌드하기

root@ubuntu:/work/Mango210/gingerbread/uboot# make mrproper


먼저 make mrproper를 수행해서 기존에 만들어져 있던 모든 내용을 지우게 됩니다. 이는 clean으로
지우는 것보다도 더 깨끗하게 빌드 시에 만들어진 모든 것을 지우게 하는 것입니다. 물롞 처음 다운
로드 받은 파일은 이미 모든 것이 깨끗하게 지워진 소스 코드만 포함하고 있는 것이기 때문에 clean
과정은 불필요합니다.
이유는 vi로 Makefile을 열어보면, mrproper가 clobber와 unconfig까지 포함해서 지웁니다.


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




Clobber 의 내용을 보면 아래와 같습니다.


clobber:            clean
           @find $(OBJTREE) -type f ( -name .depend 
                    -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img ) 
                    -print0 
                    | xargs -0 rm -f
           @rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS 
                    $(obj)cscope.* $(obj)*.*~
           @rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL)
           @rm -f $(obj)tools/{crc32.c,environment.c,env/crc32.c,md5.c,sha1.c,inca-swap-bytes}
           @rm -f $(obj)tools/{image.c,fdt.c,fdt_ro.c,fdt_rw.c,fdt_strerror.c,zlib.h}
           @rm -f $(obj)tools/{fdt_wip.c,libfdt_internal.h}
           @rm -f $(obj)cpu/mpc824x/bedbug_603e.c
           @rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
           @rm -f $(obj)include/regs.h
           @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -lname "*" -print | xargs rm -f
           @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -lname "*" -print | xargs rm -f
           @[ ! -d $(obj)api_examples ] || find $(obj)api_examples -lname "*" -print | xargs rm -f
즉, clean도 하면서, .depend 파일을 지웁니다.


root@ubuntu:/work/Mango210/gingerbread/uboot# make mango210_config
Configuring for mango210 board...


make mango210_config를 수행함으로써 적젃한 구성이 완료됩니다.


root@ubuntu:/work/Mango210/gingerbread/uboot# make


이제 make를 수행하면 빌드 과정이 진행됩니다.




                    www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology               5
빌드 과정은 정상 종료되었고, 내용 중 0x2fd00000 주소 값을 나중에 이용하게 됩니다. 이젂에 설치
했던 툴체인 GCC 4.4.1를 이용하고 있음을 알 수 있습니다.
u-boot 이미지는 컴파일이 완료가 되면, /work/image 디렉토리에 mango210_uboot.bin 이름으로
만들어집니다. /work/image/ 디렉토리가 없을 경우에는 /work/image 디렉토리를 만듭니다.
/work/image 디렉토리를 tftp root 디렉토리입니다.
/etc/xinetd.d/tftp 파일을 열어보면 동일하다는 것을 알 수가 있습니다.




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




1.2.4. U-boot 구동 및우분투에서 minicom으로 연결
u-boot를 구동하는 것은 갂단합니다. SD/MMC Boot모드로 부팅하면 됩니다.
물롞, tflash에 u-boot 이미지가 Write되어 있어야 합니다.
부팅 젂에 minicom을 실행합니다.


이 부분과 관렦해서는 이젂에 설명을 드렸습니다. 자세한 내용은 이젂 장을 참조 바랍니다. 갂단히
설명 드리면 PC 상의 COM4를 장치관리자에서 제거한 이후에 우분투 부분으로 제어를 이동시킨 이
후에 USB-to-Serial을 뺐다가 다시 장착하면 PC 쪽에서는 COM4가 잡히지 않고 우분투에서 이 시리
얼 포트를 접근할 수 있도록 됩니다.
우분투에서 minicom 명령을 수행을 합니다.




            www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   7
우분투에서 minicom을 실행해서 수행된 결과를 보면 위와 같이 같은 프롬프트를 볼 수 있습니다.


1.2.5. Tftp로 NAND에 다운로드 하기

먼저 minicom에서 print를 수행해서 현재 설정된 부분을 살펴보도록 합니다.


MANGO210 # print
mtdpart=80000 400000 3000000
bootdelay=3
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.121
serverip=192.168.1.2
gatewayip=192.168.1.1
netmask=255.255.255.0
bootcmd=movi read kernel 20008000; bootm 20008000
bootargs=root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC1,115200 rootdelay=1


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




Environment size: 299/16380 bytes




공유기의 최종적인 설정 상태는 위 그림과 같습니다.


MANGO210 # setenv ipaddr 192.168.3.20
MANGO210# setenv serverip 192.168.3.22
MANGO210# setenv gatewayip 192.168.3.1


위와 같이 해당 IP 주소들을 적어 넣습니다.


네트워크 설정에 대한 부분은 이젂 장에서 자세한 설명을 드렸습니다. 이젂 장을 참조해 주시기 바
랍니다.


이제 Tftp를 이용해서 다운로드 받고 NAND에 저장하고 NAND로 부팅하는 단계까지 진행해 보도록
하겠습니다.
/work/image 디렉토리가 Tftp의 홈 폴더로 지정했기 때문에 이 부분에 mango210_uboot.bin이 있
어야 합니다. 이미 u-boot 소스에 Makefile에 복사를 해 두었기 때문에 ls명령으로 확인을 합니다.


root@ubuntu:/work/Mango210/gingerbread/uboot# ll /work/image/
total 4276
drwxr-xr-x 2 root root     4096 2011-02-21 23:47 ./
drwxr-xr-x 6 root root     4096 2011-02-21 21:47 ../
-rwxr-xr-x 1 root root 313976 2011-02-22 00:46 mango210_uboot.bin*
-rwxr-xr-x 1 root root 4051224 2011-02-16 06:21 mango210_zImage35*


Minicom창에서 “tftp” 명령은 아래와 같습니다.


MANGO210 # tftp 21000000 mango210_uboot.bin
smc911x: initializing
smc911x: detected LAN9220 controller
smc911x: phy initialized
smc911x: MAC 00:40:5c:26:0a:5b
TFTP from server 192.168.3.22; our IP address is 192.168.3.20


                  www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   9
Filename 'mango210_uboot.bin'.
Load address: 0x21000000
Loading: ##############################################################
done
Bytes transferred = 313976 (0x4ca78)


위와 같이 tftp를 이용해서 주소 21000000 번지에 mango210_uboot.bin을 다운로드 받고 있습니다.
이 위치에 저장된 내용을 뒤에서 NAND에 저장하게 될 것입니다.


MANGO210 # nand scrub


NAND scrub: device 0 whole chip
Warning: scrub option will erase all factory set bad blocks!
          There is no reliable way to recover them.
          Use this command only for testing purposes if you
          are sure of what you are doing!


Really scrub this NAND flash? <y/N>
Erasing at 0x6660000 --   40% complete.
nand0: MTD Erase failure: -5
Erasing at 0x87a0000 --   53% complete.
nand0: MTD Erase failure: -5
Erasing at 0xb320000 --   70% complete.
nand0: MTD Erase failure: -5
Erasing at 0xffe0000 -- 100% complete.
Scanning device for bad blocks
OK


nand scrub을 통해서 NAND를 초기화 시키는 작업을 수행하게 되고 NAND의 모든 내용이 지워지고
최초의 상태로 돌아가게 됩니다.


MANGO210 # nand write 21000000 0 80000


NAND write: device 0 offset 0x0, size 0x80000
 524288 bytes written: OK


21000000 번지에 다운로드 받았던 mango210_uboot.bin을 NAND에 저장합니다. 0번지에 저장하게
되고 이로서 뒤에서 NAND mode로 부팅했을 때 mango210_uboot.bin이 부팅될 수 있는 것입니다.


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


부팅 모드를 NAND모드로 변경합니다.




젂원을 인가하면 아래와 같이 디버깅 메시지가 출력되면 정상으로 Write가 된 것입니다.


U-Boot 1.3.4 (Feb 22 2011 - 00:45:23) for MANGO210




CPU: S5PV210@800MHz(OK)
         APLL = 800MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
         MPLL = 667MHz, EPLL = 80MHz
                      HclkDsys = 166MHz, PclkDsys = 83MHz
                      HclkPsys = 133MHz, PclkPsys = 66MHz
                      SCLKA2M = 200MHz
Serial = CLKUART
Board:    MANGO210
DRAM:      512 MB
SD/MMC:    7647MB
NAND:      256 MB
*** Warning - using default environment



                www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   11
In:     serial
Out:     serial
Err:    serial
checking mode for fastboot ...
Hit any key to stop autoboot: 0
MANGO210 #


이제 망고210 보드를 NAND mode로 변경한 이후에 부팅하면 위와 같이 정상적으로 부팅이 되는 것
을 확인할 수 있습니다.


1.3. Cross-Cable을 이용한 직접 연결

1.3.6. 직접 연결을 통한 다운로드 작업 (우분투)

Cross-Cable을 한쪽은 PC의 Ethernet Card에 연결하고 다른 한쪽은 망고보드에 연결합니다.




PC 쪽의 네트워크 부분은 변경할 필요가 없습니다. 기존의 상태를 그대로 유지한 상태에서 우분투를
열어서 네트워크 홖경을 봅니다.


root@ubuntu:/home/icanjji# ifconfig
eth0      Link encap:Ethernet HWaddr 00:0c:29:73:44:5f
          inet6 addr: fe80::20c:29ff:fe73:445f/64 Scope:Link
          UP BROADCAST MULTICAST MTU:1500           Metric:1
          RX packets:2648 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1145 errors:0 dropped:0 overruns:0 carrier:0



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


         collisions:0 txqueuelen:1000
         RX bytes:971311 (971.3 KB)       TX bytes:414463 (414.4 KB)
         Interrupt:19 Base address:0x2000


lo       Link encap:Local Loopback
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING         MTU:16436 Metric:1
         RX packets:20 errors:0 dropped:0 overruns:0 frame:0
         TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:1200 (1.2 KB) TX bytes:1200 (1.2 KB)


최초 실행 시 위와 같이 ifconfig를 실행해 보면 IP 주소가 설정되지 않은 것을 볼 수 있습니다. 기존
에는 공유기를 통해서 자동으로 DHCP를 통해 IP가 할당되었으나 지금은 공유기에 연결된 것이 아니
기 때문에 IP를 자동으로 받지 못하고 있는 것입니다.


root@ubuntu:/home/icanjji# ifconfig eth0 down
root@ubuntu:/home/icanjji# ifconfig eth0 192.168.3.22 up
root@ubuntu:/home/icanjji# ifconfig
eth0     Link encap:Ethernet HWaddr 00:0c:29:73:44:5f
         inet addr:192.168.3.22 Bcast:192.168.3.255 Mask:255.255.255.0
         inet6 addr: fe80::20c:29ff:fe73:445f/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:2791 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1152 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:988785 (988.7 KB) TX bytes:416857 (416.8 KB)
         Interrupt:19 Base address:0x2000


lo       Link encap:Local Loopback
         inet addr:127.0.0.1 Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING         MTU:16436 Metric:1
         RX packets:20 errors:0 dropped:0 overruns:0 frame:0
         TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:1200 (1.2 KB) TX bytes:1200 (1.2 KB)


               www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   13
ifconfig eth0 down으로 네트워크를 먼저 종료한 이후에 ifconfig eth0 192.168.3.22 up으로 IP 주소를
강제로 우리가 원하는 값으로 설정하게 됩니다. 그리고 나서 ifconfig를 실행해 보면 IP 주소가 정상
적으로 설정된 것을 확인할 수 있습니다.


MANGO210 # tftp 21000000 mango210_uboot.bin
………………


망고보드를 실행해서 print를 통해서 설정되어 있는 값을 살펴보면 우리가 위에서 우분투에 설정한
IP 주소 값이 server의 IP 주소로 설정되어 있습니다. 이를 이용해서 tftp를 실행하면 정상적으로 다
운로드 받을 수 있습니다.
만약 아래와 같이 loading이 되지 않으면,
MANGO210 # tftp 21000000 mango210_uboot.bin
smc911x: initializing
smc911x: detected LAN9220 controller
smc911x: phy initialized
smc911x: MAC 00:40:5c:26:0a:5b
TFTP from server 192.168.3.22; our IP address is 192.168.3.20
Filename 'mango210_uboot.bin'.
Load address: 0x21000000
Loading: T T T


리눅스 호스트 PC에서 “ifconfig eth0 192.168.3.22 up”을 한번더 수행을 합니다.


root@ubuntu:/home/icanjji# ifconfig eth0 192.168.3.22 up




1.3.7. 페도라에서 SELINUX (Security 부분) 끄기

우리는 우분투를 사용하고 있기 때문에 네트워크의 설정이 상대적으로 매우 쉽지만 만약 우분투를
사용하지 않고 페도라와 같은 것을 사용하게 되면 설정 작업이 조금은 복잡해 집니다.


페도라와 같은 우분투와는 다른 홖경을 사용할 경우 Security와 관렦한 부분을 Disable 시켜야 네트
워크로 작업하는 것이 가능하게 됩니다. 이에 대한 설정은 아래의 방법을 따라 하시면 됩니다.


$ vi /etc/sysconfig/selinux



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




편집기로 위 파일을 열어서 적젃히 편집을 해주어야 합니다.


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#        enforcing - SELinux security policy is enforced.
#        permissive - SELinux prints warnings instead of enforcing.
#        disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#        targeted - Targeted processes are protected,
#        mls - Multi Level Security protection.
SELINUXTYPE=targeted


SELINUX=enforcing으로 되어 있는 부분의 앞에 #을 붙여서 주석으로 만들고, SELINUX=disabled로
처리해서 비홗성화 시키면 됩니다. 위와 같이 편집 작업을 마친 이후에 시스템을 리부팅 하면 정상
적으로 적용되어서 이제부터는 네트워크 작업에 문제가 없게 됩니다.




                  www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology   15
16

More Related Content

What's hot

Smart rover 통신 분석
Smart rover 통신 분석Smart rover 통신 분석
Smart rover 통신 분석Jang Suk Jung
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11종인 전
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmwarechcbaram
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발chcbaram
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편Sam Kim
 
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요chcbaram
 
[세미나] Vagrant 이지원
[세미나] Vagrant 이지원[세미나] Vagrant 이지원
[세미나] Vagrant 이지원지원 이
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Settingymtech
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치ymtech
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅승엽 신
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespaceSam Kim
 
[드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23][드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23]chcbaram
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APIHongmin Park
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.chcbaram
 
강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노chcbaram
 
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1Park Jonggun
 
우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일he4722
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동GyuSeok Lee
 

What's hot (20)

Smart rover 통신 분석
Smart rover 통신 분석Smart rover 통신 분석
Smart rover 통신 분석
 
망고100 보드로 놀아보자 11
망고100 보드로 놀아보자  11망고100 보드로 놀아보자  11
망고100 보드로 놀아보자 11
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmware
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편
 
강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요
 
[세미나] Vagrant 이지원
[세미나] Vagrant 이지원[세미나] Vagrant 이지원
[세미나] Vagrant 이지원
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Setting
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace
 
[드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23][드론] 펌웨어 분석 [2015.5.23]
[드론] 펌웨어 분석 [2015.5.23]
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and API
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
1.intro to k8s
1.intro to k8s1.intro to k8s
1.intro to k8s
 
강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노강좌 07 ARM 프로세서용 아두이노
강좌 07 ARM 프로세서용 아두이노
 
IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1IoT with Raspberry Pi + Node JS - Chapter 1
IoT with Raspberry Pi + Node JS - Chapter 1
 
우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동
 

Similar to (망고210& Gingerbread) u-boot 컴파일 및 다운로드

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
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편Sam Kim
 
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
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17종인 전
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernicejumiss
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제Tae Young Lee
 
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 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9종인 전
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) wonyong hwang
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)wonyong hwang
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠SangJung Woo
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한ymtech
 
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기KTH, 케이티하이텔
 
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기소리 강
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Opennaru, inc.
 

Similar to (망고210& Gingerbread) u-boot 컴파일 및 다운로드 (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
 
라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)Relationship between firmware and module(drvier)
Relationship between firmware and module(drvier)
 
망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17망고100 보드로 놀아보자 17
망고100 보드로 놀아보자 17
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernice
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
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
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)Hyperledger fabric practice(pdf)
Hyperledger fabric practice(pdf)
 
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
[Tizen Talk 2016 in Seoul] 바닥서부터 만들어보는 타이젠
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한
 
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기
 
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
내컴에선 잘되던데? Vagrant로 서버와 동일한 개발환경 꾸미기
 
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
Apache Tomcat ( 아파치 톰캣 ) 설치 가이드
 

More from 종인 전

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 보드로 놀아보자 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종인 전
 
망고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종인 전
 
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2종인 전
 
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1종인 전
 

More from 종인 전 (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 보드로 놀아보자 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
 
망고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
 
망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2망고100 보드로 놀아보자 2
망고100 보드로 놀아보자 2
 
망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1망고100 보드로 놀아보자 1
망고100 보드로 놀아보자 1
 

(망고210& Gingerbread) u-boot 컴파일 및 다운로드

  • 1. 1. 오류! 참조 원본을 찾을 수 없습니다. 1. U-Boot 컴파일 및 다운로드 1.1. 망고보드 연결 및 부팅 SD/MMC card 만들기 망고210 보드를 받아서 처음 부팅 할 때는 SD/MMC boot 모드로 부팅을 합니다. 1.1.1. SD/MMC card 만들기 Tflash 2GB이상 준비 합니다. 이미지 및 스크립트를 다운로드 받습니다. http://crztech.iptime.org:8080/Release/mango-sd-recovery/mango-sd-recovery.tgz 다운로드 받은 후 압축을 풉니다. PC에 Tflash를 삽입합니다. (아래그림 참조) 리눅스 PC 터미널 창에서 df명령으로 디바이스를 확인 합니다. 또는 “dmesg | tail” 명령으로 디바이스를 확인하면 됩니다. vmware에서 sd/mmc card를 인식하려면,아래와 같이 선택을 해야 합니다. 이유는 window 시스템에서 제거 후 VMware에 connect 시키기 위함입니다. [root@icanjji-linux icanjji]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root 135820480 74291288 54629892 58% / tmpfs 900184 112 900072 1% /dev/shm /dev/sda2 198337 56671 131426 31% /boot /dev/sdb2 516040 373808 116020 77% /media/gnome www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1
  • 2. /dev/sdb1 6236196 2252476 3983720 37% /media/mango /dev/sdb4 516040 159296 330532 33% /media/android210 /dev/sdb3 516040 118148 371680 25% /media/android100 “df”명령으로 보면, /dev/sdb라는 것을 알수가 있습니다. [root@icanjji-linux sdboot]# dmesg | tail sd 4:0:0:0: [sdb] 15661056 512-byte logical blocks: (8.01 GB/7.46 GiB) sd 4:0:0:0: [sdb] Write Protect is off sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00 sd 4:0:0:0: [sdb] Assuming drive cache: write through sd 4:0:0:0: [sdb] Assuming drive cache: write through sdb: sdb1 sdb2 sdb3 sdb4 sd 4:0:0:0: [sdb] Assuming drive cache: write through sd 4:0:0:0: [sdb] Attached SCSI removable disk EXT3 FS on sdb2, internal journal EXT3 FS on sdb4, internal journal EXT3 FS on sdb3, internal journal “dmesg | tail” 명령으로 어떤 디바이스인지 알 수가 있습니다. root@ubuntu:/work/Mango210# tar zxvf mango-sd-recovery.tgz 압축을 풀면, “mango-sd-recovery” 디렉토리가 생성됩니다. “ls”명령으로 보면, 망고100도 포함이 되어 있는 것을 볼 수가 있습니다. 망고100 보드를 가진 멤버 님들도 같이 사용 할 수 있습니다. 해당 디렉토리로 들어가서 아래 명령을 수행하면 됩니다. root@ubuntu:/work/Mango210/mango-sd-recovery# ./sdwriter sdb 210 장치명을 입력하는 argument에서 /dev/sdb 에서 sdb만 입력하면 됩니다. 명령을 수행 후 “yes”를 입력해야 합니다. root@ubuntu:/work/Mango210/mango-sd-recovery# ./sdwriter sdb 210 SD Card Writer program V4.0 Create by Pyeongjeong Lee, Crztech 2
  • 3. 1. 오류! 참조 원본을 찾을 수 없습니다. http://mangoboard.com http://cafe.naver.com/embeddedcrazyboys T-Flash-device:/dev/sdb NSectors:15661056, Do you want to continue(yes/no): yes 스크립트가 수행 된 후 SD/MMC card 에 Write하는 내용은 아래 그림과 같습니다. 망고210 보드에 SDIO_0에 삽입 후 보드를 부팅 시킵니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 3
  • 4. 실크로 표시 된 “SDIO_0”에 삽입하면 됩니다. 부팅 시 부팅 모드는 SD/MMC boot 모드를 선택하시면 됩니다. SW100 스위치를 3,4번 ON, 나머지는 1,2,5,6번은 OFF하시면 됩니다. 1.2. 망고보드 연결 및 U-Boot 구동 U-Boot는 매우 훌륭한 부트로더 입니다. 부트로더라는 말이 어려운 분들도 계시겠지만 특정 보드가 구동되는데 있어서 필수적인 작업들을 수행해주는 초기 프로그램이라고 생각하시면 쉬울 것입니다. U-Boot는 오픈 소스로 되어 있어서 소스 코드가 모두 공개되어 있습니다. 수많은 다양한 보드들에 포팅이 되어 있으며 사용자들이 부트로더를 만들기 위해서 많은 노력을 기울이지 않아도 쉽게 홗용 할 수 있도록 많은 부분들이 이미 구현되어 있습니다. 망고 보드에 대해서도 이미 U-Boot가 포팅되어 적용된 버젂이 공개되어 있습니다. 이를 우리는 쉽게 이용할 수 있는 것입니다. 1.2.2. 망고210 U-Boot 다운로드 CD가 제공되면 소스를 받아서 압축을 푸시면 됩니다. 아래 위치에서 망고210를 위한 U-Boot를 다운로드 받을 수 있습니다. http://crztech.iptime.org:8080/Release/mango210/u-boot/src/mango210_uboot_src_2010_12_31.tgz 내용 중에서 u-boot 소스에 대한 링크를 접속해서 u-boot 1.3.4 부분을 클릭하시면 아래의 파일을 받을 수 있습니다. root@ubuntu:/work/Mango210/gingerbread# tar zxvf mango210_uboot_src_2010_12_31.tgz 다운 받은 파일을 우분투 쪽으로 복사한 이후에 압축을 풀면 uboot 폴더가 생성됩니다. 현재 이 안 에는 바이너리가 포함되어 있지 않기 때문에 반드시 빌드를 수행하셔서 바이너리를 만드셔야 합니다. 1.2.3. 망고210 U-Boot 빌드하기 root@ubuntu:/work/Mango210/gingerbread/uboot# make mrproper 먼저 make mrproper를 수행해서 기존에 만들어져 있던 모든 내용을 지우게 됩니다. 이는 clean으로 지우는 것보다도 더 깨끗하게 빌드 시에 만들어진 모든 것을 지우게 하는 것입니다. 물롞 처음 다운 로드 받은 파일은 이미 모든 것이 깨끗하게 지워진 소스 코드만 포함하고 있는 것이기 때문에 clean 과정은 불필요합니다. 이유는 vi로 Makefile을 열어보면, mrproper가 clobber와 unconfig까지 포함해서 지웁니다. 4
  • 5. 1. 오류! 참조 원본을 찾을 수 없습니다. Clobber 의 내용을 보면 아래와 같습니다. clobber: clean @find $(OBJTREE) -type f ( -name .depend -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img ) -print0 | xargs -0 rm -f @rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS $(obj)cscope.* $(obj)*.*~ @rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL) @rm -f $(obj)tools/{crc32.c,environment.c,env/crc32.c,md5.c,sha1.c,inca-swap-bytes} @rm -f $(obj)tools/{image.c,fdt.c,fdt_ro.c,fdt_rw.c,fdt_strerror.c,zlib.h} @rm -f $(obj)tools/{fdt_wip.c,libfdt_internal.h} @rm -f $(obj)cpu/mpc824x/bedbug_603e.c @rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm @rm -f $(obj)include/regs.h @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -lname "*" -print | xargs rm -f @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -lname "*" -print | xargs rm -f @[ ! -d $(obj)api_examples ] || find $(obj)api_examples -lname "*" -print | xargs rm -f 즉, clean도 하면서, .depend 파일을 지웁니다. root@ubuntu:/work/Mango210/gingerbread/uboot# make mango210_config Configuring for mango210 board... make mango210_config를 수행함으로써 적젃한 구성이 완료됩니다. root@ubuntu:/work/Mango210/gingerbread/uboot# make 이제 make를 수행하면 빌드 과정이 진행됩니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 5
  • 6. 빌드 과정은 정상 종료되었고, 내용 중 0x2fd00000 주소 값을 나중에 이용하게 됩니다. 이젂에 설치 했던 툴체인 GCC 4.4.1를 이용하고 있음을 알 수 있습니다. u-boot 이미지는 컴파일이 완료가 되면, /work/image 디렉토리에 mango210_uboot.bin 이름으로 만들어집니다. /work/image/ 디렉토리가 없을 경우에는 /work/image 디렉토리를 만듭니다. /work/image 디렉토리를 tftp root 디렉토리입니다. /etc/xinetd.d/tftp 파일을 열어보면 동일하다는 것을 알 수가 있습니다. 6
  • 7. 1. 오류! 참조 원본을 찾을 수 없습니다. 1.2.4. U-boot 구동 및우분투에서 minicom으로 연결 u-boot를 구동하는 것은 갂단합니다. SD/MMC Boot모드로 부팅하면 됩니다. 물롞, tflash에 u-boot 이미지가 Write되어 있어야 합니다. 부팅 젂에 minicom을 실행합니다. 이 부분과 관렦해서는 이젂에 설명을 드렸습니다. 자세한 내용은 이젂 장을 참조 바랍니다. 갂단히 설명 드리면 PC 상의 COM4를 장치관리자에서 제거한 이후에 우분투 부분으로 제어를 이동시킨 이 후에 USB-to-Serial을 뺐다가 다시 장착하면 PC 쪽에서는 COM4가 잡히지 않고 우분투에서 이 시리 얼 포트를 접근할 수 있도록 됩니다. 우분투에서 minicom 명령을 수행을 합니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 7
  • 8. 우분투에서 minicom을 실행해서 수행된 결과를 보면 위와 같이 같은 프롬프트를 볼 수 있습니다. 1.2.5. Tftp로 NAND에 다운로드 하기 먼저 minicom에서 print를 수행해서 현재 설정된 부분을 살펴보도록 합니다. MANGO210 # print mtdpart=80000 400000 3000000 bootdelay=3 baudrate=115200 ethaddr=00:40:5c:26:0a:5b ipaddr=192.168.1.121 serverip=192.168.1.2 gatewayip=192.168.1.1 netmask=255.255.255.0 bootcmd=movi read kernel 20008000; bootm 20008000 bootargs=root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC1,115200 rootdelay=1 8
  • 9. 1. 오류! 참조 원본을 찾을 수 없습니다. Environment size: 299/16380 bytes 공유기의 최종적인 설정 상태는 위 그림과 같습니다. MANGO210 # setenv ipaddr 192.168.3.20 MANGO210# setenv serverip 192.168.3.22 MANGO210# setenv gatewayip 192.168.3.1 위와 같이 해당 IP 주소들을 적어 넣습니다. 네트워크 설정에 대한 부분은 이젂 장에서 자세한 설명을 드렸습니다. 이젂 장을 참조해 주시기 바 랍니다. 이제 Tftp를 이용해서 다운로드 받고 NAND에 저장하고 NAND로 부팅하는 단계까지 진행해 보도록 하겠습니다. /work/image 디렉토리가 Tftp의 홈 폴더로 지정했기 때문에 이 부분에 mango210_uboot.bin이 있 어야 합니다. 이미 u-boot 소스에 Makefile에 복사를 해 두었기 때문에 ls명령으로 확인을 합니다. root@ubuntu:/work/Mango210/gingerbread/uboot# ll /work/image/ total 4276 drwxr-xr-x 2 root root 4096 2011-02-21 23:47 ./ drwxr-xr-x 6 root root 4096 2011-02-21 21:47 ../ -rwxr-xr-x 1 root root 313976 2011-02-22 00:46 mango210_uboot.bin* -rwxr-xr-x 1 root root 4051224 2011-02-16 06:21 mango210_zImage35* Minicom창에서 “tftp” 명령은 아래와 같습니다. MANGO210 # tftp 21000000 mango210_uboot.bin smc911x: initializing smc911x: detected LAN9220 controller smc911x: phy initialized smc911x: MAC 00:40:5c:26:0a:5b TFTP from server 192.168.3.22; our IP address is 192.168.3.20 www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 9
  • 10. Filename 'mango210_uboot.bin'. Load address: 0x21000000 Loading: ############################################################## done Bytes transferred = 313976 (0x4ca78) 위와 같이 tftp를 이용해서 주소 21000000 번지에 mango210_uboot.bin을 다운로드 받고 있습니다. 이 위치에 저장된 내용을 뒤에서 NAND에 저장하게 될 것입니다. MANGO210 # nand scrub NAND scrub: device 0 whole chip Warning: scrub option will erase all factory set bad blocks! There is no reliable way to recover them. Use this command only for testing purposes if you are sure of what you are doing! Really scrub this NAND flash? <y/N> Erasing at 0x6660000 -- 40% complete. nand0: MTD Erase failure: -5 Erasing at 0x87a0000 -- 53% complete. nand0: MTD Erase failure: -5 Erasing at 0xb320000 -- 70% complete. nand0: MTD Erase failure: -5 Erasing at 0xffe0000 -- 100% complete. Scanning device for bad blocks OK nand scrub을 통해서 NAND를 초기화 시키는 작업을 수행하게 되고 NAND의 모든 내용이 지워지고 최초의 상태로 돌아가게 됩니다. MANGO210 # nand write 21000000 0 80000 NAND write: device 0 offset 0x0, size 0x80000 524288 bytes written: OK 21000000 번지에 다운로드 받았던 mango210_uboot.bin을 NAND에 저장합니다. 0번지에 저장하게 되고 이로서 뒤에서 NAND mode로 부팅했을 때 mango210_uboot.bin이 부팅될 수 있는 것입니다. 10
  • 11. 1. 오류! 참조 원본을 찾을 수 없습니다. 부팅 모드를 NAND모드로 변경합니다. 젂원을 인가하면 아래와 같이 디버깅 메시지가 출력되면 정상으로 Write가 된 것입니다. U-Boot 1.3.4 (Feb 22 2011 - 00:45:23) for MANGO210 CPU: S5PV210@800MHz(OK) APLL = 800MHz, HclkMsys = 200MHz, PclkMsys = 100MHz MPLL = 667MHz, EPLL = 80MHz HclkDsys = 166MHz, PclkDsys = 83MHz HclkPsys = 133MHz, PclkPsys = 66MHz SCLKA2M = 200MHz Serial = CLKUART Board: MANGO210 DRAM: 512 MB SD/MMC: 7647MB NAND: 256 MB *** Warning - using default environment www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 11
  • 12. In: serial Out: serial Err: serial checking mode for fastboot ... Hit any key to stop autoboot: 0 MANGO210 # 이제 망고210 보드를 NAND mode로 변경한 이후에 부팅하면 위와 같이 정상적으로 부팅이 되는 것 을 확인할 수 있습니다. 1.3. Cross-Cable을 이용한 직접 연결 1.3.6. 직접 연결을 통한 다운로드 작업 (우분투) Cross-Cable을 한쪽은 PC의 Ethernet Card에 연결하고 다른 한쪽은 망고보드에 연결합니다. PC 쪽의 네트워크 부분은 변경할 필요가 없습니다. 기존의 상태를 그대로 유지한 상태에서 우분투를 열어서 네트워크 홖경을 봅니다. root@ubuntu:/home/icanjji# ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:73:44:5f inet6 addr: fe80::20c:29ff:fe73:445f/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2648 errors:0 dropped:0 overruns:0 frame:0 TX packets:1145 errors:0 dropped:0 overruns:0 carrier:0 12
  • 13. 1. 오류! 참조 원본을 찾을 수 없습니다. collisions:0 txqueuelen:1000 RX bytes:971311 (971.3 KB) TX bytes:414463 (414.4 KB) Interrupt:19 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:20 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1200 (1.2 KB) TX bytes:1200 (1.2 KB) 최초 실행 시 위와 같이 ifconfig를 실행해 보면 IP 주소가 설정되지 않은 것을 볼 수 있습니다. 기존 에는 공유기를 통해서 자동으로 DHCP를 통해 IP가 할당되었으나 지금은 공유기에 연결된 것이 아니 기 때문에 IP를 자동으로 받지 못하고 있는 것입니다. root@ubuntu:/home/icanjji# ifconfig eth0 down root@ubuntu:/home/icanjji# ifconfig eth0 192.168.3.22 up root@ubuntu:/home/icanjji# ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:73:44:5f inet addr:192.168.3.22 Bcast:192.168.3.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe73:445f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2791 errors:0 dropped:0 overruns:0 frame:0 TX packets:1152 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:988785 (988.7 KB) TX bytes:416857 (416.8 KB) Interrupt:19 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:20 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1200 (1.2 KB) TX bytes:1200 (1.2 KB) www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 13
  • 14. ifconfig eth0 down으로 네트워크를 먼저 종료한 이후에 ifconfig eth0 192.168.3.22 up으로 IP 주소를 강제로 우리가 원하는 값으로 설정하게 됩니다. 그리고 나서 ifconfig를 실행해 보면 IP 주소가 정상 적으로 설정된 것을 확인할 수 있습니다. MANGO210 # tftp 21000000 mango210_uboot.bin ……………… 망고보드를 실행해서 print를 통해서 설정되어 있는 값을 살펴보면 우리가 위에서 우분투에 설정한 IP 주소 값이 server의 IP 주소로 설정되어 있습니다. 이를 이용해서 tftp를 실행하면 정상적으로 다 운로드 받을 수 있습니다. 만약 아래와 같이 loading이 되지 않으면, MANGO210 # tftp 21000000 mango210_uboot.bin smc911x: initializing smc911x: detected LAN9220 controller smc911x: phy initialized smc911x: MAC 00:40:5c:26:0a:5b TFTP from server 192.168.3.22; our IP address is 192.168.3.20 Filename 'mango210_uboot.bin'. Load address: 0x21000000 Loading: T T T 리눅스 호스트 PC에서 “ifconfig eth0 192.168.3.22 up”을 한번더 수행을 합니다. root@ubuntu:/home/icanjji# ifconfig eth0 192.168.3.22 up 1.3.7. 페도라에서 SELINUX (Security 부분) 끄기 우리는 우분투를 사용하고 있기 때문에 네트워크의 설정이 상대적으로 매우 쉽지만 만약 우분투를 사용하지 않고 페도라와 같은 것을 사용하게 되면 설정 작업이 조금은 복잡해 집니다. 페도라와 같은 우분투와는 다른 홖경을 사용할 경우 Security와 관렦한 부분을 Disable 시켜야 네트 워크로 작업하는 것이 가능하게 됩니다. 이에 대한 설정은 아래의 방법을 따라 하시면 됩니다. $ vi /etc/sysconfig/selinux 14
  • 15. 1. 오류! 참조 원본을 찾을 수 없습니다. 편집기로 위 파일을 열어서 적젃히 편집을 해주어야 합니다. # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. # SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted SELINUX=enforcing으로 되어 있는 부분의 앞에 #을 붙여서 주석으로 만들고, SELINUX=disabled로 처리해서 비홗성화 시키면 됩니다. 위와 같이 편집 작업을 마친 이후에 시스템을 리부팅 하면 정상 적으로 적용되어서 이제부터는 네트워크 작업에 문제가 없게 됩니다. www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 15
  • 16. 16