Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
[문의] Target에 yaffs2를 적용하는 방법
작성자
작성일 2008-11-14 (금) 11:11
ㆍ추천: 0  ㆍ조회: 14192      
IP: 61.xxx.221
ARM926EJ-S Board에 YAFFS2를 적용하고자 합니다.
제가 생각하는 방법이 맞는지요?
1. Full Source를 받아서 build한다.
    yaffs2가 적용된 filesystem image(system.img, userdata.img)가 생성된다.(mkyaffs2image 실행파일로 생성됨)
2. bootloader(u-boot)에서 NAND Flash의 1'st partition에 system.img를 write하고, 2'nd partition에 userdata.img를 write한다.
3. kernel에 nand driver와 yaffs2 file-system을 적용해서 build한다.
4. kernel을 booting한다.
    zImage가 실행되면서, ramdisk가 root fs로 적용되어 ramdisk.img를 mount한다.
    ramdisk에 있는 init이 init.rc를 실행되면서 system 폴드가 mtd 1'st partition에 mount하고, data 폴드가 mtd 2'nd partition에 mount된다.
 
Target에 yaffs2를 적용하신 분의 고견을 듣고자 합니다.
수고하세요!
 
바로 Test를 해보았는데, 문제가 있는것 같습니다.
우선은 init.rc에서 mount가 정상적으로 수행되지 않습니다.
======================================================================================
....
init: mtd partition 0, system
init: mtd partition 1, userdata
init: mtd partition 2, cache
init: mtd partition 3, free_disk
yaffs: dev is 32505856 name is "mtdblock0"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.0, "mtdblock0"
init: command 'mount' r=-1
init: command 'mount' r=-1
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
init: command 'mount' r=-1
init: command 'chown' r=-30
init: command 'chmod' r=-30
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs_read_super: isCheckpointed 0
init: command 'mount' r=0
....
============================================================================================
 
이제부터 몸으로 때워야 할 시간인가 봅니다.
 
혹시 제가 빠뜨린 부분이 있으면, 많은 조언 부탁드립니다.
이름아이콘 인베인
2008-11-14 18:23
해당 타겟보드의  MTD Block 구간을 yaffs2으로 파티셔닝후에 그 방에 android rootFS을 복사하신후 간단히 리부팅하여 사용하시면 됩니다. 파일시스템 개발은 다소 어려우나, 만들어진것을 사용하는 것이 조금만 더 몸으로 떼우시면 꼭 성공하시리라 봅니다. ^^
   
이름아이콘 khjung
2008-11-14 19:45
인베인님!
답변 감사합니다.

root file-system은 ramdisk를 사용하고, system과 data 폴드만 yaffs2를 적용할 생각입니다.

MTD Block구간을 yaffs2로 partition한 후라고 하시면, ramdisk로 먼저 booting한 후에
mkyaffs2(yaffs utility) 같은 명령으로 /dev/mtdblock0를 포맷해야 한다는 말씀이신가요?

그리고, 포맷후에 system폴드나, data 폴드가 없는데, 어떻게 파일을 복사할 수 있는가요?

약간 이해가 안되는군요!

참고로, Android Full source를 build하면 생성되는 system.img와 userdata.img파일은 어떤
format으로 생성된 image인지 아시나요?
(제 생각에는 yaffs2 format이 적용된 거라고 생각했는데, 제가 잘못 알고 있는건가요?)

답변 주셨는데, 질문이 더 많아져서 죄송합니다.
관심가져주셔서 감사합니다.
수고하세요! (2차 세미나 잘 들었습니다.)
   
이름아이콘 coolguy
2008-11-15 00:21
네. system.img userdata.img는 yaffs2 이미지입니다. mkyaffs툴로 device단 build시 생성됩니다.
mkdir로 디렉토리 만들고, ramdisk에 mount tool(system폴더에 있는 것 사용하면됨)
을넣어 생성 ..그리고 just mount -t yaffs2 ...
   
이름아이콘 khjung
2008-11-15 10:10
조금 이해가 않되는 부분이 있어서 다시 질문드립니다.

JFF2의 경우 mkfs.jffs2라는 host(PC) utility로 특정 폴드 전체를 image로 생성합니다.
그리고, 그 image를 NAND Flash에 Write하고, target을 booting해서 mount하면 바로 특정 폴드의
내용이 그대로 보이며, 사용할수 있습니다.

YAFFS2의 경우도 mkyaffs라는 host(PC) 툴로 특정 폴드(예, system) 전체를 image(system.img)로
생성한 걸로 알고 있습니다. 그럼 이 image(system.img)를 NAND Flash에 wirte한 후에 target이
booting된 상태에서 mount하면, system 폴드의 내용을 모두 사용할 수 있는 것 아닌가요?

Target에서 JFFS2로 mount해서 잘 사용하고 있는데, YAFFS2를 동일한 방법으로 mount하면 Error가 발생합니다.
방법적으로 제가 잘못 이해하고 있는 부분이 있는지요?

답변 감사합니다.
즐거운 주말 되세요!
   
