问题标签 [ubifs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1141 浏览

linux - 有没有办法创建虚拟 Linux MTD 设备,有点模拟实验

想知道我们是否可以在 Linux 上创建一个虚拟MTD设备或模拟一个MTD设备来玩UBIFS

我没有,我正在探索可以使用的选项UBIFS

0 投票
1 回答
4090 浏览

embedded-linux - UBI错误:ubi_io_read:错误-74(ECC错误)

我正在努力将 Linux 根文件系统写入 NAND 设备 (MT29F2G08ABAEAH4-IT:E)。

我有一个由 Yocto 创建的 UBI 图像,如下所示:

ubinize.cfg:

我能够使用“制造”Linux 中的以下命令成功编写文件系统:

这个解决方案有效但很乏味,因为我首先需要启动临时的“制造”Linux 来为生产 Linux 准备 RFS。所以我想直接从u-boot刷机。我已经阅读了多个来源(例如http://www.linux-mtd.infradead.org/faq/ubifs.html)和注释(例如http://lists.denx.de/pipermail/u-boot/2011- September/102740.html),但我仍然必须做错事,否则一定有错误。

1.nand写

我尝试nand write在 u-boot 2011.122016.01中使用该命令:

现在引导 Linux 会导致

2. 优比

另一个参加者是使用ubi u-boot 2016.01 命令:

尝试在 u-boot 中挂载卷ubifsmount my-rootfs失败:

尝试引导 Linux 会导致:


当然,我尝试了更多变体,但总是以错误 -74告终。任何人都可以看到我做错了什么,或者分享他们的工作解决方案吗?

0 投票
1 回答
783 浏览

u-boot - U-Boot:NOR+NAND:UBI 错误:

在特定情况下,我使用 NOR + NAND 配置,在 NOR 上使用 U-Boot,在 NAND 上使用 ubi 映像(内核 + fs)。

U-boot(2016)第一次可以读取UBI镜像并成功加载内核,没有任何错误如下。

但是当尝试重新启动时,下一次我会遇到如下 UBI 错误。

似乎在第一次读取 UBI 时,U-Boot 会在 UBI 标头或其他内容中进行一些标记或更改,但我无法清楚地找到导致此问题的原因以及我应该查看 u-boot 代码的哪一部分.

0 投票
1 回答
3178 浏览

linux-kernel - ubifs 卷与 mtd 分区

我正在将产品从 jffs2 文件系统迁移到 ubifs。

以前的 jffs2 设计包含 3 个 mtd 分区(2 个 ro 和 1 个 rw)。

转移到 ubifs - 我应该创建:

  • 一个 mtd 分区和 3 个卷
  • 3 个 mtd 分区,每个 1 个卷

基本上我在问我是否应该在移动到 ubifs 时用卷替换分区?(我的理解是,如果这样做,ubi 层将管理整个闪存)

谢谢,冉

0 投票
1 回答
1044 浏览

u-boot - U-boot UBI 直接从磁盘写入

我正在从 u-boot 将文件系统刷新到 nand。我将压缩文件系统存储在 mmc 中。通常我会做这样的事情:

我遇到的问题是 ext4load 将 ubifs 加载到 ram 中,并且 fs 超过了可用的 ram 数量。

有没有办法直接从mmc写fs到nand?像这样的东西:

0 投票
1 回答
1119 浏览

linux - 检测 MTD 分区是否为 UBI 格式

是否有可靠的方法可以知道 MTD 分区(例如 /dev/mtd0)是否已经被 UBI 格式化?我打算在启动脚本(bash)中进行这样的测试,该脚本仅在 UBI 格式的 MTD 分区上调用 ubiattach。对我来说,“blkid”似乎没有提供任何关于 mtd 分区的信息。我也无法在“/sys/class/mtd/”中找到相关条目。

0 投票
0 回答
1351 浏览

linux - UBIFS 更新后的读取错误

在现有 UBI 分区上的新 UBI 卷中创建 UBIFS 文件系统后,我遇到以下消息。

这发生在通过以下方式读取 UBI fs 上的所有文件时tar -cf /dev/null *

安装看起来像这样:

复制率是大约 20 个序列中的一个:ubirmvol, ubimkvol(256MB), 在已安装的 UBIFS 中解压 rootfs.tgz (20MB, 40MB 解压), umount, ubidetach, sync, reboot. 没有创建 xattrs。测试期间没有发生断电。

该板在 ARM 板上运行 3.18.80 内核。我测试了其他相同的测试板,只有 NAND 芯片制造商不同。

CONFIG_MTD_UBI_FASTMAP发生错误时我已启用,但我没有使用明确的 fastmap boot cmdline 选项。我尝试使用重新构建的内核安装 ubifs,该内核在问题重现后禁用了配置选项,但仍然出现读取错误。

在阅读了较早的类似错误报告后,我还尝试使用应用了“ubifs:Fix journal replay wrt xattr nodes”补丁 [1] 的内核进行安装,但一旦在 NAND 上重现,读取错误仍然存​​在。

[1] https://patchwork.ozlabs.org/patch/713213/

umount除了只是,在运行之前,或者关于可用空间修复之外ubidetach, 是否有一些特殊要求?离线创建 fs 图像而不是通过在这里解包会有所不同吗?使用 linux v4.14 中涉及 fs/ubifs 的樱桃挑选提交进行测试是否有帮助?syncrebootmkfs.ubifstar

0 投票
1 回答
465 浏览

linux-kernel - UBI 错误:ubi_compare_lebs:不支持的闪存 UBI 格式

我需要创建一个基于 ubi 的分区,同时执行 ubiattach 以下错误即将到来(29MiB 分区)

我可以使用 2MiB 附加和挂载一个分区 .. 29 MiB 分区正在发生问题。

有人可以帮忙吗

内核版本:3.10.14

[root@root:~]# ubiformat /dev/mtd6 ubiformat:mtd6(nor),大小 30408704 字节(29.0 MiB),928 个 32768 字节(32.0 KiB)的擦除块,最小。I/O 大小 256 字节

libscan:扫描擦除块 927 -- 100 % 完成

ubiformat:928 个擦除块具有有效的擦除计数器,平均值为 0

ubiformat:格式化擦除块 927 -- 100 % 完成

[root@root:~]# ubiattach /dev/ubi_ctrl -m 6

[2033.369743] UBI:将 mtd6 附加到 ubi0

[2033.373794] UBI 断言在 io_init 中失败,位于 673(pid 116)

[2033.379396] CPU:0 PID:116 Comm:ubiattach 未污染 3.10.14-svn3 #13

[ 2033.386388] Stack : 00000006 8003b6c0 00000000 805a0000 00000000 00000000 00000000 00000000 00000000 00000000 805a2e2a 0000003c 8198c1d8 81a0c800 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 8091fd00 8091fd74 804c8d10 805321c7 8003cb24 774cd000 804c8d10 00000000 00000074 8198c1d8 8091fce8 ...

[ 2033.423436] 呼叫跟踪:

[2033.425980][<80020ca4>]show_stack+0x48/0x70

[2033.430501][<80417f10>]dump_stack+0x20/0x2c

[2033.435040][<8027b568>]ubi_attach_mtd_dev+0x3b8/0xc80

[2033.440464][<8027c104>]ctrl_cdev_ioctl+0xe4/0x1d4

[2033.445538][<800e7b5c>]vfs_ioctl+0x2c/0x4c

[2033.449961] [2033.696833] UBI 错误:ubi_compare_lebs:不支持的闪存 UBI 格式

[2033.704427] UBI 错误:ubi_attach_mtd_dev:未能附加 mtd6,错误 -22

ubiattach:错误!:无法附加 mtd6 错误 22(无效参数)

0 投票
1 回答
290 浏览

filesystems - 在 ubifs 卷上应用增量补丁

要通过用全新的内容替换 ubifs 卷来更新它,可以使用来自 mtd-utils 的 ubiupdatevol:

ubiupdatevol /dev/ubiX_Y /path/to/ubifs.img

有没有办法在 ubifs 卷上应用补丁而不是替换完整的内容?例如,仅应用二进制差异 b/w ubifs_base.img 和 ubifs_dest.img on /dev/ubiX_Y

0 投票
1 回答
305 浏览

shell - UBIFS:编辑过的文件不会被保存。如何将它们同步到NAND?

我将 UBIFS 用于 NAND 上的 rootfs。当我使用 nano 命令编辑 /etc/rc.local 之类的文件并保存时,“cat /etc/rc.local”当然会显示编辑后的内容。但是在移除电源(没有reboot 或poweroff 命令)并再次供电后,/etc/rc.local 的内容变为空。

我发现写入的数据在UBIFS中并没有立即写入NAND并写入缓存。(参考:http ://www.linux-mtd.infradead.org/faq/ubifs.html#L_empty_file )

我想在编辑后直接同步到 NAND。我找到的唯一解决方案是 fsync,但这应该在 C 程序中调用,并且需要文件描述符。Nano 命令等没有给我们文件描述符。所以我无法解决这个同步问题。

如何解决这个不同步到 NAND 的问题?有同步命令吗?如果我想在 UBIFS 中编辑和保存文件,是否必须使用 C 程序编辑文件并使用 fsync?