This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5726:从 eMMC 运行 ext4-FS 错误

Guru**** 2540720 points
Other Parts Discussed in Thread: AM5726

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/818118/linux-am5726-ext4-fs-errors-running-from-emmc

器件型号:AM5726

工具/软件:Linux

大家好、

我刚刚完成了 AM5726电路板从 TI-SDK 3.02.00.05到 TI-SDK 5.01.00.11的迁移。

运行 swupdate 从 SDCard 刷新 eMMC 后、我看到一系列 ext4-fs 错误。 此外、从 eMMC 引导后、文件系统似乎会受到严重损坏。

这似乎是已知的 Linux 内核问题。 它似乎是为内核版本4.19x 和4.20.x 修复的 我想知道 TI SDK 5.x 中包含的 Linux 内核4.14.x 是否有反向移植修复程序? 我在 发行说明中没有发现此特定问题。


blk-MQ 直接问题导致的磁盘 IO 不正确可能导致文件系统损坏

ext4-fs 错误(器件 sda7):ext4_iget:4831:inode

 

分区脚本

===========================

Prepare_eMMC (){
   
  fw_setenv 出厂模式0

  echo 0 >/sys/block/mmcblk1boot0/force_ro
  DD if=/dev/zero of=/dev/mmcblk1boot0 bs=512 count=4096
  DD IF=/run/media/mmcblk0p1/MLO of=/dev/mmcblk1boot0 BS=512
  DD if=/run/media/mmcblk0p1/u-boot.img of=/dev/mmcblk1boot0 BS=512 SEEse=768

  卸载/dev/mmcblk1p1
  卸载/dev/mmcblk1p2
  卸载/dev/mmcblk1p3
  睡眠1
  echo yes | parted -s /dev/mmcblk1 rm 1.
  echo yes | parted -s /dev/mmcblk1 rm 2.
  echo yes | parted -s /dev/mmcblk1 rm 3.

  parted -s /dev/mmcblk1 mkpart primary ext4 0% 40%
  parted -s /dev/mmcblk1 mkpart primary ext4 40% 80%
  parted -s /dev/mmcblk1 mkpart primary ext4 80% 100%
  睡眠1
  卸载/dev/mmcblk1p1
  卸载/dev/mmcblk1p2
  卸载/dev/mmcblk1p3
  睡眠1
  echo yes | mkfs.ext4 /dev/mmcblk1p1
  echo yes | mkfs.ext4 /dev/mmcblk1p2
  echo yes | mkfs.ext4 /dev/mmcblk1p3
  mount_if mmcblk1p1
  mount_if mmcblk1p2
  mount_if mmcblk1p3
  CD /run/media/mmcblk0p3

  swupdate -v -H board:3.50 -I board_3.5.swu -e board、eMMC-install >> recovery。$timestamp.log 2>&1
  fw_setenv mmcdev 1.
  重新启动

 

 

下面列出了 dmesg 日志
===========================

root@am57xx-evm:~# stat /
  File: /
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: b311h/45841d    Inode: 2           Links: 21
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-02-26 06:27:20.000000000
Modify: 2019-02-26 06:34:41.000000000
Change: 2019-02-26 06:34:41.000000000

root@am57xx-evm:~# dmesg | grep -i ext4 [ 0.000000] Kernel command line: console=ttyS2,115200n8 net.ifnames=0 biosdevname=0 root=PARTUUID=d093c9e2-01 rw rootfstype=ext4 rootwait [ 3.795105] EXT4-fs (mmcblk1p1): warning: mounting fs with errors, running e2fsck is recommended [ 3.805298] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null) [ 3.813458] VFS: Mounted root (ext4 filesystem) on device 179:17. [ 4.999205] EXT4-fs (mmcblk1p1): re-mounted. Opts: (null) [ 8.168201] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null) [ 8.213794] EXT4-fs (mmcblk1p3): mounted filesystem with ordered data mode. Opts: (null) [ 8.228680] EXT4-fs (mmcblk0p3): mounting ext3 file system using the ext4 subsystem [ 8.528818] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4331: comm grep: checksum invalid [ 8.537106] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4033: comm grep: checksum invalid [ 8.550659] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4019: comm grep: checksum invalid [ 8.552701] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4509: comm grep: checksum invalid [ 8.555045] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4697: comm grep: checksum invalid [ 8.556233] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #3908: comm grep: checksum invalid [ 8.557062] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #3872: comm grep: checksum invalid [ 8.558947] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4474: comm grep: checksum invalid [ 8.575134] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4216: comm grep: checksum invalid [ 8.576337] EXT4-fs error (device mmcblk1p1): ext4_iget:4723: inode #4078: comm grep: checksum invalid [ 9.029010] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null) [ 9.042961] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem [ 9.139316] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) ... [ 8.852095] EXT4-fs error: 356 callbacks suppressed [ 8.852102] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm modprobe: bad extra_isize 11640 (inode size 256) [ 8.871310] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mount.sh: bad extra_isize 11640 (inode size 256) [ 8.885920] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mkdir: bad extra_isize 11640 (inode size 256) [ 8.901446] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm basename: bad extra_isize 11640 (inode size 256) [ 8.915776] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm grep: bad extra_isize 11640 (inode size 256) [ 8.930319] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm readlink: bad extra_isize 11640 (inode size 256) [ 8.945352] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mkdir: bad extra_isize 11640 (inode size 256) [ 8.959794] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm expr: bad extra_isize 11640 (inode size 256) [ 8.974192] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm mount: bad extra_isize 11640 (inode size 256) [ 8.988109] EXT4-fs error (device mmcblk1p1): ext4_iget:4703: inode #3742: comm readlink: bad extra_isize 11640 (inode size 256)

(笑声)

[320.470812] EXT4-FS (mmcblk1p1):自上次 fsck 以来的错误计数:1354
[320.477043] EXT4-FS (mmcblk1p1):时间1551162840时的初始错误:ext4_iget:4703:inode 3729
[320.485638] EXT4-FS (mmcblk1p1):time 1551162334时的最后一个错误:ext4_iget:4723:inode 4427

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您发帖。

    我仔细查看了您引用的线程、该问题似乎是从4.19.0回归到4.19.3左右、然后得到修复。 我看不到任何证据表明它被认为存在于早期内核中。 我是否错过了表明这一点的东西?

    如果您从干净的文件系统开始、您是否看到此错误? 理想情况下、使用 SDK 随附的 FS 只需解压到分区、创建 SD 卡的方式与之大致相同。

    最好使用 SDK 随附的文件建立基准。 据我所知、我们还没有收到任何其他这方面的报告。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ron:

    感谢您的回复。

    很抱歉耽误你的时间、我想确保问题得到充分解决、我花了一段时间完成这个过程。 您建议从干净的文件系统开始、这表明预构建的二进制文件没有问题。

    该问题最终是构建问题。 TI SDK 和 Yocto u-boot 以及 Linux 内核依赖项的组合正被混合在一起。

    感谢您尝试加载预构建的二进制文件的提示。