问题标签 [jffs2]

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 回答
6833 浏览

linux - JFFS2 文件系统立即损坏(魔术位掩码 0x1985 未找到错误)

我创建了一个使用 squashfs 的 buildroot 根文件系统。它工作正常,现在我想创建一个覆盖 /home 和 /etc 目录的覆盖文件。

为此,我想创建一个包含几个文件的简单 jffs2 文件系统:

我使用的闪存芯片是 SST25VF064C,所以我相信它的擦除块大小是 64 KB,因此我从该文件夹创建了一个文件系统映像:

(令人惊讶的是,如果我设置 -e 32,甚至 -e 4,则生成的二进制图像根本不会改变???)。尽管如此,继续前进,我已将包含 home 的 mtdblock 对齐到 64KB,我的闪存布局如下所示:

在我的板上,我可以很好地挂载 mtdblock4,并且可以正确读取文件内容。但是,如果我修改文件并尝试保存它,则会vi抱怨:

现在,如果我卸载文件系统并重新安装它,我会立即开始收到投诉:

我想现在我的文件系统已经损坏了......我真的不明白它的原因......有什么想法我哪里出错了?谢谢大家的建议。。

0 投票
2 回答
459 浏览

linux - 为什么 jffs2 通过“df”命令总是显示 388KB 作为已用空间?

为什么 jffs2 通过“df”命令总是显示 388KB 作为已用空间?

我有两个 mtd 分区,一个是 640KB,另一个是 1024KB。擦除总闪存后,两种情况下始终显示 388KB 的已用空间。

请帮助我,为什么它会显示这种行为?

0 投票
1 回答
968 浏览

caching - 处于 D 状态的用户进程使用 Linux 2.6.24 和 arm 处理器导致看门狗重置

大多数用户空间进程在单元运行大约 3-4 天后进入 D 状态,该单元在 ARM 处理器上运行。从顶部 o/p 我们可以看到处于 D 状态的进程正在等待系统调用“page_fault”和“squashfs_readpage”。最终这会导致看门狗复位。进入 D-sate 的过程需要非常长的时间才能恢复。

以下是系统最终出现故障时的顶级 o/p:

一个更有趣的观察是,当系统陷入这个问题时,我们可以始终看到“mtdblockd”进程在顶部 o/p 中运行。我们在这个单元上禁用了交换。单元中没有明显的内存泄漏。

知道可能的原因是什么,这些过程卡在 D 状态吗?

0 投票
1 回答
608 浏览

kernel - jffs2 调度,而内核 2.6 上的原子错误

有没有人看到 jffs2 fs 的“原子调度”错误?它看起来在 gcd 内核线程中。确切的解决方法是什么?它在 2.6.39 内核上。如果不配置抢占,问题就不会发生。提前致谢。

注意:另一个未在内核中启用调试的跟踪显示:

0 投票
1 回答
493 浏览

linux-kernel - jffs2 gabrage 收集器即使安装了分区也会运行 RO

我使用 JFFS2 分区作为根分区,将它作为 RO 安装在命令行(和 fstab)中。它是 Montavista 5.0 linux (2.6.18)。

一切正常,除了当 linux 到达我的应用程序时,它由 jffs2_gcd_mtd3 忙了大约 15 秒,CPU 时间为 98%。这在我的情况下是不可接受的。

我搜索了 linux 代码,发现 GC 线程仅在安装 RW 时启动,但在我的情况下它仍然启动!

我试图将它安装为 rw 并卸载后记,但是......

提前谢谢。

更新:关于 GC 守护程序的声明是错误的 - 我看到它出错了。与我之前的 YAFFS2 相比,该问题的主要原因是 JFFS2 的工作非常缓慢。只是为了比较 - 我的 14MiB 的 ELF 格式应用程序是在 2-2.5 秒内从 YAFFS2 加载的,而从 JFFS2 加载大约需要 8 秒。!!!这让我觉得有些东西阻止了 Linux ......

现在,问题变成了:是什么让 JFFS2 变得如此缓慢!?!?再次,分区挂载 RO!

0 投票
1 回答
376 浏览

filesystems - 在 NAND 中将 jffs2 用于内核和 initramFS 的优势

在我们的系统中,我们使用 jffs2 将内核和 initramfs 写入 NAND 内存。我们希望尽快使用更强大的 ECC。但是新的 ECC 格式需要整个 OOB 区域,并且不适用于 JFFS2。

我还不确定,为什么我们需要使用 JFFS2。AFAIK 内核和 initramfs 在启动时被复制到 RAM 中,并从 RAM 中运行。它们不会经常更改(可能一年中更新几次)。

0 投票
1 回答
276 浏览

embedded-linux - zmodem 上传以奇怪的错误结束

我目前正在尝试通过zmodem将一些文件上传到一个带有busybox的嵌入式linux的小型系统。虽然大多数文件通过 9600 BAUD 连接需要很长时间,但有一个文件总是失败(cramfs_cmc-pu2_v2.45.img)。它大约有 4MB,也是最大的。对于上传,我使用Le Putty,一个支持 zmodem 的 Putty 分支。不幸的是,没有其他方法可以上传文件,因为该机器上的 ftp 服务器无法正常工作。

问题是上传总是以这种奇怪的东西结束(经过几个小时完全没有反馈):

我猜它的闪存用完了,但 df 只给了我

在这种情况下,由于文件系统是 jffs2,因此计算可用空间很困难。

也许有人知道如何用那个古老的协议解决这个问题。提前致谢。

编辑:与此同时,我将文件拆分为许多较小的文件并尝试上传它们。它总是在两个文件之后失败。这支持了没有足够可用空间的怀疑。

0 投票
1 回答
535 浏览

filesystems - 转换为 little-endian 时出现 jffs2dump 错误

dmesg:

jffs2转储:

这是什么原因造成的?我该如何解决?谢谢。

0 投票
0 回答
891 浏览

linux - JFFS2 CLEANMARKER 在安装设备时更改大小

在安装时 JFFS2 CLEANMARKER 大小从默认的 0x0C (12B) 更改为 0x0200 (512B)。
当我将测试映像安装在目标硬件(NOR)上时,我看到了这种行为,并且当我将任何文件复制到它时,文件系统大小以疯狂的方式增加。

测试台
我创建了一个 512kB 的“aa55”文件仅供参考,并用它创建了 JFFS2 文件系统未压缩映像(擦除块 128kB 页 4kB)

在目标上,图像被复制到 mtd14。(之前被抹掉了,看CLEANMARKER的大小是0x0c)

图像复制到 mtd15 设备并检查,显示...(可以看出图像复制正常,CLEANMARKER 大小仍为 0x0c)

现在是脑死亡问题,至少对我来说。mount -t jffs2 /dev/mtdblock14 /mnt/app2

CLEANMARKER 尺寸变化不仅会造成混乱,而且会浪费设备中的大量空间。为什么在挂载时会更改?可以避免吗?

欢迎您的建议/建议

目标描述:
Linux-2.6.31
NOR:Spansion S29GL512S(擦除扇区 128kB 页面大小 4kB x16dBUS)

0 投票
1 回答
1835 浏览

linux - mount JFFS2 导致返回 ECC 错误

我正在尝试在我的 linux 机器上挂载 1[MB] Flash 分区。我正在使用以下命令 -

其中 mtdblock6 是我要挂载的 mtd 块,/NVM 是文件夹。此操作导致以下错误

谁能建议为什么会这样?

先谢谢大家了!