Mmc 命令导致 TF 卡不可读,IO 错误

mmc-utils 软件包 http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git

里面的 mmc 命令,在星光板子执行后,会导致 TF 卡掉线,不可使用,所有 IO 操作无法执行。

执行如下命令:
mmc writeprotect boot get /dev/mmcblk0

命令输出:
ioctl: Connection timed out
Could not read EXT_CSD from /dev/mmcblk0

终端错误输出:
Message from syslogd@Debian-StarFive at Jun 9 15:02:29 …
kernel:[11905.367019] EXT4-fs (mmcblk0p4): failed to convert unwritten extents to written extents – potential data loss! (inode 401071, error -30)

机器 IO 异常:
root@Debian-StarFive:~# dmesg
-bash: /usr/bin/dmesg: Input/output error

所有需要从磁盘读取的文件,均报 IO 错误,TF 卡彻底掉线。

此时机器并没有死机,可以ping, 但只有掉电重启,才能够恢复。

执行 mmc extcsd read /dev/mmcblk0 ,也有同样的问题。

不知道这个是硬件问题,还是内核驱动问题?

是编译使用的你们 github 上最新 5.18 内核,默认 config 配置。

我刚想试试,发现clone代码的时候出问题了,看起来地址错了。

麻烦再试一下这个地址:
https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git

在 Debian 中,这个软件包是可以用 apt install mmc-utils 直接安装的。

这个地址可以

我们看了下这个问题,输入mmc writeprotect boot get /dev/mmcblk0后是提示:Could not read EXT_CSD from /dev/mmcblk0,所以看起来TF卡要支持EXT_CSD register才能使用。
这个工具应该是eMMC上用的多。