创建包含坏块列表的 UBIFS 固件映像?
我有一个路由器,有两个固件分区,里面有相同的基于 UBI 的固件映像。它们都因 NAND 块损坏而损坏。不过,我可以使用引导环境刷新新的固件映像。但这并没有多大帮助,因为在闪存过程中我得到了以下几个信息: nandflash_block_erase():尝试擦除坏的nand块XXX 所以这是我的问题:是否可以创建一个包含坏块列表的 UBI 映像,以便这些块基本上不会被包含的 UBI 卷使用? 谢谢! ...
我有一个路由器,有两个固件分区,里面有相同的基于 UBI 的固件映像。它们都因 NAND 块损坏而损坏。不过,我可以使用引导环境刷新新的固件映像。但这并没有多大帮助,因为在闪存过程中我得到了以下几个信息: nandflash_block_erase():尝试擦除坏的nand块XXX 所以这是我的问题:是否可以创建一个包含坏块列表的 UBI 映像,以便这些块基本上不会被包含的 UBI 卷使用? 谢谢! ...
我正在开发一个嵌入式Linux系统(Linux-5.10.24),并且有一个原始的NAND FLASH作为存储设备,其上使用UBI/UBIFS作为文件系统。 现在我正在尝试测量和比较有压缩和没有压缩的UBIFS性能,所以我做了以下测试。 我的期望是压缩的文件读/写不应该比没有压缩更好。 用于dd测试UBIFS读写。首先运行生成要读写的dd if=/dev/urandom of=/tmp/aaa bs=131072 count=128文件。 这是结果。aaa 挂载 UBIFS 并启用压缩(默认模式), Writing: 2.6MB/s, Reading: ...
我正在开发嵌入式 Linux (kernel-5.24),其中 UBIFS 用作 rootfs 和用户配置数据的文件系统。 现在我正在尝试生成一个 UBI 映像以直接从工厂内刻录 NAND 闪存 (128MB)。 正如我所说,我的系统中有2个UBI卷,一个是rootfs(rootfs.ubifs),另一个是用户配置(usrconf.ubifs),ubinize.cfg如下, [ubifs_volume] mode=ubi image=rootfs.ubifs vol_id=0 vol_size=56MiB vol_type=dynamic vol_align...
我正在开发嵌入式 Linux 系统(kernel-5.24),开发主机在 Windows 中运行 WSL2。 嵌入式系统中有一块128MB的NAND FLASH(PEB为128KiB,页大小为4096字节,有1024个PEB)。现在我想使用 ubinize 在 MTD2 上创建一个 UBIFS 卷,这是最后一个 MTD 分区,其大小为 0x7700000 (119MiB)。 这是我正在使用的 ubinize.cfg, [ubifs] mode=ubi image=ubifs.rootfs vol_id=0 vol_size=119MiB vol_type=d...
我正在开发一个嵌入式Linux系统,内核是5.10.24,并且使用MTD上的UBIFS。 测试团队进行了一个测试,即写入磁盘文件(依次为open、write、close),然后关闭系统电源。上电后,磁盘文件为空,没有真正写入数据。发现文件写入后,延迟1分钟左右,然后重启系统,文件就更新了! 我做了一些研究并得到了关注。 ubifs 创建一个内核线程ubifs_bgt0_0,每大约 30 秒调度一次。它将缓冲区写入块层(也许我错了)。 为wbuf创建ubifs_bgt0_0定时器,定时器的周期设置为dirty_write_interval,定义为unsign...
我的目标是获得 UBI 文件系统的 root 访问权限。我用了ubi_reader使用命令获取我的文件(rootfs.ubi)的描述。这是我使用的命令: ubireader_display_info rootfs.ubi 接下来,我将文件从 rootfs.ubi 提取到我的 Linux 子系统(我使用 WSL)并修改了必要的文件。为了将文件重新打包为 .ubi 格式,我使用了乌比尼泽和这个配置文件: 然后我运行命令 ”ubinize -o rootfs.ubi -p 256KiB -m 2048 -s 2048 cfg.ini” 这会将文件一起打包到 U...
我想询问 2021 年 UBIFS 对 MLC NAND 的支持情况。 我最近推出了一款配备 IMX6ULL 和原始 MLC NAND 闪存的设备。我已经构建了 Linux 5.4 内核、u-boot 和 rootfs(使用 buildroot),使用 MLC NAND 闪存将它们刷新到我的设备,并从 dmesg 错误中得知 ubifs 不支持 MLC。在此提交中删除了支持:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b5094b7f135be 然...
如果我有一个带有原始 NAND 闪存的嵌入式系统,带有坏块表等,据我所知,分区的最佳方法是将它们设置为全民基本收入卷在 MTD 之上。 UBI 负责磨损均衡,MTD 处理擦除块和坏块。有关于此的一些详细信息在这一页。 在嵌入式系统上,通常,引导加载程序阶段和 Linux 内核将使用某种特定于硬件供应商的安全引导进行验证,然后根文件系统通常采用 ubiblock + 的形式dm-验证+南瓜文件系统如上所述这里。这将是只读的,并且 dm-verity 负责身份验证。 为了实现 rw 分区,通常泛素化用来。 但是为了在块设备上实现安全存储(又名可读写加密存储),我...
我使用的是基于 Linux 的交换机,由于一些已知的错误,它创建了许多日志。问题是日志文件甚至超过了物理闪存大小。请问这种状态下flash是怎么回事?我尝试将日志文件下载到windows平台并读取。实际大小和内容正常。典型内容如下: Jan 3 00:00:02 SWITCH : mac-address 000e.c6c1.3a03 vid 1 move from interface eth0/7 to interface eth0/5 Jan 3 00:00:02 SWITCH : mac-address 000e.c6c1.3a03 vid 1 mo...
我不久前转储了一个 NAND 闪存,并使用binwalk. Binwalk 可以找到 SQUASHFS 文件系统,但不幸的是,无法检索数据,因为它安装在 UBI 之上,既没有unsquashfs实用程序也sasquatch无法执行某些操作。 不过binwalk也可以找到 UBI 镜像。因此,我的下一个方法是从该图像中提取内容,最终获得 squashfs 文件系统。 为此,我想使用该ubireader工具(https://github.com/jrspruitt/ubi_reader)。 ubireader_display_info给了我以下输出: U...
在我的 NAS 上运行 Debian 多年。 Vanilla Debian 与 linux-image-kirkwood/linux-image-kernel。引导加载程序是u-boot。 对于 Debian Stretch (4.9.0-11-marvell),一切都很好:u-boot 将参数传递mtdparts=orion_nand:896k(u-boot),128k(u-boot-env),-(root)给 Linux,Linux 使用它来映射 NAND,并且可以愉快地将第三个分区挂载/boot为 ubifs。 现在我升级到 Buster(内核 4...
我正在关注Bootlin的嵌入式Linux培训其目的是在一个嵌入式Linux系统上Atmel SAMA5D4 Xplained 板(理论幻灯片,实用实验室说明)并且我被困在将整个系统放在 NAND 闪存上。 他们要求我将 DTB、内核、根文件系统和数据文件系统放入要写入闪存的 UBI 映像中,但一旦闪存,我就无法访问 UBI 分区(访问失败,错误代码为 22,或者 - 22 在嵌入式 Linux 环境中)。 详细说明 (要查看我的实际问题,请转到问题末尾) 在 U-Boot 中,分区定义如下mtdparts: device nand0 <at...
使用 systemd 241 在内核 4.20.17 上运行 Debian Buster: +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid 我的 nand (/dev/mtd3) 分区上有两个 ubifs 卷: ubi0:rootfs on / ...
我正在尝试使用压缩的 squashfs ubi 卷作为我的根文件系统。这个想法是有两个 ubi 卷。第一卷包含只读的 squashfs 文件系统。第二卷可调整大小并使用剩余的闪存空间。它包含一个可写的 ubifs 文件系统。这两个 ubi 卷将在启动后使用 overridefs 进行覆盖,以便我拥有一个可写文件系统,能够通过格式化第二个 (ubifs) 卷来恢复到出厂状态。 我知道squashfs仅适用于块设备,因此我使用gluebi驱动程序在ubi卷之上模拟它们(这为每个ubi卷创建mtdx和mtdblockx): CONFIG_SQUASHFS=y ...
我使用 UBIFS 作为 rootfs。我想检查 / 中每个目录的大小。 当我用 du 命令检查时,它显示大于 mtd 大小。您能告诉我如何检查每个目录的正确大小吗? 细节 $ du -sh / 508M / Physical Erase Block (PEB) is 128KB. Logical Erase Block (LEB) of UBI is 124KB. mtdinfo command shows as follows: mtd4 Name: rootfs Type: ...