포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

간단한 uBoot 사용 및 환경 설정 방법


1) 현재 환경 설정 검토 및 저장


uBoot에서 현재의 환경 설정을 검토하는 방법과 변경된 환경 설정을 저장하는 명령을 각각 제공하고 있습니다.

환경 설정을 변경 후 변경된 환경 설정을 앞으로 부팅 시에 계속 사용하고 싶다면 아래의 명령을 통하여 환경 설정을 검토 및 저장을 할 수 있습니다.


▣ 현재의 환경 설정 검토


SysLab_MP2530F> printenv



▣ 현재의 환경 설정을 저장


SysLab_MP2530F> saveenv



2) TCP/IP 환경 설정 설정 방법


uBoot에서 Ethernet를 이용하여 소프트웨어를 타깃보드로 다운로드 하기 위해서는 우선 IP 주소의 환경 설정이 필요합니다. IP 주소를 변경하는 방법은 다음과 같습니다.


▣ IP 주소 설정


SysLab_MP2530F> setenv ipaddr [ IP 주소 ]



▣ Subnet-Mask 설정


SysLab_MP2530F> setenv netmask [ Subnet-Mask ]



▣ 게이트웨이 설정


SysLab_MP2530F> setenv gatewayip [ 게이트웨이 주소 ]



▣ 호스트 시스템(소프트웨어 다운로드 서버)의 IP 주소 변경


SysLab_MP2530F> setenv serverip [ 호스트 시스템 IP 주소 ]



3) TFTP를 이용한 파일 다운로드 방법


TFTP를 이용하여 호스트 PC에 저장된 파일을 타깃 보드로 다운로드 할 수 있습니다.

호스트 PC에서 전송된 파일은 타깃 보드의 메모리 0x0200_0000 번지로 저장됩니다.


SysLab_MP2530F> tftp 02000000 [ 다운로드 파일 이름 ]



4) NAND Flash 관련 명령


uBoot는 NAND Flash 메모리 제어와 관련된 강력하고 다양한 기능들을 제공 합니다. 이를 이용하여, NAND Flash 포멧 및 TFTP를 이용하여 타깃 보드의 메모리에 저장된 파일을 NAND Flash에 기록하는 등의 작업이 가능 합니다.


▣ NAND Flash에서 사용되는 옵셋 개념


NAND Flash에서 사용되는 옵셋은 Byte 용량을 16진수로 변환한 값을 사용 합니다. 예를 들어 256Kbyte 용량을 16진수로 환산하면 0x4_0000 이 됩니다.

그리고 4MByte의 경우 16진수로 환산했을 경우 0x40_0000이 됩니다. 이를 그대로 NAND Flash 명령의 인자 값으로 적용하여 사용 합니다.


▣ NAND Flash 삭제


SysLab_MP2530F> nand erase [ 시작 옵셋 ] [ 삭제 할 크기 ]



예) NAND Flash의 256KByte 지점에서 4MByte의 저장된 데이터를 삭제할 경우


SysLab_MP2530F> nand erase 0x40000 0x400000



▣ NAND Flash 기록


NAND Flash의 기록 명령은 메모리에 저장된 데이터를 NAND Flash로 기록하는 것을 의미 합니다.

따라서, 이 명령어의 인자로는 기록할 데이터가 저장된 메모리 주소와, NAND Flash의 시작 옵셋과 기록할 크기가 들어갑니다. NAND Flash 관련 명령에서 용량 관련 값들은 모두 16진수로 입력합니다.


SysLab_MP2530F> nand write [ 데이터 저장 메모리 주소 ] [ 기록 시작 옵셋 ] [ 기록 크기 ]



예) TFTP로 0x0200_0000 메모리 주소에 저장된 데이터를 NAND Flash의 256KByte 지점에서 4MByte 만큼 데이터를 기록할 경우


SysLab_MP2530F> nand write 02000000 40000 400000



▣ NAND Flash 로우 레벨 포멧


NAND Flash를 공장 초기 값으로 되돌리는 명령으로, NAND Flash에 기록되어있던 잘못된 블록 정보 및 기타 저장 정보들을 모두 삭제 합니다. NAND Flash가 제대로 동작하지 않을 때 사용합니다.


SysLab_MP2530F> nand scrub



5) 리눅스 커널 부트 커맨드 설정


uBoot에서는 리눅스 커널의 부트 커맨드의 설정이 가능합니다. uBoot에서 리눅스의 부트 커맨드를 설정하면, 리눅스 커널은 uBoot에서 설정된 부트 커맨드를 받아와서 부팅을 진행 합니다. 부트 커맨드의 설정 방법은 다음과 같습니다.


SysLab_MP2530F> setenv bootargs [ 커널 부트 커맨드 ]



6) 부팅 자동화 명령 설정


uBoot에서 자동으로 부팅 시 수행할 명령들을 설정할 수 있습니다. 한 개의 명령 또는 다수의 명령이 사용가능하며, 다수의 명령 사용시 명령과 명령과의 구분은 “;”(세미콜론)으로 구분합니다.


SysLab_MP2530F> setenv bootcmd [ 명령 1 ] ; [ 명령 2 ] ; [ 명령 3 ]



7) 적용된 환경 설정으로 부팅 수행


uBoot에서 설정한 환경을 이용하여 부팅하는 명령은 다음과 같습니다.


SysLab_MP2530F> boot



8) SysLab_MP2530F용 환경 설정 예제


