项目场景:
更换flash类型,需要适配系统,过程中会遇到一些奇怪问题,现总结如下
问题描述
系统挂载不了rootfs,不断重启,不断重启,打印一大段错误log.
VFS: Cannot open root device "ubi0:ubifs" or unknown-block(0,0): error -19
Please append a correct "root=" boot option; here are the available partitions:
0100 65536 ram0
(driver?)
0101 65536 ram1
(driver?)
0102 65536 ram2
(driver?)
0103 65536 ram3
(driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.90 #27
Call trace:
dump_backtrace+0x0/0x1a0
show_stack+0x14/0x20
dump_stack+0xa8/0xcc
panic+0x134/0x28c
mount_block_root+0x20c/0x2ec
prepare_namespace+0x98/0x1a8
kernel_init_freeable+0x1d0/0x1f0
kernel_init+0x10/0x100
ret_from_fork+0x10/0x1c
SMP: stopping secondary CPUs
Kernel Offset: disabled
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
原因分析:
不同的存储介质需要使用不同的文件系统,需要内核支持,
spi norflash 使用的jffs2文件系统
spi nandflash 使用的ubi文件系统
nandflash 使用的ubi文件系统
解决方案:
CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_UBIFS_FS_SECURITY=y