您尚未登录。

楼主 #1 2020-12-23 17:35:21

wujique
会员
注册时间: 2018-10-30
已发帖子: 168
积分: 162

imx6ul+openwrt的overlay问题

基于openwrt本来的imx6,使用外部米尔科技提供的内核,
成功移植了openwrt到im6ul上。
并且通过修改uboot分区,成功挂载了rootfs_data作为overlay分区。

但是现在有问题:

1. 启动log提示
mount_root: no usable overlay filesystem found, using tmpfs overlay

2. 用logread还可以看到
Thu Jan  1 07:26:16 1970 daemon.err mount_root: no jffs2 marker found
Thu Jan  1 07:26:16 1970 kern.notice kernel: [   30.074155] jffs2: jffs2_scan_eraseblock(): Node at 0x003e5ffc {0x1985, 0xe001, 0xe0011985) has invalid CRC 0x00000032 (calculated 0x7a744b16)
Thu Jan  1 07:26:16 1970 daemon.info mount_root: performing overlay whiteout
Thu Jan  1 07:26:16 1970 daemon.info mount_root: syncronizing overlay
Thu Jan  1 07:26:16 1970 daemon.err mount_root: failed to sync jffs2 overlay
Thu Jan  1 07:26:17 1970 daemon.info procd: - init complete -

3. 如果在/root目录创建文件,板子复位后,文件正常。

4. 如果修改/etc下的配置文件,板子复位后,文件被恢复成未修改之前状态。


rootfs用的是ubifs格式

本人linux新手,有高手指点下吗?

先谢了!

离线

楼主 #2 2020-12-23 18:25:26

wujique
会员
注册时间: 2018-10-30
已发帖子: 168
积分: 162

Re: imx6ul+openwrt的overlay问题

测试发现,其实在/etc/config下创建新文件也是可以的,就是修改配置文件会被还原。

离线

#3 2020-12-23 18:27:23

raspberryman
会员
注册时间: 2019-12-27
已发帖子: 503
积分: 465

Re: imx6ul+openwrt的overlay问题

make menuconfig 里面有一个sect 4k的选项去掉试一试?

离线

楼主 #4 2020-12-24 18:37:51

wujique
会员
注册时间: 2018-10-30
已发帖子: 168
积分: 162

Re: imx6ul+openwrt的overlay问题

raspberryman 说:

make menuconfig 里面有一个sect 4k的选项去掉试一试?

感谢答复。
我看了下,这个sect应该只是针对nor flash吧?
我这里是nandflash。

还有个现象,在etc下创建的文件,如果在硬件复位进入命令行后立刻查看,
没有这个新文件,但是过一会,新创建的文件就会出现。
但是被修改过的network配置文件,永远都不会出现修改的内容。
说明 overlay流程有问题?

离线

楼主 #5 2020-12-29 14:44:06

wujique
会员
注册时间: 2018-10-30
已发帖子: 168
积分: 162

Re: imx6ul+openwrt的overlay问题

调试:

每次更新设备的固件,通过mfgtool下载内核和rootfs,并且把rootfs_data区域擦除。
启动开始preinit,mount_root检测rootfs_data分区开头,没发现jffs2标志,所有 不 挂载rootfs_data做为overlay。
过一会,流程会重新执行mount_root,并且,不知道哪个地方,会创建jffs2文件系统,但是,创建的位置是rootfs_data分区的最后1块。

重启后,mount_root还是检测rootfs分区的第一块,没有发现jffs2,,,,,就会重新创建一些配置文件,这些配置文件时间戳较新。

等过一会,jffs2起来,做为overlay的时候,就不会覆盖新文件,所以,配置文件被还原了。

那问题来了,如何解决?为什么会这样?哪里没配置对?

离线

#6 2021-06-07 20:15:35

thammer
会员
注册时间: 2020-07-20
已发帖子: 2
积分: 1

Re: imx6ul+openwrt的overlay问题

请问你的问题解决了吗?我遇到了类似的问题,overlayfs最终是挂在tmpfs里面,而不是rootfs_data那个分区。以可交流下吗?

离线

#7 2021-06-10 14:22:26

thammer
会员
注册时间: 2020-07-20
已发帖子: 2
积分: 1

Re: imx6ul+openwrt的overlay问题

这个问题我解决了,首先我的是squashfs(rootfs) + ubifs(rootfs_data),在nandflash上使用squashfs需要注意坏块的问题,所以需要ubiblock + squanshfs,内核打开CONFIG_MTD_UBI_BLOCK。然后/lib/preinit/80_mount_root脚本里面,在mount_root前加入对mtd6(rootfs_data)的操作:

  ubiattach /dev/ubi_ctrl -m 6
  [ $? -ne 0 ] && {
          ubiformat -y /dev/mtd6
          ubiattach /dev/ubi_ctrl -m 6
  }

  [ ! -c /dev/ubi0 ] && {
          mknod /dev/ubi0 c 248 0
  }

  [ ! -d /sys/class/ubi/ubi0/ubi0_0 ] && {   #when erase rootfs_ubi
          ubimkvol /dev/ubi0 -N rootfs_data -S $(($(cat /sys/devices/virtual/ubi/ubi0/total_eraseblocks) - 100))
  }

  [ ! -c /dev/ubi0_0 ] && {
          mknod /dev/ubi0_0 c 248 1
  }
 
  mount_root

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn