Файл отсутствует или поврежден при монтировании jffs2

Я сталкиваюсь с двумя проблемами при установке jffs2 на NOR flash:

Я запускаю доску с squashfs в качестве rootfs, и я попытался смонтировать jffs2 на другой mtdblock, как показано ниже:
mount -t jffs2 /dev/mtdblock6 /tmp/jffs


После этого я копирую некоторые файлы в /tmp/jffs, но система выдает ошибку, когда файлы больше 4096 байт:
cp: write error: Input/output error

Затем я отключаю mtdblock и снова монтирую его, но файлы, которые я только что скопировал, исчезли.

Я подтвердил, что блок флэш-памяти был записан дампом /dev/mtd6 или /dev/mtdblock6, но после перемонтирования эти файлы не видны.

=====
Я открыл журнал printk и у меня появилось следующее сообщение, когда я помещал файл в смонтированную папку:
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00120814: 0x0219 instead Node totlen on flash (0x0000000c) != totlen from node ref (0x00000044)


и ниже сообщение появилось, когда я попытался повторно смонтировать mtdblock:
JFFS2 notice: (608) jffs2_get_inode_nodes: Node header CRC failed at 0x0e0050. {0000,9600,01e88b11,01000000}


Очень ценю, если есть какие-либо предложения.

1 ответ

Я тоже столкнулся с этой проблемой в u-boot/kernel. Это вызвано режимом адреса. Режим 3-байтового адреса SPI NOR flash используется только при размере 16 МБ или меньше. Для размеров более 16 МБ необходимо добавить свойствоSPI_NOR_4B_OPCODESк определению флэш-памяти NOR вspi_nor_ids[]определить вspi-nor.c

Другие вопросы по тегам