기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요


몇달전에 yaffs2 관련해서 질문을 올려서 가능한 최신 커널에 UBIFS filesystem을 사용하라는 답변을 받았습니다.


http://www.aesop.or.kr/136937


다른 업무로 인해서 미루고 있다가 이제서야 진행을 하는데 막히는 부분이 있어 질문을 합니다.


현재 커널버전은 3.3.0을 사용하고 있으며 NAND Flash(SLC)에 UBIFS filesystem으로 구성을 하였습니다.


먼저 NFS로 부팅을 한 후에 다음과 같이 입력을 하여서 파일시스템을 다운로드 하였습니다.


$ flash_eraseall /dev/mtd3

$ ubiformat /dev/mtd3

$ ubiattach /dev/ubi_ctrl -m 3

$ ubimkvol /dev/ubi0 --name=rootfs -m

$ mount -t ubifs ubi0:rootfs /mnt

$ mnt로 이동 후 파일시스템 압축해제


이렇게 한 다음 UBIFS로 부팅을 하였는데 다음과 같은 메시지를 출력하네요.


...

Creating 4 MTD partitions on "davinci_nand.1":

0x000000000000-0x000000020000 : "params"

0x000000020000-0x0000000e0000 : "bootloader"

0x0000000e0000-0x0000002e0000 : "kernel"

0x0000002e0000-0x000020000000 : "filesystem"

davinci_nand davinci_nand.1: controller rev. 2.5

UBI: attaching mtd3 to ubi0

UBI: physical eraseblock size:   131072 bytes (128 KiB)

UBI: logical eraseblock size:    129024 bytes

UBI: smallest flash I/O unit:    2048

UBI: sub-page size:              512

UBI: VID header offset:          512 (aligned 512)

UBI: data offset:                2048

UBI: max. sequence number:       40

UBI: attached mtd3 to ubi0

UBI: MTD device name:            "filesystem"

UBI: MTD device size:            509 MiB

UBI: number of good PEBs:        4069

UBI: number of bad PEBs:         4

UBI: number of corrupted PEBs:   0

UBI: max. allowed volumes:       128

UBI: wear-leveling threshold:    4096

UBI: number of internal volumes: 1

UBI: number of user volumes:     1

UBI: available PEBs:             0

UBI: total number of reserved PEBs: 4069

UBI: number of PEBs reserved for bad PEB handling: 40

UBI: max/mean erase counter: 1/0

UBI: image sequence number:  445406140

UBI: background thread "ubi_bgt0d" started, PID 334


...


VFS: Unable to mount root fs via NFS, trying floppy.

List of all partitions:

1f00             128 mtdblock0  (driver?)

1f01             768 mtdblock1  (driver?)

1f02            2048 mtdblock2  (driver?)

1f03          521344 mtdblock3  (driver?)

No filesystem could mount root, tried:  ubifs

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)



그리고 UBIFS 유틸은 제가 직접 컴파일 한것입니다.


참고로 ubiattach /dev/ubi_ctrl -m 3 를 했을때 다음과 출력되었습니다.


$ ubiattach /dev/ubi_ctrl -m 3

UBI: attaching mtd3 to ubi0

UBI: physical eraseblock size:   131072 bytes (128 KiB)

UBI: logical eraseblock size:    129024 bytes

UBI: smallest flash I/O unit:    2048

UBI: sub-page size:              512

UBI: VID header offset:          512 (aligned 512)

UBI: data offset:                2048

UBI: max. sequence number:       0

UBI: attached mtd3 to ubi0

UBI: MTD device name:            "filesystem"

UBI: MTD device size:            509 MiB

UBI: number of good PEBs:        4069

UBI: number of bad PEBs:         4

UBI: number of corrupted PEBs:   0

UBI: max. allowed volumes:       128

UBI: wear-leveling threshold:    4096

UBI: number of internal volumes: 1

UBI: number of user volumes:     0

UBI: available PEBs:             4025

UBI: total number of reserved PEBs: 44

UBI: number of PEBs reserved for bad PEB handling: 40

UBI: max/mean erase counter: 0/0

UBI: image sequence number:  374206559

UBI: background thread "ubi_bgt0d" started, PID 790

UBI device number 0, total 4069 LEBs (524998656 bytes, 500.7 MiB), available 4025 LEBs (519321600 bytes, 495.3 MiB), LEB size 129024 bytes (126.0 KiB)


위와 같은 경험을 하셨거나 의심가는 부분이 있으시면 조언 부탁드리겠습니다.


SpecialCase

2016.11.05 01:29:25
*.177.158.129

해결하였습니다.


u-boot에서 bootargs를 잘못 설정하였습니다.


bootargs중에 root=ubi0:rootfs라고 입력했어야 했는데 ubi0:rootfs만 입력해서 위와 같은 현상이 나타났습니다.

고도리

2016.11.05 05:37:01
*.200.239.210

해결하셨다니 다행이네요.


어제 답글을 달까 하다가, 술먹고 정신이 메롱이라 오늘 저녁에 자세히 좀 보려고 했었는데, 다행입니다.

1달 전 쯤에 ubi관련 노가다를 좀 해서 예전 기억이 많이 돌아온 상태였거든요....^^


주말에 푹 쉬세용...ㅎ

List of Articles
번호 제목 글쓴이 날짜sort 조회 수

사용자 로그인