工具/软件:Linux
你(们)好
我正在寻找尝试调试为什么无法安装根文件系统的帮助。
我在基于 BeagleBoneBlack 的电路板上使用的是最新 SDK 上的 am355x
它旨在用作驻留在 SPI NOR 闪存上的小型文件系统。
我们使用的是 N25Q256芯片、页面大小为256字节、擦除大小为4 KiB、总共32 MIB。
它在设备树中被划分为:
&spi0{
status ="确定";
pinctrl-names ="默认值";
pinctrl-0 =<&spi0_PINs>;
SPI-FLASH@0{
compatible ="micron、n25q256a"、"JEDEC、SPI-NOR ";
SPI-max-frequency =<48000000>;
status ="确定";
reg =<25mp>
快速读取;
#address-cells =<1>;
#size-cells =<1>;
分区@0 {
标签="SPL";
reg =<0x00000000 0x00020000>;
}
;分区@20000 {
标签="u-boot";
reg =<0x00020000 0x00066000>;
};
分区@
@86000 {标签="DTB";reg = 0x00000000>
;分区0x96000内核= 0x000000>;
分区@5a0000{
标签="-";
reg =<0x005a0000 0x01a60000>;
};
};
};
在引导内核时、这些显示为:
[1.094466] m25p80 spi1.0:n25q256a (32768 KB) [1.098993] 5个在 MTD 设备 spi1.0 [1.104083]上找到的部件分区在"spi1.0"上创建5个 MTD 分区: [1.108555] 0x000000000000-0x000000020000:"SPL" [1.114190] 0x000000066200000-0x000000086000 :0x000000015000-0x000000064000-0x000000064000-0x000000064000-0x0006400000:[0x0000-0x00000006400]
我使用了 BitBake 和 processors.wiki.ti.com/.../Processor_SDK_Building_The_SDK 中的指令 来创建 ubifs 和 ubi
我修改了机器配置中的描述符、以尝试匹配我们正在使用的芯片。
这些修改是:
MKUBIFS_args ="-F -m 256 -e 126976 -c 110" UBINIZE_args ="-m 256 -p 4KiB"
然后、我通过 u-boot (SF 擦除和 SD 写入)将.ubi 文件传输到芯片的预期位置
- SPL、u-boot、内核和 devicetree 均可从 SPI 闪存加载并运行、而不会出现任何问题
但是,rootfs 无法安装,特别是无法"连接"mtd4:
[0.000000]内核命令行:console=ttyO0、115200n8 noinitrd ip=off RW ubi.mtd=4、256 noinitrd rootfstype=ubifs m em=256M root=ubi0:rootfs rootwait=1 [1.607933] ubi0:连接 mtd4 [1.617855] ubi0错误:validate_EC_HDR:错误数据偏移512、预期为320 [ 1.624236] ubi0错误:validate_EC_HDR:错误 EC 标头 [1.637806]擦除计数器标头转储: [1.641286] magic 0x55424923 [1.644762]版本1 [1.647511] EC 0 [1.667801] vd_dhdr_offset 256 [1.670715] data_offset 512 [1.673627] image_seq 645878812 [1.6770707070] HDR_CRC 计数器0x63941dbf [1.68767717]硬件名称:bdbdb0174[1.67174]f [1.674]f :bdbdbdb: 硬件转储[1.674[1.67174]f:硬件转储[1.674b0641.674]b064 通用 AM33XX (平展器件树) [1.713466]背板: [1.715779][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c) [1.737804] r7:00000000 R6:00000000 R5:cd824000 R4:cdd19340 [1.743107][ ](show_stack)从[ ](dump_stack+0x24/0x28) [ 1.767829][ ](dump_stack)从[ ](VALIDATE_EC_HDR+0xc0/0x12c) [ 1.775023][ ](VALIDATE_EC_HDR)从[ ](ubi_IO_READ_EC_HDR+0x168/0x218) [1.797806] r7:cd824000 R6:55424923 R5:cdd19340 R4:00000000 [ 1.803097][ ](ubi_io_read_ec_HDR)、来自[ ](ubi_attach+0x184/0x14b0) [ 1.817804] R10:cdd11a80 R9:c09a531c R8:00000000 r7:cd824000 R6:00000000 R5:cd824000 [ 1.825102] R4:00000000 [ 1.827465][ ](ubi-attach)从[ ](ubi_attach_MTD_DEV_0x640/bbf0) [ 1.857801] r10:fffff000 r9:00000140 r8:cdc73800 r7:cd824000 r6:00000000 r5:cdc73800 [ 1.865098] r4:00000001 [ 1.867463][ ](ubi-attach_MTD_dev)、来自[ ](ubi_init+0x1e4/0x26c) [1.887801] r10:fffff000 r9:c0865488 r8:c08654b4 r7:c090d680 r6:c090d684 r5:cdc73800 [1.895099] r4:00000000 [1.897462][ ](ubi-init)、来自[ ](DO_Oe_initcall+0x98/0x1e4) [1.917805] R10:00000000 R9:c08d3600 R8:000000a9 r7:cdd19280 R6:c091ac60 R5:c08f65d8 [1.925103] R4:c091ac60 [1.927478][ ](多个_initcall)、来自[ ](kernel_init_freeed+0x138/0x1cc) [1.957802] r10:00000008 r9:c08d3600 r8:000000a9 r7:c0907834 r6:c0914120 r5:c0964d80 [1.965102] r4:c0964d80 [1.967472][ ](kernel_init_freable)从[ ](kernel_init+0x18/0xf4) [1.987801] r10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c0680014 [1.995097] r4:c0964d80 [1.997461][ ](kernel_init)、来自[ ](RET_FANK_0x14/0x3c) [2.027801] R5:c0680014 R4:00000000 [2.031133] ubi0错误:ubi_IO_READ_EC_HDR:PEB 验证失败 [2.037279] ubi0错误:ubi_attach_MTD_dev:无法连接 mtd4、 rtc1286] 错误 :无法连接到 rtc1286](rtcr) 禁用 [2.04658] ALSA 设备列表: [2.087413]找不到声卡。 [2.109328] UBIFS 错误(pid:1):无法打开"ubi0:rootfs"、错误-19VFS:无法打开根设备"ubi0:rootfs"或 未知块(0、0):错误-19 [2.127837]请附加正确的"root="引导选项;以下是可用分区: [2.1356m块(0) [2.158792] 1f01 408 mtdblock1 (驱动程序?) [2.163487] 1f02 64 mtdblock2 (驱动程序?) [2.177811] 1f03 5160 mtdblock3 (驱动程序?) [2.182509] 1f04 27008 mtdblock4 (驱动程序?) [2.187803]内核紧急状态-未同步:VFS:无法在未知块(0、0)上安装根 FS [2.194875]-[结束内核紧急状态-未同步:VFS:无法在未知块(0、0)上安装根 FS
我在没有成功的情况下尝试了几种不同的 bootargs:
包括:
root=/dev/mtd4 root=/dev/mtdblock root=ubi0:rootfs
如果有人建议我做些什么,我将不胜感激。
此致、
Richard