aEsop 보드를 사고 나서 (중고로 구입) 사이트가 해킹당해서 그동안
미뤄왔던 것들을 해보고 있습니다. 여러가지 궁금한게 있습니다.
[질문 1]
aEsop 기본 설정으로 커널을 tftp로 부터 받아와 압출을 푸는 방식인것 같습니다.
맞나요?? ez-x5를 쓸때는 커널을 nand 플래시로 부터 가져온것 같은데
이 부분은 개발환경을 편하게 하기 위해서 그런것 같은데요
커널을 NAND Flash에 저장해서 써보고 싶습니다. 그래서 kingseft 님의 문서를
보고 따라하던중
nand erase 0 40000
tftp 30000000 aesopk
nand write 30000000 0 $(filesize)
setenv bootcmd nand read 32000000 0 d0000;bootm 32000000
이런식으로 되어있더라구요 nand 메모리에서 읽어와 32000000 로드하고
그다음 32000000으로 부팅을 시작하라는 것 같은데
이대로 하고 보드를 부팅시키면 커널이미지를 풀지 못하고 다시 부트로더 프로픔트
상태로 들어올 경우가 있구요 다시 하면 잘 될 경우도 있고 그러네요;;
혹시 제가 잘 못한 부분이 있는지요..
[질문 2]
좀 무식한 질문인지 모르겠는데요 aEsop의 경우 아래와 같이 램상태가 되는게 맞는건가요 u-boot 쪽 조금 보고 나름대로 생각해서 본건데...
u-boot area 0x33c0 0000
LCD framebuffer 0x3300 0000
Default loading 0x3200 0000
USB mass storage 0x3100 0000
ramdisk Area 0x3080 0000
Kernel Area 0x3000 8000
이런식으로 되는것 같습니다. 그렇다면 일반적인 응용 프로그램이 램으로 올라가는 공간은 어디가 되는건지 잘 감이 안잡힙니다. 그림이 있으면 좋으련만 죄송합니다.ㅠ.ㅠ
[질문 3]
NAND 플래시가 3개의 파티션으로 나뉘어졌다고 합니다.
mtd0 커널이미지 (4MB)
mtd1 루트파일이미지 (16MB)
mtd2 OPIE(44MB)
루트 파일이미지가 어떤건지 모르겠습니다. Yaffs 같은 루트 파일 시스템이라는건가요?? 그리고 OPIE 라는 것은 어떤건지 잘 모르겠네요 ㅜ.ㅜ 어디에 나와있는지 잘 못찾는것 같은뎅 how-to에 왠만한게 다 있더라고요 ^.^;; 저 같은 초보를 위해서 고생하십니다.
그런 이유때문에 nor 2M짜리를 보통 사용합니다. 앞부분 512k정도는 부트로더용으로 남겨놓고, 맨 뒷블럭은 환경변수 영역으로, 대략 80000서부터 1effff까지는 비어있으니, 그 부분을 사용하시길 바랍니다.
조심할 것은 부트로더 영역을 overwrite하지 않게 조심히 하시고요.
답 2> u-boot용 일반 프로그램을 말씀하시는 것인지요?
u-boot용은 32000000 정도에 올려서 쓰면 됩니다.
커널로 부팅이 된 후를 말씀하시는 것이면 크게 신경안써도 됩니다. 커널로 부팅만 되면 알아서 매핑하니깐....유저가 신경쓸일은 아닙니다.
답 3> kelp의 임베디드강좌/윤덕배 란에 가시면 제가 u-boot에 대해서 써 놓은게 있습니다. 2번째 강좌쯤에 rootfs란 무엇인가에 대해서 써 놧습니다. 그걸 참고하시고요.
NAND flash의 경우 현재는 1개만 사용합니다. 궂이 나눌 필요가 없어졌기 때문입니다. 2.6.13 커널을 보시면 일단 64M를 total 하나의 mtd block으로 잡았습니다.
참고로, yaffs는 특정 파티션에 탑재하는 filesystem의 타입이고요(ex> fat 와 비슷하다고 보면 됨). OPIE는 QT-embedded 2.3.10을 이용한 PDA용 library입니다.