기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
임베디드 쪽은 경험이 별로 없어서..
질문드립니다.
1. 현재 movi nand를 달고 램디스크등을 만들어서 부팅을 하였는데요
램디스크의 디렉토리 (가령 /mnt)에 movi nand의 다른 영역을 마운트 해서 디스크 처럼 사용하려면
어떻게 해야 하나요?
nand 영역 남은 부분을 좀 사용하고 싶어서요...
여기 게시판등에서 검색을 하다보니
고현철님의 정리된 답변을 찾았습니다. (이것도 참 많이 도움이 되었습니다. 감사합니다 ^^)
"
--- 고현철님의 정리된 답변
1. mtd는 파티셔닝 툴이다.
2. yaffs는 특정 nand partition에 사용되는 fs다.
3. 사용하고자 한다면 특정 partition을 특정 fs로 특정 디렉토리에 마운트 하면 된다. <- ???
4. yaffs나 jffs, jffs2의 경우는 부트로더에서 해당 파티션에 copy한 것처럼 image형태로 write할 수 있다.
5. yaffs의 경우 4번의 image를 만들어주는 명령이 mkyaffsimage이다.
6. mkyaffsimage를 사용하려면 u-boot에서 수정을 해줘야하나, aesop용은 mkyaffs란 명령이 구현되어 있다.
7. 하지만, 문제가 없는것도 아니다. flash에 구울려면 다운로드 해야하나, ram이 64M라 곤란한 문제가 생긴다.
8. 그래서 rootfs를 tar파일로 묶은 후 nfs로 부팅해서 mtd partiton을 yaffs로 특정디렉토리로 마운트 한 후 (마운트 디렉토리가 /mnt일 경우)
"
여기서 3번항목을 구체적으로 어떤 명령을 써서 구현을 해야 하는지 알려 주시면 고맙겠습니다. 초보는 이런것도 막혀서 진도를 못나가네요 ^^;;..
감사합니다.
고현철님 답변 감사합니다. ^^~.
추가로 제가 궁금한 것은..
moviNAND 가 기존의 NAND 처럼 어드레스단위로 접근하는 것이 아니라, sd나 mmc처럼 mmcblk 으로
인식이 되어야 하는 것 같습니다.
uboot 에서는 hsmmc-otg 로 억세스했거든요.
그런데, 커널에서는 인식 / 억세스가 되지 않습니다....
sd카드와 똑같기 때문에, sd 카드 마운팅 하는 것처럼
mmcblk 으로 마운팅하면 될 것 같은데...
커널 소스의 mmc관련 드라이버 부분이
uboot 의 mmc 부분하고 많이 달라보여서 감이 잘 안오네요
아래는 혹시나 해서 부팅 초기에 메시지를 올려봅니다.
감사합니다.
U-Boot 1.3.4-svn (Feb 19 2010 - 17:12:02) for PANTECH DPF(moviNAND)
CPU: S3C6410@666MHz
Fclk = 666MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (ASYNC Mode)
Board: DPF6410
DRAM: 128 MB
Flash: 0 kB
SD/MMC: 1961 MB (moviNAND)
moviNAND : MOVI_LAST_BLKPOS :4014078
moviNAND : MOVI_BL1_BLKCNT :16
moviNAND : MOVI_ENV_BLKCNT :32
moviNAND : MOVI_BL2_BLKCNT :1024
moviNAND : MOVI_ZIMAGE_BLKCNT :8192
moviNAND : MOVI_BL2_POS :4013006
NAND: evn_relocate
http://www.aesop.or.kr/?mid=board_qa_s3c64x0&document_srl=53571&sort_index=regdate&order_type=asc
여기보면 이길범님이 잘 설명해 주신 듯 하네요.
eMMC 드라이버면 아마도 삼성 커널이라면 포팅되어 있을 가능성이 높네요.
그럼 sd처럼 쓰면 거의 되는데...
일반적으로 /dev/mmcblk0~2 이런식으로 생성되며 실제 partition이 1개 있을 경우는
/dev/mmcblk0p1 이렇게 생성이 됩니다.
mount는
mount -t vfat /dev/mmcblk0p1 /mnt
이렇게 하시면 될겁니다.
예를 들어 특정 nand영역이 mtd의 3번째 영역일 경우 block device로 이름은 /dev/mtdblock2 입니다(0부터 시작)
mount -t yaffs2 /dev/mtdblock2 /mnt
이런식으로 하시면 됩니다.,