ユーザー空間で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;
    }

関連情報