도와주세요!!
글 수 15,339
2014.07.21 11:40:53 (*.16.41.136)
12044
아래 내용에 이어서 질문드립니다.
(게시글 주소: http://forum.falinux.com/zbxe/index.php?document_srl=794624)
hexdump로 /dev/mtd1의 내용을 덤프해보니
zImage.ez-s3c6410 파일과는 다르다는 것을 확인하였습니다.
그래서 /dev/mtd1을 약 3M 덤프하여 파일로 저장하고, 이를 다시 dd로 /dev/mtd1에 기록해보니
부팅에 문제가 발생하지 않습니다. (오! ^^)
그래서 질문인데요.
/dev/mtd1이 /proc/mtd 상에는 "kernel + Ramdisk"로 되어 있고
이지부트에서 set 해보면 nand part 부분이 BCLKRA 가 1,1,2,3,10,495 인데요.
zImage.ez-s3c6410 파일을 /dev/mtd1의 시작부분에 직접 기록하지 않는 건가요?
답변을 기다립니다.
2014.07.23 13:25:57 (*.16.41.136)
커널에서는 1,1,2 부분이 mtd0로 되어 있고, 커널과 램디스크는 mtd1이 맞습니다.
hexdump /dev/mtdx 로 확인 가능합니다.
자세히 보니, 플래시의 해당 영역 중에서 처음 16바이트에 (아마도) 어떤 파라미터가 존재하고 그 이후부터 커널 이미지와
동일합니다.
해서 dd 명령으로 처음 16바이트를 플래시에서 읽어서 파일로 만들고, 다시 flash_erase, 과 dd 명령을 통해서 이전에 저장한 16바이트를 기록후, 커널이미지를 기록하니 커널이 잘 부팅합니다. ^^
분석해 본적은 없지만,
BCLKRA 에서 앞에 있는 1,1,2, 는 부트로더, 파라메타, 로고이미지 사이즈이고,
뒤에있는 3, 10 이 커널과 램디스크 입니다.
당연히 /dev/mdt1 시작부분에서 3M 는 건너뛰고 커널이 기록되지 않을까요?