도와주세요!!
램디스크 이미지 크기가 조금 커서 램디스크를 확장하려고 합니다.
이미지는 ach.sh 파일 수정해서 32M로 생성했습니다.
압축된 이미지는 12M가 정도 됩니다.
ez-boot에서
7) ram disk file name : ramdisk-jrc-320a-32M.gz
17) KCMD 2 : initrd=0x50800000,16M root=/dev/ram0 ramdisk=32768
이부분만 수정하면 될줄 알았는데
tfr로 전송하고 쓰기까지는 잘 되는데 리부팅시 램디스크이미지 카피하다
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..
Copy Kernel Image .....
Copy Ramdisk Image .....
이상태로 멈춰버리네요..
홈페이지 여기저기 찾아보니까
메모리맵을 수정해야 한다고 나와있는데요..
어느파일에서 수정해야 될지 모르겠습니다.
이 글을 참고해보면
'부트로드에서 수정해야할 부분은 arch_s3c2440/memory_map.h 에서 다음 부분들입니다. '
라고 되어있어서 부트로더 찾아 들어가보니까 s3c6410 관련된 파일은 보이질 않네요..
제가 못찾는건지.. ㅡ.ㅡ;
어느 경로의 어느 파일을 수정해야 되는지 알려주세요..
그리고 윗글 댓글에
'2440 그냥 단순히 메모리 맵만 수정하시면 부팅시 죽을겁니다.
링크 디스크립터 배치 주소도 같이 수정해 주시면 됩니다.'
라고 되어있는데 링크디스크립터 배치주소는 뭔지도 알려주세요.
모르는게 많네요...ㅋ
수고하세요.
답변 감사합니다.
nand partion 부분도 있었군요..
말씀해주신 linux/arch/arm/plat-s3c/include/plat/partition.h 파일을 열어보니 아래와 같이 되어있는데
-------------------------------------------------------------------------------------
struct mtd_partition s3c_partition_info[] = {
{
.name = "Bootloader",
.offset = 0,
.size = (4*SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = "Kernel+Ramdisk",
.offset = MTDPART_OFS_APPEND,
.size = (13*SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = "system",
.offset = MTDPART_OFS_APPEND,
.size = (256*SZ_1M),
},
{
.name = "userdata",
.offset = MTDPART_OFS_APPEND,
.size = (256*SZ_1M),
},
{
.name = "cache",
.offset = MTDPART_OFS_APPEND,
.size = (256*SZ_1M),
},
{
.name = "Application",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL, // 239
}
};
-----------------------------------------------------------------------------------------------
부트로더 1MB, 환경 1MB, 로고 2MB, 커널 3MB, 램디스크 10MB, 나머지 1007MB <= 이 내용하구
매치가 안되네요..
.size = (4*SZ_1M), <= 이건 4M라는 뜻인가요?
부팅화면에서 나오는
Creating 6 MTD partitions on "NAND 1GiB 3,3V 8-bit":
0x000000000000-0x000000400000 : "Bootloader"
0x000000400000-0x000001100000 : "Kernel+Ramdisk"
0x000001100000-0x000011100000 : "system"
0x000011100000-0x000021100000 : "userdata"
0x000021100000-0x000031100000 : "cache"
0x000031100000-0x000040000000 : "Application"
이것 하고도 매치가 잘 안되는데요..
0x000000000000-0x000000400000 : "Bootloader" == .size = (4*SZ_1M),
0x000000400000-0x000001100000 : "Kernel+Ramdisk" == .size = (13*SZ_1M),
0x000001100000-0x000011100000 : "system" == .size = (256*SZ_1M),
0x000011100000-0x000021100000 : "userdata" == .size = (256*SZ_1M),
0x000021100000-0x000031100000 : "cache" == .size = (256*SZ_1M),
0x000031100000-0x000040000000 : "Application" == .size = MTDPART_SIZ_FULL, // 239
이렇게 되는것 같은데요...
.size = (4*SZ_1M), => 400000
.size = (13*SZ_1M), => 700000
.size = (256*SZ_1M), =>10000000
.size = (256*SZ_1M), =>10000000
.size = (256*SZ_1M), =>10000000
.size = MTDPART_SIZ_FULL, // 239 => 나머지
왜 이렇게 되는지 잘 모르겠네요...
어떻게 수정해야 되는지 알려주세요~
난드 파티션의 크기도 수정하셔야 합니다.
nand partion : 1,1,2,3,10,1007
위의 내용은 부트로더 1MB, 환경 1MB, 로고 2MB, 커널 3MB, 램디스크 10MB, 나머지 1007MB 입니다.
사용하신 이미지가 12MB 이니 부족하군요
nand partion : 1,1,2,3,13,1004
위와 같이 수정하셔야 합니다.
또 하나의 문제는 nand 파티션때문에 커널소스를 수정하셔야 합니다.
s3c6410 의 경우 부트로더에서 잡은 nand 파티션이 커널로 전달되지 않습니다. (넘 바빠서 아직 하지 못했네요)
직접 소스를 수정하셔야 합니다.
linux/arch/arm/plat-s3c/include/plat/partition.h