小编Mat*_*dge的帖子

eMMC 卡的安全删除(BLKSECDISCARD 返回 EOPNOTSUPP)

我需要安全地擦除嵌入式系统中的 MMC 卡。然而,我的ioctl(BLKSECDISCARD)回报EOPNOTSUPP,(也是如此BLKDISCARD)。

MMC驱动通过读取内核代码,通过设置使能DISCARD QUEUE_FLAG_DISCARDkernel/linux/drivers/mmc/card/queue.c mmc_queue_setup_discard()调用如下:

if (mmc_can_erase(card))
    mmc_queue_setup_discard(mq->queue, card);
Run Code Online (Sandbox Code Playgroud)

其中mmc_can_erase()定义kernel/linux/drivers/mmc/core/core.c为:

int mmc_can_erase(struct mmc_card *card)
{
    if ((card->host->caps & MMC_CAP_ERASE) &&
        (card->csd.cmdclass & CCC_ERASE) && card->erase_size)
        return 1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

mmc_can_erase()需要满足什么条件?

是卡的特性、控制器、驱动程序、内核的构建方式还是其他什么?

理想情况下,我想启用该BLKSECDISCARD功能,但不确定我需要做什么,或者即使它可以在我的嵌入式系统上实现。能做到吗?

security sd-card erase linux-device-driver

3
推荐指数
1
解决办法
1775
查看次数

标签 统计

erase ×1

linux-device-driver ×1

sd-card ×1

security ×1