다음은 SysLab_MP2530F 모듈용 환경 설정 예제 입니다. uBoot 환경 설정 시 참고하시기 바랍니다.


▣ TFTP 및 NFS를 이용한 부팅 방법


부팅 시 자동으로 TFTP를 이용하여 커널 이미지를 다운로드 받고, 리눅스 커널은 NFS를 이용하여 파일 시스템을 마운트 하여 부팅하는 환경 설정 입니다. 보통 디버깅 용도로 많이 사용됩니다.


SysLab_MP2530F> setenv bootcmd tftp 02000000 uImage-SL2530;bootm 02000000
SysLab_MP2530F> setenv bootargs mem=64M root=/dev/nfs rw nfsroot=192.168.1.15:/nfsroot/RootFS-SL2530 ip=192.168.1.85:192.168.1.15:192.168.1.1:255.255.255.0::eth0:off console=ttySAC3,115200n81 ethaddr=08:00:3e:26:0a:5b



▣ NAND Flash에서의 부팅 방법


NAND Flash에 저장된 커널 및 루트 파일 시스템을 이용하여 부팅하는 명령 입니다. 호스트 PC의 도움 없이 타깃 보드로 단독 부팅 수행 시에 사용 합니다.


SysLab_MP2530F> setenv bootargs mem=64M root=/dev/mtdblock0 rootfstype=yaffs console=ttySAC3,115200n81 ip=192.168.1.85:192.168.1.15:192.168.1.1:255.255.255.0::eth0:off ethaddr=08:00:3e:26:0a:5b
SysLab_MP2530F> setenv bootcmd nand read 02000000 44000 400000;bootm 02000000



▣ NAND Flash에 커널 기록


TFTP를 이용하여 호스트 PC로부터 커널 이미지를 다운로드 받아 NAND Flash에 기록하는 명령 입니다.


SysLab_MP2530F> nand erase 44000 400000
SysLab_MP2530F> tftp 02000000 zImage-2530
SysLab_MP2530F> nand write 02000000 44000 $(filesize)


profile

인생은 연극이고 세상은 무대이다!

이솝 임베디드 포럼 운영 및 비즈니스와 관련된 것 이외에 E-Mail이나 메신저 및 휴대폰 등을 통한 개인적인 질문 및 답변은 받지 않습니다. 문의 사항은 이솝 임베디드 포럼 게시판을 이용해 주시면 감사하겠습니다.

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Documents_Linux_Kernel&document_srl=35158&act=trackback&key=516

윤승환

2009.01.29 22:53:37
*.78.49.252

저도 처음 uboot를 사용할 때 nand 관련 command때문에 무지 애를 먹었었는데..
엄청 자세하게 설명해주셨네요 ^^ 역시 재훈님이라능~
profile

김재훈

2009.01.30 07:32:34
*.162.4.91

ㅎㅎ 칭찬 감사드립니다. :) 새해 복 많이 받으세요!

이택양

2009.06.04 23:31:58
*.25.183.150

좋은 자료 감사합니다 .~.

이영민

2010.02.25 06:13:23
*.156.243.216

감사합니다 복받으세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
70 초보자를 위한 부트로더/커널/안드로이드 빌드 환경 설정 및 실습 [10] 이제현 2010-12-25 28953
69 USB만을 이용한 NFS 부팅 [23] 이제현 2010-01-11 20867
68 Android WiFi 포팅하기 file [6] 김경수 2010-05-07 19878
» 간단한 uBoot 사용 및 환경 설정 방법 [4] 김재훈 2009-01-29 19520
66 uboot에서 ubifs 이미지 nand에 쓰는 방법 [4] 엉금엉금 2010-08-04 19182
65 U-Boot 실무 위주의 간단한 강좌 #1 - Makefile 사용법 file [3] 김재훈 2008-07-11 18847
64 임베디드 시스템 포팅 가이드(PXA255 ) #1 file [7] 김재훈 2009-05-17 18006
63 Linux 2.6 커널의 이해 (Embedded World) file [19] 김재훈 2009-10-21 17966
62 임베디드 엔지니어를 위한 리눅스 커널 file [9] 김재훈 2009-05-17 17384
61 Making ARM-EABI Toolchain #1 - Crosstool 환경 설정 file [1] 김재훈 2008-07-13 16921
60 범용 운영체제를 위한 리눅스 커널 완전분석 file [5] 김재훈 2009-05-17 16699
59 이광우님 android v4l2 camera porting자료 file [6] 고도리 2011-01-27 16534
58 Crosstool 0.43 - ARM Softfloat / ARM11-VFP EABI 지원 file [6] 김재훈 2008-07-19 16501
57 u-boot.lds 분석(aesop6410) 이세종 2009-04-13 16138
56 mdev and udev 사용 방법 및 적용 가이드 file 김재훈 2009-04-06 16076
55 ARM EABI cross-toolchain howto file [4] 고현철 2008-07-09 16024
54 U-Boot 및 펌웨어에서 MMU 매핑코드 분석 방법 [2] 김재훈 2009-10-21 15979
53 embedded linux porting guide(ppcboot & mpc860) file [4] 고현철 2007-12-17 15924
52 android-x86/Donut 을 viliv S5에 포팅해본본 내용입니다. [3] pinebud 2010-06-25 15548
51 고현철님의 리눅스 Root File System 만들기 동영상 강좌 [2] 김재훈 2009-04-05 15523

사용자 로그인