ports/137177: sysutils/smartmontools: command13 fix

Dmitry Morozovsky marck at FreeBSD.org
Mon Jul 27 15:10:01 UTC 2009


>Number:         137177
>Category:       ports
>Synopsis:       sysutils/smartmontools: command13 fix
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 27 15:10:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Morozovsky
>Release:        FreeBSD 7-STABLE i386
>Organization:
Cronyx Plus LLC (RiNet ISP)
>Environment:
System: FreeBSD 7-STABLE 


>Description:

Cite from -stable@:

This is stable/7 i386:

$ smartctl -t select,568157535-568159000 /dev/ad10
...
Unrecognized command 13 in ata_command_interface()
Please contact smartmontools-support at lists.sourceforge.net
Error Write Selective Self-Test Log failed: Function not implemented

In smartmontools sources this is command WRITE_LOG.


>How-To-Repeat:

>Fix:

Submitted by: avg

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/sysutils/smartmontools/Makefile,v
retrieving revision 1.40
diff -u -r1.40 Makefile
--- Makefile	3 Jun 2009 18:12:29 -0000	1.40
+++ Makefile	27 Jul 2009 14:43:52 -0000
@@ -7,7 +7,7 @@
 
 PORTNAME=	smartmontools
 PORTVERSION=	5.38
-PORTREVISION=	6
+PORTREVISION=	7
 CATEGORIES=	sysutils
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
Index: files/patch-os__freebsd.cpp
===================================================================
RCS file: /home/ncvs/ports/sysutils/smartmontools/files/patch-os__freebsd.cpp,v
retrieving revision 1.4
diff -u -r1.4 patch-os__freebsd.cpp
--- files/patch-os__freebsd.cpp	21 May 2009 07:47:02 -0000	1.4
+++ files/patch-os__freebsd.cpp	27 Jul 2009 14:43:52 -0000
@@ -1,5 +1,8 @@
---- os_freebsd.cpp.orig	2008-03-04 23:09:47.000000000 +0100
-+++ os_freebsd.cpp	2008-03-14 13:52:37.000000000 +0100
+
+$FreeBSD$
+
+--- os_freebsd.cpp.orig
++++ os_freebsd.cpp
 @@ -272,7 +272,6 @@
  }
  
@@ -8,16 +11,32 @@
    return -1;
  }
  
-@@ -525,7 +524,7 @@
+@@ -341,6 +340,15 @@
+     request.count=512;
+     copydata=1;
+     break;
++  case WRITE_LOG:
++    memcpy(buff, data, 512);
++    request.u.ata.feature=ATA_SMART_WRITE_LOG_SECTOR;
++    request.u.ata.lba=select|(0xc24f<<8);
++    request.u.ata.count=1;
++    request.flags=ATA_CMD_WRITE;
++    request.data=(char *)buff;
++    request.count=512;
++    break;
+   case IDENTIFY:
+     request.u.ata.command=ATA_IDENTIFY_DEVICE;
+     request.flags=ATA_CMD_READ;
+@@ -525,7 +533,7 @@
      return -1;
    }
-
+ 
 -  if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
 +  if (((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) && ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR)) {
   #if __FreeBSD_version > 500000
      cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr);
   #endif
-@@ -924,6 +923,7 @@
+@@ -924,6 +932,7 @@
  static const char * fbsd_dev_prefix = "/dev/";
  static const char * fbsd_dev_ata_disk_prefix = "ad";
  static const char * fbsd_dev_scsi_disk_plus = "da";
@@ -25,7 +44,7 @@
  static const char * fbsd_dev_scsi_tape1 = "sa";
  static const char * fbsd_dev_scsi_tape2 = "nsa";
  static const char * fbsd_dev_scsi_tape3 = "esa";
-@@ -960,6 +960,11 @@
+@@ -960,6 +969,11 @@
      return CONTROLLER_ATA;
    }
    
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list