간만에 글을 올리네요..

 

atmel at91sam9m10g-45  target board를 테스트 하고 있습니다.
보드를 받았을 때 android 가 올라가 있었는데 RoofFS가 jffs2로 되어 있더군요.
그래서 현재 RoofFS를 yaffs2로 바꾸는 작업을 하고 있습니다.

.config를 보니 yaffs2는 이미 체크되어 있는상태고 해서 MTD 파티션 나누고
이미지파일만 nand에 써주면 되겠다 싶었죠. 그래서 mtd block을 아래와 같이 나눴습니다.

static struct mtd_partition __initdata ek_nand_partition[] = {
        {
                .name   = "kernel",
                .offset = 2 * 1024 * 1024,      /* kernel + RootFS (start : 0x20_0000 = 2MB) */
                .size   = 5 * 1024 * 1024,      /* size : 5MB */
        },
        {
                .name   = "system",             /* yaffs2 android system : mtd@system */
                .offset = 5 * 1024 * 1024,  
                .size   = 95 * 1024 * 1024,
        },
        { 
                .name   ="userdata",             /* yaffs2 android userdata :  mtd@userdata */
                .offset = 100 * 1024 * 1024,
                .size   = 64 * 1024 * 1024,
        },
        {
                .name   = "cache",      
                .offset = 164 * 1024 * 1024,     /*64 * 1024 * 1024*/ 
                .size   = 60 * 1024 * 1024,
        },
        {
                .name   = "test",                /*for debug*/
                .offset = 224 * 1024 * 1024,     /*64 * 1024 * 1024*/ 
                .size   = MTDPART_SIZ_FULL,
        },};
       

그리고 커널의 menuconfig에서 "General Setup --> Initial Ram filesystem and RAM disk
(initramfs/initrd)support"를
"../mydroid/out/target/product/sam9m10/root" 로 설정해서 out/root 의 내용을 기반으로
Kernel의 uImage에 RootFS를  포함하게 했습니다.

그런다음 올리고 커널과 android를 컴파일 해서 sam-ba tool (atmel download tool) 로
0x200000에 uImage(kernel), 0x500000에 system.img(android),0x6400000에 userdata.img(android)를
올렸습니다.

그리고 uboot env설정을
setenv bootargs 'mem=128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=yaffs2 init=/init rootdelay=1'
또는
setenv bootargs 'mem=128M console=ttyS0,115200 root=/dev/mtdblock0'
이렇게 두가지로 바꾸고 부팅을 시켰더니 .....


-------------------------------------------------------------------------------------------
rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
atmel_mci atmel_mci.0: Using dma0chan0 for DMA transfers
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 11, 1 slots
atmel_mci atmel_mci.1: Using dma0chan1 for DMA transfers
atmel_mci atmel_mci.1: Atmel MCI controller at 0xfffd0000 irq 29, 1 slots
Freeing init memory: 408K
Warning: unable to open an initial console.
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
block 425 is bad
block 426 is bad
block 583 is bad
android_usb gadget: high speed config #1: android
android_usb gadget: config #1
yaffs_read_super: isCheckpointed 0
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs_read_super: isCheckpointed 0
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
block 393 is bad
yaffs_read_super: isCheckpointed 0
init: cannot find '/system/bin/sh', disabling 'console'
init: cannot find '/system/bin/servicemanager', disabling 'servicemanager'
init: cannot find '/system/bin/vold', disabling 'vold'
init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
init: cannot find '/system/bin/app_process', disabling 'zygote'
init: cannot find '/system/bin/mediaserver', disabling 'media'
init: cannot find '/system/bin/installd', disabling 'installd'
init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
init: cannot find '/system/bin/keystore', disabling 'keystore'
enabling adb
adb_open
adb_release
adb_open
android_usb gadget: high speed c
-------------------------------------------------------------------------------------


라고 뜨고 멈춰버립니다.

대충 원인을 생각하기에
1. system 폴더가 yaffs2로 mount가 잘못되었나??  
-> out/root/에 있는 init.rc에는 mount yaffs2 mtd@system /system 이라고 mount를 하기는 했음.
   근데 이게 잘못되었나?
  
2. sam-ba로 system.img를 nan에 write 할 때 잘못되었나??  
-> 구글에서 찾으니 uboot에서 yaffs2 파일을 다운할 때는 nand.write.yaffs2라고 방식을 좀 틀리게 해야 된다 더군요.

3. RootFS를 인식을 못하나?  
-> kernel menuconfig 로 merge 하기는 했는데 이렇게 하면 안되나?

등등 여러생각은 나지만 확실히 뭐가 문제인지 모르겠네요.. 고수님들의 의견을 부탁드립니다.

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 프로그래밍 관련 Q&A 게시판 입니다. woos 2016.04.09 22228
517 alloc과 free함수에 대해서 질문입니다. [1] 정재훈 2011.06.28 93581
» 안드로이드 system 폴더안의 파일을 인식못하는데.. [5] 김영일 2011.04.14 69650
515 x86에서 ZONE_DMA 영역의 사용 [1] 홍문화 2011.05.02 58150
514 커널에서 page alloc에 관해서 [1] 미다리로23 2017.02.05 34540
513 디바이스 드라이버 모듈에서 작성한 함수를 커널에서 사용하는 방법 [1] 개짖는소리 2017.02.06 27016
512 Linux kernel의 CFS(Completely Fair Scheduling) 스케줄러에서 time slice 구하는 방법? [10] 김재호 2010.04.30 25210
511 "만들면서 배우는 OS..." 4장 kernel.asm 중 idtr 설정 질문드립니다 쿨쿨 2013.06.18 24937
510 리눅스 스케줄러 관련 [9] 홍문화 2011.02.23 22940
509 NFS NAS SAN 이란 무엇인가? file 박은병 2010.04.13 21877
508 s3c2440기반의 리눅스 커널 분석 중 MM관련 질문입니다. 유태경 2007.09.02 21522
507 /dev 폴더에 있는 node파일 중에서 어떤 것을 open해야 플래쉬를 사용할 수 있을까요? [1] 박종주 2012.02.17 19849
506 sparsemem에 대한 질문이 있습니다. [5] 안정모 2010.03.20 19717
505 16기 리눅스 커널 스터디 C조 18주차 질문입니다. [3] cien 2019.10.12 18796
504 tty, tty0, console, vc 는 각각 뭐하는 디바이스인지? [3] 이창만 2008.12.04 18547
503 ARM A8 이상의 프로세서를 공부할 때 스터디 방향 [4] 유강희 2011.06.15 18506
502 임베디드 OS 만들기 내용과 관련하여 문의드립니다. [5] 송인재 2010.03.25 18321
501 far call 이란 무엇인가요? [4] 박한범 2010.04.13 17840
500 파일시스템에 관한 질문(Htree [6] 사앙조 2017.05.22 17059
499 SMP관련 질문입니다. [2] 컴퓨터 2017.04.13 16580
XE Login