[t:/]$ 지식_

오드로이드 1일차

2012/05/23

오드로이드 A 를 갖고 놀기 시작했다.

1.

기본 환경 설정은 다음을 참고한다. 깔 것 깔자.

또한, 우분투 11.10으로 업그레이드 했다. 11.04는 문제가 많다. 그냥 원클릭 업그레이드해도 쓸만하다. 어짜피 쉘하고 탐색기? 정도나 쓸 듯..

우리는 BSP 엔지니어이므로 SDK나 이클립스등은 일단 스킵하고, 에러날 때마다 추가하자.

http://source.android.com/source/initializing.html

2.

코드소서리 4.4.1을 설치한다.

https://sourcery.mentor.com/sgpp/lite/arm/portal/release1294

bin으로 받아서 실행권한 준 후 실행하면 땡. 설치 위치를 대강 기억해 둔다.

3.

/root/.bashrc 에 bin PATH를 추가한다.

arm-none-eabi-gcc -v 실행해서 제대로 보이는 지 확인한다.

.bashrc를 고친 후에는 source /root/.bashrc 를 실행해서 현재 실행중인 쉘에 반영한다.

다음 환경 변수도 넣어두면 편리하다. 단, 호스트용 툴, 커널을 빌드하거나 할 때는 엉킬 수 있으니 주의한다. (ARCH 변수)

export ARCH=arm
export CROSS_COMPILE=arm-none-eabi-

4.

오드로이드 홈페이지에 가서 최신 ICS 소스를 받는다. 원본 소스부터 시작하는 작업은 나중에 하자. 일단 적응이 우선이다.

http://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword=&tag=&bid=94

5.

아직 매뉴얼 및 구조등을 제대로 읽어보지 않았는데.. 하드웨어 리셋버튼을 못 찾았다. 일단 부팅 MMC는 가장 상단에 있는 슬롯이다. 디버깅 포트는 아래에서부터 두 번째 포트다.

디버깅 포트에 연결하고 minicom을 준비한다. 요즘엔 주로 USB2UART 를 사용하므로 /dev/ttyUSB0 등으로 잡는 것을 주의한다. 속도는 115200 8n1

6.

U-Boot 빌드 준비를 하자. 2410 시절의 스테핑 스톤을 계승하고 있다. 초기 16KB를 자동 로드하고 있는 듯하다. C100할 때는 U-Boot 에서 자체적으로 top/bottom 구조를 해결한 것 같은데.. 어쨌든 U-Boot를 top/bottom 으로 쪼개야 한다. BLOB의 변형이나 티벨로더부터 계승된 구조로 보인다.

7.

U-Boot 디렉토리로 들어가서 boards.cfg를 까보자. 오드로이드 A는 엑시노스 4210이라고 한다. (지가 산 보드의 칩셋도 잘 모르는 단계에 이르렀음..)

4210은 V310 계열이라고 한다. smdkv310 … 아 정말 이제 아무것도 모르는 상태에서 개발하는 구나.

make distclean
make mrproper

이 정도 실행하면 일단 클리닝은 될 것이다.

make smdkv310_config
make

이제 u-boot.bin 이 나왔으니까 땡이지만.. top image를 만들어야 한다.

8.

sd_fuse 라는 디렉토토리가 있는데 하드커널에서 이미지 스플리터로 만든 것 같다. 들어가서 make 쳐서 빌드한 후 mkbl2를 ../로 복사한다. bl2.bin 은 필요없는데…. 뭐 나중에 쓸 일이 있을지 모르니..

9.

c210-mkbl1 u-boot.bin u-boot_bl1.bin 16384 명령어로 16킬로짜리 top 이미지를 뽑는다.

10.

마이크로 SD 카드를 뽑아서 PC에 꽂는다. fdisk -l 해보면 8기가 짜리 스토리지가 새로 보인다. 나의 경우 sdb

fdisk -l /dev/sdb 로 다시 살펴보자.

umount /dev/sdb* 일단 모두 절단.

익숙한 dd 명령어로 아까 만든 이미지를 밀어넣는다.
dd if =./u-boot.bin of=/dev/sdb seek=33

seek는 파티션 계획에 따른 위치다.

dd if=./u-boot_bl1.bin of=/dev/sdb seek=1

얼래? 그냥 16K 밀어넣는게 아니라 bl1을 넣는 걸 보니 c210 툴이 bl1에 뭔가의 헤더를 붙이나보다.
나중에 소스 분석해보자.

sync 때리고 카드 빼서 오드로이드에 넣는다.
부팅 하면 미니컴 콘솔에 뭔가 뜰 것이다.

위에 기록한 과정 중에 “그냥 따라할 뿐 뭔지 모르겠는 것”이 있으면 안 된다.
그런 경우 오드로이드 홈페이지의 친절한 문서를 보고 하자.

11.

커널 소스를 푼다.

ARCH=arm 환경 변수 추가 export를 하든 뭐하든 알아서..

arch/arm/configs 를 뒤진다. ordroid-a-defconfigs 발견.

make ordroid-a-defconfigs 실행

make -j 8

요즘 커널은 모듈까지 완빵 뽑는 거 아시죠?

일단 여기까지..

** 추가

리셋버튼은 후면 리셋홀에 있다. 걍 누르면 안 된다 -_- 2초는 눌러야 됨.. 그래서 안 됐구나..

까보니까 U-Boot의 top에 뭔가의 16바이트 헤더를 넣는데 뭔지는 잘 모르겠다. 스테핑 스톤의 식별자인지.. DDR 설정 상수 값인지.. 매뉴얼을 읽어봐야겠다.









[t:/] is not "technology - root". dawnsea, rss