开发板的根文件系统启动不了的原因

一.  简介

本文总结一下目前遇到的开发板根文件系统起不来的一些原因。以方便以后遇到问题解决。

二.   开发板的根文件系统启动不了的原因

在学习 正点原子ALPHA开发板时,遇到根文件系统起不来的问题

具体问题:uboot正常启动,内核镜像(zImage)也正常启动了,最后到根文件系统起不来。

串口打印如下:

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.1.15 (wangtian@wangtian-virtual-machine) (gcc version 4.9.4 (Linaro GCC 4.9-2017.01) ) #3 SMP PREEMPT Tue Nov 14 00:31:58 CST 2023
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
....................................................

Kernel command line: console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs);
PID hash table entries: 1024 (order: 0, 4096 bytes)
....................................................
Registering SWP/SWPB emulation handler
UBI error: cannot open mtd 5, error -19
snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 16:22:45 UTC (58965)
VSD_3V3: disabling
can-3v3: disabling
ALSA device list:
  No soundcards found.
UBIFS error (pid: 1): cannot open "ubi0:rootfs", error -19VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0): error -19
Please append a correct "root=" boot option; here are the available partitions:
0100           65536 ram0  (driver?)
......................................................

1f00          524288 mtdblock0  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
random: nonblocking pool is initialized

其中关键信息如下:

UBIFS error (pid: 1): cannot open "ubi0:rootfs", error -19VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0): error -19

因为之前在 uboot命令模式下,手动设置 bootcmd与 bootargs参数,而 bootargs参数正好是设置了nand-Flash的各个文件的分区大小,其中包括 根文件系统的。怀疑可能是设置参数命令出错。

经过验证,设置 bootargs参数的命令出错,命令的最后多输入了一个分号 ";" 所导致的。

正确设置 bootargs参数的命令如下(命令的最后没有分号):

setenv bootargs 'console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)'

你可能感兴趣的:(linux)