Файл отсутствует или поврежден при монтировании 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