yaffs 관련 글도 읽어봤지만 이해가 가질 않습니다.
고수님들 좀 알려주세요..
여러문서들을 봤는데 EZ-X5 yaffs문서를 기준으로 질문좀 드리겠습니다.
일단 개념은 어느정도 이해한것 같습니다.
현재 사용하는 보드는 mds보드이구요 yaffs2패치까지는 되어있는것 같습니다.
yaffs커널패치를 해야하는데 이것은 이미 되어있었습니다.
커널소스에서 make menuconfig 들어가면 yaffs2메뉴가 체크되어있고
부팅후 cat /proc/filesystems하면 yaffs2가 보입니다.
그리고 파티션은 mtdblock1~4까지 나누어져있습니다.
mtdblock4가 userdata영역으로 표시되어 이영역을 마운트하려고
마운트를 아래와 같이 하면 세크먼트 오류가 발생합니다.
질문사항
1. 아래메시지로 봤을때 수정해야할 사항
2. 마운트할때 해당블럭이 yaffs2로 초기화해야하는지 해야한다면 방법은
(초기화 툴에 관련된 문서도 보았는데 어디서 어떻게 실행하는지 모르겠습니다.)
3. 현재 커널패치가 잘못되어있다면 다시 패치하는 방법
모르는게 아직 많지만 위 3가지에 대해서 알려주셨으면 합니다.
맨땅에 헤딩은 너무 어렵습니다.
root@MDS:~# mount -t yaffs2 /dev/mtdblock4 /tmp
yaffs: dev is 32505860 name is "mtdblock4"
yaffs: Attempting MTD mount on 31.4, "mtdblock4"
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c30f0000
[00000000] *pgd=32e02031, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1]
Modules linked in:
CPU: 0
PC is at nand_read_oob+0x74/0x210
LR is at nand_read_oob+0x68/0x210
pc : [<c01e2798>] lr : [<c01e278c>] Not tainted
sp : c0e3dbfc ip : 00000000 fp : c0e3dc38
r10: c0f66000 r9 : 00000000 r8 : c3062000
r7 : c0f66180 r6 : 00000000 r5 : 00400000 r4 : 00000800
r3 : 00000040 r2 : 00000000 r1 : 00000000 r0 : 00000000
Flags: Nzcv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000717F Table: 330F0000 DAC: 00000015
Process mount (pid: 784, stack limit = 0xc0e3c198)
Stack: (0xc0e3dbfc to 0xc0e3e000)
dbe0: c005e9e8
dc00: c005e368 0000003f c02ea5c8 00000040 00000000 00000000 00400000 00000000
dc20: c3062000 00000000 00000000 c0e3dc60 c0e3dc3c c01d7904 c01e2734 00000000
dc40: c0eb6be0 c0e4a400 00000000 00000000 00000000 c0e3dcc0 c0e3dc64 c0168edc
dc60: c01d7870 00000000 c0eb6be0 c01e1654 c01e5f5c c0e3dcc4 c0e3dca8 c0e3dc88
dc80: c01e3b5c c01e1634 00000000 00400000 00000000 c0e3dd50 c3062000 00000000
dca0: c0e3dd50 c0e3dd54 00000000 c30c4000 c03176c0 c0e3dd30 c0e3dcc4 c0169024
dcc0: c0168df8 00000001 a0000013 c043e5b0 c043e5a0 c043eb20 a0000013 c043e5b0
dce0: c043e5a0 c0e3dd1c c0e3dcf4 c0072964 c0072628 a0000013 c3062000 c3062000
dd00: 00000000 c03176c0 00000000 000003e0 c3062000 c3062000 00000000 00000001
dd20: 000003e0 c0e3ddc8 c0e3dd34 c01664b0 c0168f94 c045a000 c0072de4 c007287c
dd40: c305c800 00000000 c0e3dd54 c0161f64 c0072c38 c3062000 00000000 00000003
dd60: c3062000 c0e3dd88 c0e3dd74 c0161fcc c0161ffc c044c174 00000002 c0e3ddb0
dd80: c0e3dd8c c01624f0 c0042074 00000022 2b369f40 c3062000 000041b6 00000118
dda0: c2f18afc c3062000 00000118 0000000a c03176c0 00000000 000003e0 c0e3ddf0
ddc0: c0e3ddcc c0167b20 c016633c c3062000 c0e4a400 c2f18000 c03176c0 00000000
dde0: 00000002 c0e3de44 c0e3ddf4 c01606d8 c01676e0 c3066000 6264746d 6b636f6c
de00: c0e30034 c018b3dc c018acfc c0e3de44 c0e3de24 c00af988 c018b3d4 c0428058
de20: c2f18000 c0428040 00000000 c3066000 c3066000 c3066000 c0e3de54 c0e3de48
de40: c01608f0 c01601c0 c0e3de98 c0e3de58 c007e570 c01608dc 6264746d 6b636f6c
de60: c3060034 c3066000 c0e3de88 c0e3de78 c0e684c0 c04348f8 c04348a0 fffffff4
de80: c031795c c306b000 00000000 c0e3deac c0e3de9c c016091c c007e4a0 c01608cc
dea0: c0e3ded4 c0e3deb0 c007e7b8 c0160910 c3070000 00000000 c0e3df04 00000000
dec0: c0459000 c306b000 c0e3def4 c0e3ded8 c0094764 c007e76c 00000000 00000000
dee0: 00000000 c0e3df04 c0e3df70 c0e3def8 c0094d64 c0094704 c306b000 c3066000
df00: c3070000 c2f0c914 c04341a0 befabf37 00000010 c0e3df80 00000001 00000001
df20: 00000000 c0e3df78 c0ed0000 c0e3c000 befabf37 c0e3df50 c0e3df44 c005ee6c
df40: 00001000 c0e3df70 00000000 00000000 000a1060 c0459000 c0ed0000 c0e3c000
df60: befabf37 c0e3dfa4 c0e3df74 c00950c8 c0094bf4 c3066000 c3066000 c306b000
df80: c3070000 000a1050 c0ed0000 00000000 00000015 c0025ee4 00000000 c0e3dfa8
dfa0: c0025d40 c0095034 000a1050 c0ed0000 000a1060 000a3088 befabf37 c0ed0000
dfc0: 000a1050 c0ed0000 00000000 00000000 000a3088 00000000 befabf37 00000000
dfe0: 4019bb80 befabbf0 00067ca0 4019bb8c 60000010 000a1060 00000000 00000000
Backtrace:
[<c01e2724>] (nand_read_oob+0x0/0x210) from [<c01d7904>] (part_read_oob+0xa4/0xa8)
[<c01d7860>] (part_read_oob+0x0/0xa8) from [<c0168edc>] (nandmtd2_ReadChunkWithTagsFromNAND+0xf4/0x138)
r7 = 00000000 r6 = 00000000 r5 = 00000000 r4 = C0E4A400
[<c0168de8>] (nandmtd2_ReadChunkWithTagsFromNAND+0x0/0x138) from [<c0169024>] (nandmtd2_QueryNANDBlock+0xa0/0xf8)
[<c0168f84>] (nandmtd2_QueryNANDBlock+0x0/0xf8) from [<c01664b0>] (yaffs_ScanBackwards+0x184/0xc68)
[<c016632c>] (yaffs_ScanBackwards+0x0/0xc68) from [<c0167b20>] (yaffs_GutsInitialise+0x450/0x4cc)
[<c01676d0>] (yaffs_GutsInitialise+0x0/0x4cc) from [<c01606d8>] (yaffs_internal_read_super+0x528/0x6c4)
[<c01601b0>] (yaffs_internal_read_super+0x0/0x6c4) from [<c01608f0>] (yaffs2_internal_read_super_mtd+0x24/0x34)
[<c01608cc>] (yaffs2_internal_read_super_mtd+0x0/0x34) from [<c007e570>] (get_sb_bdev+0xe0/0x13c)
[<c007e490>] (get_sb_bdev+0x0/0x13c) from [<c016091c>] (yaffs2_read_super+0x1c/0x24)
r8 = 00000000 r7 = C306B000 r6 = C031795C r5 = FFFFFFF4
r4 = C04348A0
[<c0160900>] (yaffs2_read_super+0x0/0x24) from [<c007e7b8>] (do_kern_mount+0x5c/0xf0)
[<c007e75c>] (do_kern_mount+0x0/0xf0) from [<c0094764>] (do_new_mount+0x70/0xa0)
[<c00946f4>] (do_new_mount+0x0/0xa0) from [<c0094d64>] (do_mount+0x180/0x19c)
r7 = C0E3DF04 r6 = 00000000 r5 = 00000000 r4 = 00000000
[<c0094be4>] (do_mount+0x0/0x19c) from [<c00950c8>] (sys_mount+0xa4/0xe8)
[<c0095024>] (sys_mount+0x0/0xe8) from [<c0025d40>] (ret_fast_syscall+0x0/0x2c)
r8 = C0025EE4 r7 = 00000015 r6 = 00000000 r5 = C0ED0000
r4 = 000A1050
Code: ebfe819f e59b2004 e3a0c000 e59a3014 (e582c000)
Segmentation fault
root@MDS:~#
mkdir /aa
mount -t yaffs2 /dev/mtdblock4 /aa
해보세요...
안되면..........커널을 고쳐야 합니다.