사용자 공간에서 NAND 플래시 메모리의 불량 블록 목록 인쇄

사용자 공간에서 NAND 플래시 메모리의 불량 블록 목록 인쇄

NAND 플래시 장치에서 불량 블록 목록을 검색하고 덤프할 수 있는 사용자 공간 도구가 있습니까? mtdinfo명령줄 유틸리티를 확인 하고 검색 /proc도 했지만 /sys아무것도 찾을 수 없었습니다.

쉘 스크립트에서 사용하기에 적합한 것을 찾고 있습니다.

커널을 분석하여 init에서 불량 블록 정보를 인쇄할 수 있지만 dmesg더 나은 방법이 있기를 바랍니다.

답변1

필요한 작업을 수행하는 데 필요한 사용자 공간 유틸리티를 찾을 수 없습니다. 내가 찾은 가장 가까운 nanddump유틸리티는mtd-utils, 불량 블록을 포함한 NAND 콘텐츠를 덤프할 수 있습니다.

답변2

최근에 이 문제가 발생하여 오픈 소스 mtd-utils를 참조하여 C 코드를 작성했습니다. 핵심 부분은 다음과 같습니다.

    offset = 0;
    while (1) {
        int rc = ioctl(fd, MEMGETBADBLOCK, &offset);
        if (rc < 0) {
            perror("Failed to check bad block");
            close(fd);
            return 1;
        } else if (rc > 0) {
            // Block is bad, print the block information
            printf("Bad block at offset 0x%llx \n", offset);
        }

        offset += mtd_info.erasesize;
        if (offset > mtd_info.size)
            break;
    }

관련 정보