您的司机是omap_hsmmc根据http://processors.wiki.ti.com/index.php/AM335x_MMC/SD_Driver%27s_Guide一些信息也在https://www.kernel.org/doc/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
经过一些web在 SD 卡中搜索 SMART 监控支持,我得到搜索查询mmc smartctl
(因为smartctl
是 Linux 中 *ATA 的 SMART 监控实用程序的名称,并且mmc
是实现MMC、SD、SDHC卡和控制器的内核子系统。我发现该错误已填充一些移动PC操作系统, https://code.google.com/p/chromium/issues/detail?id=315380作者:格温达尔·格里尼奥
如果根设备是 SATA 设备:
- 添加 hdparm -I /dev/sda 的输出
- 添加 smartctl -a /dev/sda 的输出
如果根设备是eMMC设备:
- 当 mmc-utils 将成为映像的一部分时,添加类似的命令输出。
听起来像是mmc-utils
它是为 SD 卡实施 SMART 的首选工具。有 home git 的mmc-utils
在 kernel.org 上:http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git/tree/
我在这里没有看到“SMART”,但是mmc-utils/mmc_cmds.c具有使用以下代码将自定义命令发送到卡的代码ioctl(fd, MMC_IOC_CMD, (struct mmc_ioc_cmd*) &ioctl_data)
fd 指向正确mmcblkX
设备(我希望这适用于大多数 SD 控制器)。 Johan RUDHOLM 的代码(来自 st-ericsson,2012,GPLv2):
int read_extcsd(int fd, __u8 *ext_csd)
{
struct mmc_ioc_cmd idata;
memset(&idata, 0, sizeof(idata));
memset(ext_csd, 0, sizeof(__u8) * 512);
idata.write_flag = 0;
idata.opcode = MMC_SEND_EXT_CSD;
idata.arg = 0;
idata.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC;
idata.blksz = 512;
idata.blocks = 1;
mmc_ioc_cmd_set_data(idata, ext_csd);
return ioctl(fd, MMC_IOC_CMD, &idata);
}
int write_extcsd_value(int fd, __u8 index, __u8 value)
{
struct mmc_ioc_cmd idata;
memset(&idata, 0, sizeof(idata));
idata.write_flag = 1;
idata.opcode = MMC_SWITCH;
idata.arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) |
(index << 16) |
(value << 8) |
EXT_CSD_CMD_SET_NORMAL;
idata.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC;
return ioctl(fd, MMC_IOC_CMD, &idata);
}
MMC_IOC_CMD 的一些文档和示例由 Shashidhar Hiremath 于 2011 年 12 月 20 日 14:54 在 LKML 中发布“[PATCH 1/1] mmc:用于测试 SD/MMC 命令和用于 MMC 卡重置的额外 IOCTL 命令的用户应用程序”
官方 userAPI (uapi)struct mmc_ioc_cmd
位于 Linux 源代码树中include/uapi/linux/mmc/ioctl.h:
6 struct mmc_ioc_cmd {
...
10 /* Application-specific command. true = precede with CMD55 */
11 int is_acmd;
...
51 * Since this ioctl is only meant to enhance (and not replace) normal access
52 * to the mmc bus device...