하드웨어
EZ-Board[6410]에 U-BOOT 포팅하기 [1]
종종 EZ보드에 U-Boot포팅을 문의하는 분들이 있어서 한번 올려 봄니다.
U-Boot가 뭔지 모르시는 분들 위해 잠깐 소개 하자면
U-boot (Universal Boot Loader)
- PowerPC와 ARM에
기반을 둔 임베디드 보드를 위한 부트로더로, 본래 PPC-boot 프로젝트와
ARM-boot 프로젝트가 통합되면서 만들어 졌다. (현재는 대부분의
CPU를 지원)
라고 합니다. 유붓의
장점이라면
다양한 시스템에서
사용 가능, Serial, Network, USB, Flash를 지원
CPU에
대한 Evaluation Board용 Sample 코드를
제공
CPU에
대한 명령어 체계가 동일하므로 다른 Platform을 적용하기 쉽다.
는 점이 있습니다만 반대로 막강한 디바이스 지원으로 인해
다른 부트로더에 비해 파일 크기가 무척 크다는 단점이 있습니다.
필자 역시 배우면서 느낀점은 EZ-boot가 스마트하다고 생각 되더군요.
자 그럼 기초 설명은 여기까지 하기로 하고 본격적으로
시작해 보겠습니다.
일단 최종 타겟보드는 가장 많이 쓰는 EZ-s3c6410보드 입니다.
U-boot포팅을 하려면 먼저 소스 코드를 다운 받아야겠죠? 자료실에서 소스파일을 다운 받으세요(업로드 용량 관계로 분할 압축 했어요)
소스파일은 삼성에서 공개한 smdk6410용 파일인 u-boot-1.3.4-samsung_rel-1-0-4_20090305.tar.bz2
입니다.
물론 원본
소스 코드도 있지만 아직 필자의 내공이 깊지 않은 터라...;;;
먼저 소스 파일을 풀어주세요
tar파일을 푸는 명령은 tar –xvf [파일명] 입니다.
tar –xvf u-boot-1.3.4-samsung_rel-1-0-4_20090305.tar.bz2
자 타르파일을
풀면 u-boot-1.3.4-samsung 디렉토리가 생길거에요.
혹시 모를
사태를 대비해 u-boot-1.3.4-samsung를 복사해 실제 작업할 폴더를 만들어 놓겠습니다.
저는 폴더이름을
[ u-boot.6410 ]으로 지었습니다. 편하신 대로
폴더이름을 지으세요
디렉토리
파일복사 명령은 cp –r [원본파일명][복사파일명] 입니다.
cp –r u-boot-1.3.4-samsung/ u-boot.6410
참고로
파일복사를 마쳤으면 작업의 편의를 위해 chmod명령으로 모드를 변경 해주시면 편합니다.
명령어는
다음과 같아요
chmod –R 777 u-boot.6410
ls –al 명령을
실행하시면 위에 그림처럼 모드가 변경된걸 확인하실 수 있을거에요.
자 그럼 이제 컴파일을 해볼까요?
컴파일을
하려면 먼저 makefile에서 크로스 컴파일러를 지정해주어야 합니다.
그러고
보니 크로스 컴파일러는 설치 하셨나요? 안하셨으면 아래주소로 가서 배우고 오시길…ㅎㅎㅎ
http://forum.falinux.com/zbxe/?mid=lecture_tip&document_srl=462349
Makefile을 열어 크로스 컴파일러를
지정해주는 방법은 아래 그림과 같이 하면 됩니다.
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-generic-linux-gnueabi-
endif
자 이제
컴파일이 잘되나 테스트를 한번 해보겠습니다.
먼저 make clobber 명령어로 클린을 명령을 실행해 보구요
아래와
같은 글귀가 나오면 잘되었다는 것이니
make를 실행하여
컴파일을 하세요. 오래 걸릴 터이니 인내심을 갖고 기다려야 할거에요.
컴파일은
잘되셨나요? 아래와 같이 나온다면 별탈없이 잘된 것이람니다.
참고로 폴더를 확인해 보면 u-boot.bin 파일이 생긴걸 볼수 있을거에요.
파일 생성까지 잘되셨다면 오늘의 미션 클리어 입니다~~~짝짝짝~! 축하해요~*^^*
다음 시간엔 Target board configuration에 대해 알아 보겠습니다.
to be continue….
크로스 컴파일은 무엇을 쓰셨나요?