몇년전에 만들어 놓았던 것인데....
kelp에 질문이 올라와 있더군요...^^, 아직도 2.4.18이 많이 쓰이는구나...
하고 놀라고 있습니다.
============================
mkdir rd
gunzip ramdisk.gz
mount -t ext2 -o loop ramdisk rd
이런식으로 마운트 해서 보시면 되고요. 물론 에디팅도 마운트 한 상태서
작업하시고....
umount rd
gzip ramdisk_s3c
등등......해서 밑의 스크립트로 작업하시면 됩니다.
이미지가 중요한 것이라서...하우투는 대충 씁니다.
u-boot는 다음과 같이 고치시면 됩니다.....
- u-boot/lib_arm/armlinux.c
void
do_bootm_linux(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
ulong addr, ulong * len_ptr, int verify)
{
...
if (data)
{
#if 0 /* ghcstop fix */
initrd_start = data;
initrd_end = initrd_start + len;
/*
* ghcstop: ramdisk가 현재 어느 위치에 있던간에 mkimage시
* -a option으로 지정한 위치로 점프하게 만든 것
*/
#else
initrd_start = ntohl(hdr->ih_load);
initrd_end = initrd_start + len;
memmove((void *) initrd_start, (void *) data, len);
printf ("Ramdisk load address change from 0x%08x to 0x%08x with %u bytesn", data, initrd_start, len);
#endif
}
...
}
- ramdisk 만드는 법
mkimage -n 'Ramdisk' -A arm -O linux -T ramdisk -C gzip -a 0x30800000 -e 0x30800000 -d ramdisk.gz ramdisk2410.img
이렇게 한 후, ramdisk를 u-boot에서 download하고
bootargs로는 root=/dev/ram0라고 주면 됩니다.
물론, console이나 등등의 옵션은 그대로...줘야하고요.....
ps> kernel 2.4.18용 config파일도 추가합니다.