이름아이콘 File
2008-11-17 09:44
커널의 파일시스템이 yaffs2 지원하게 해두었는지 확인해보세요.
   
이름아이콘 khjung
2008-11-17 10:05
File님 반갑습니다.

kernel config에서 YAFFS2는 적용된 상태입니다.
-----------------------------------------------------------------
CONFIG_YAFFS_FS=y
CONFIG_YAFFS_YAFFS1=y
CONFIG_YAFFS_YAFFS2=y
CONFIG_YAFFS_AUTO_YAFFS2=y
CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y

CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y

CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_VERIFY_WRITE=y
CONFIG_MTD_NAND_BMP1000=y
CONFIG_MTD_NAND_PLATFORM=y
-----------------------------------------------------------------

아울러, JFFS2도 적용해서 검토했습니다.

제가 궁금한 것은 YAFFS2를 적용하는 방법에 대한 내용입니다.
혹시 적용하셨다면, Android에서 System.img를 어떻게 YAFFS2로 mount하셨는지 궁금합니다.

답변 감사합니다.
수고하세요
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
4803 MusicDroid에 대해서 문의드립니다. 2008-11-10 8322
4802 [질문] java.lang.RuntimeException.... 2008-11-10 13732
4801 Re..Kernel Panic 문제 2 2008-11-11 9260
4800 kernel panic 관련 질문 2008-11-11 13869
4799 Re..Kernel Panic 문제 3 2008-11-11 10321
4798 웹브라우져 관련 초보자 질문입니다. 2008-11-11 7980
4797 앞으로 몰 만들어야 할지요? 2008-11-11 8022
4796 Android 1.0 r1 Network 설정 문의 2008-11-12 8645
4795 Android PDK소스는 어떻게 얻나요? 2008-11-12 9492
4794 오픈소스 FBReader 를 받았는데 실행이 되질 않습니다... 2008-11-12 13508
4793 video player에 대해. 2008-11-12 8083
4792 [문의] zygote가 start와 exit를 반복합니다. 2008-11-12 13632
4791 Internet Radio 2008-11-12 9630
4790 도와주세요~ 2008-11-13 8492
4789 Framebuffer 문제 2008-11-13 11645
4788 Android 해상도 문제... 2008-11-13 12650
4787 Android Full source 다운로드 관련 2008-11-13 12567
4786 Android의 Location관련 서비스는 SUPL을 지원하나요?.. 2008-11-13 8598
4785 Android Full source 빌드 오류 관련 2008-11-14 9374
4784 [문의] Target에 yaffs2를 적용하는 방법 2008-11-14 14192
4783 Android Emulator에서 무선랜 관련 질문입니다. 2008-11-14 8350
4782 emulator 에서 기존 app을 uninstall 하는 방법 2008-11-15 10216
4781 QEMU Compile 관련 질문입니다 ㅜㅜ 2008-11-16 8990
4780 Android 소스 빌드 에러 - unrecognized command line option .. 2008-11-16 12409
4779 edittext의 줄 나눔 관련 질문 드립니다. 2008-11-16 10397
4778 안드로이드 풀 소스 make시 오류 문의~ 2008-11-17 9996
4777 Android에 Developer Registration 다들 어떻게 하셨나요?.. 2008-11-17 8008
4776 초보자질문... 2008-11-17 8312
4775 에러 발생...이유가.. 2008-11-17 8443
4774 android 버전문제 2008-11-17 8307
4773 [질문] open max il 2008-11-18 8446
4772 정말 기초질문좀 할게요 ㅠㅠ 2008-11-18 8017
4771 안드로이드 메뉴버튼 눌렀을때 2008-11-18 9018
4770 초순이 질문 드려요^^ 2008-11-19 8120
4769 map 관련해서 말풍선(info. balloon) 질문 2008-11-19 11341
4768 안드로이드 풀소스 컴파일 오류.. 2008-11-19 16671
4767 안드로이드 폰에 대한 질문입니다 2008-11-19 8469
4766 zygote? 2008-11-19 13889
4765 안드로이드 폰에 콘솔 프로그램 올리는 것에 대한 질문입니다.. 2008-11-19 8981
4764 어플리케이션에서 버튼 클릭할때, 인터넷으로 연결하는 방법 .. 2008-11-20 8339
4763 오버레이 이미지의 이벤트 2008-11-20 9389
4762 초보자의 질문 2008-11-20 8342
4761 구글맵, 자신의 위치를 찾는 방법 아시는분 계신가요?.. 2008-11-20 9163
4760 oracle 사용 가능한가요? 2008-11-20 10544
4759 [질문] android_power_suspend 관련 질문드립니다.? 2008-11-20 10132
4758 T-Mobile G1에 콘솔 프로그램 올리는 방법 문의입니다... 2008-11-20 8432
4757 초보자의 질문 2탄..;; 2008-11-21 8344
4756 포팅이 제대로 되었으면 콘솔창으로 입력이 가능한건가요?.. 2008-11-21 10760
4755 카메라 흑백(?) Display 문제 2008-11-21 9143
4754 Telephony API 질문 2008-11-22 8053
12345678910,,,101