基于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新手,有高手指点下吗?
先谢了!
离线
测试发现,其实在/etc/config下创建新文件也是可以的,就是修改配置文件会被还原。
离线
make menuconfig 里面有一个sect 4k的选项去掉试一试?
感谢答复。
我看了下,这个sect应该只是针对nor flash吧?
我这里是nandflash。
还有个现象,在etc下创建的文件,如果在硬件复位进入命令行后立刻查看,
没有这个新文件,但是过一会,新创建的文件就会出现。
但是被修改过的network配置文件,永远都不会出现修改的内容。
说明 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的时候,就不会覆盖新文件,所以,配置文件被还原了。
那问题来了,如何解决?为什么会这样?哪里没配置对?
离线