[smartmontools-support] [PATCH v4] libata: Add hwmon support for SMART temperature sensors
Douglas Gilbert
dgilbert at interlog.com
Fri Sep 14 21:38:36 CEST 2018
On 2018-09-14 02:20 PM, James Bottomley wrote:
> On Thu, 2018-09-13 at 16:22 +0200, Linus Walleij wrote:
> [...]
>> + /* Send ATA command to read SMART values */
>> + memset(scsi_cmd, 0, sizeof(scsi_cmd));
>> + scsi_cmd[0] = ATA_16;
>> + scsi_cmd[1] = (4 << 1); /* PIO Data-in */
>> + /*
>> + * No off.line or cc, read from dev, block count in sector
>> count
>> + * field.
>> + */
>> + scsi_cmd[2] = 0x0e;
>> + scsi_cmd[4] = ATA_SMART_READ_VALUES;
>> + scsi_cmd[6] = 1; /* Read 1 sector */
>> + scsi_cmd[8] = 0; /* args[1]; */
>> + scsi_cmd[10] = ATA_SMART_LBAM_PASS;
>> + scsi_cmd[12] = ATA_SMART_LBAH_PASS;
>> + scsi_cmd[14] = ATA_CMD_SMART;
>> +
>> + cmd_result = scsi_execute(ata->sdev, scsi_cmd,
>> DMA_FROM_DEVICE,
>> + buf, ATA_SECT_SIZE,
>> + NULL, &sshdr, 10 * HZ, 5, 0, 0,
>> NULL);
>
> Given that you're using scsi_execute and this would work on most SAS
> drives as well as SATA ones, why not use the SAS mode pages and we'll
> translate it to SATA in the existing libata-scsi SAT?
Fetch the SCSI Temperature Log page [0xd] with the LOG SENSE SCSI command.
See sat5r01a.pdf chapter 10.3.8 for how that should be translated
to ATA commands by libata and other SATLs.
Doug Gilbert
> That way this can work on all SCSI devices that support SMART not just
> the SATA subset.
>
> If you can't figure out how to do this initially, then simply
> separating smart from libata is a good first start so we can build on
> it in SCSI as well.
>
> James
>
>
More information about the Smartmontools-support
mailing list