hddtemp: try to fix by Gentoo patches
This commit is contained in:
parent
bd4c0e7cd1
commit
fc82aa049b
|
@ -0,0 +1,28 @@
|
||||||
|
diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/sata.c hddtemp-0.3-beta15/src/sata.c
|
||||||
|
--- hddtemp-0.3-beta15.orig/src/sata.c 2006-05-14 02:09:55.579437498 -0700
|
||||||
|
+++ hddtemp-0.3-beta15/src/sata.c 2006-05-14 02:06:08.495948437 -0700
|
||||||
|
@@ -88,7 +88,9 @@
|
||||||
|
return strdup(_("unknown"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+ //fprintf(stderr,"sata_model1=%s\n",identify + 54);
|
||||||
|
sata_fixstring(identify + 54, 24);
|
||||||
|
+ //fprintf(stderr,"sata_model2=%s\n",identify + 54);
|
||||||
|
return strdup(identify + 54);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -Nuar --exclude '*~' hddtemp-0.3-beta15.orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
|
||||||
|
--- hddtemp-0.3-beta15.orig/src/satacmds.c 2006-05-14 02:09:40.983470339 -0700
|
||||||
|
+++ hddtemp-0.3-beta15/src/satacmds.c 2006-05-14 02:09:02.319557333 -0700
|
||||||
|
@@ -98,7 +98,10 @@
|
||||||
|
/* convert from big-endian to host byte order */
|
||||||
|
for (p = end ; p != s;) {
|
||||||
|
unsigned short *pp = (unsigned short *) (p -= 2);
|
||||||
|
- *pp = ntohs(*pp);
|
||||||
|
+ char tmp = p[0];
|
||||||
|
+ p[0] = p[1];
|
||||||
|
+ p[1] = tmp;
|
||||||
|
+ //*pp = ntohs(*pp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* strip leading blanks */
|
|
@ -13,6 +13,9 @@ stdenv.mkDerivation {
|
||||||
sha256 = "0nzgg4nl8zm9023wp4dg007z6x3ir60rwbcapr9ks2al81c431b1";
|
sha256 = "0nzgg4nl8zm9023wp4dg007z6x3ir60rwbcapr9ks2al81c431b1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# from Gentoo
|
||||||
|
patches = [ ./byteswap.patch ./dontwake.patch ./execinfo.patch ./satacmds.patch ];
|
||||||
|
|
||||||
configurePhase =
|
configurePhase =
|
||||||
''
|
''
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
--- hddtemp-0.3-beta15/src/sata.c 2012-07-01 16:35:01.681708074 +0200
|
||||||
|
+++ hddtemp-0.3-beta15/src/sata.c 2012-07-01 16:33:58.172109699 +0200
|
||||||
|
@@ -125,6 +125,17 @@
|
||||||
|
dsk->fd = -1;
|
||||||
|
return GETTEMP_NOSENSOR;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ switch(ata_get_powermode(dsk->fd)) {
|
||||||
|
+ case PWM_STANDBY:
|
||||||
|
+ case PWM_SLEEPING:
|
||||||
|
+ if (!wakeup)
|
||||||
|
+ return GETTEMP_DRIVE_SLEEP;
|
||||||
|
+ case PWM_UNKNOWN:
|
||||||
|
+ case PWM_ACTIVE: /* active or idle */
|
||||||
|
+ default:
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* get SMART values */
|
||||||
|
if(sata_enable_smart(dsk->fd) != 0) {
|
|
@ -0,0 +1,21 @@
|
||||||
|
--- hddtemp-0.3-beta15/configure.in~ 2005-10-17 19:14:19 +0000
|
||||||
|
+++ hddtemp-0.3-beta15/configure.in 2006-12-11 18:23:22 +0000
|
||||||
|
@@ -18,6 +18,7 @@
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS(fcntl.h)
|
||||||
|
AC_CHECK_HEADERS(netinet/in.h)
|
||||||
|
+AC_CHECK_HEADERS(execinfo.h)
|
||||||
|
AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
--- hddtemp-0.3-beta15/src/backtrace.c-orig 2006-12-11 18:20:41 +0000
|
||||||
|
+++ hddtemp-0.3-beta15/src/backtrace.c 2006-12-11 18:23:28 +0000
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
|
||||||
|
#include <features.h>
|
||||||
|
|
||||||
|
-#if defined(__i386__) && defined(__GLIBC__)
|
||||||
|
+#ifdef HAS_EXECINFO_H
|
||||||
|
|
||||||
|
#include <execinfo.h>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
diff -Naurp hddtemp-0.3-beta15-orig/src/satacmds.c hddtemp-0.3-beta15/src/satacmds.c
|
||||||
|
--- hddtemp-0.3-beta15-orig/src/satacmds.c 2007-02-10 14:25:15.000000000 +0100
|
||||||
|
+++ hddtemp-0.3-beta15/src/satacmds.c 2007-02-10 14:26:53.000000000 +0100
|
||||||
|
@@ -54,7 +54,6 @@ int sata_pass_thru(int device, unsigned
|
||||||
|
unsigned char cdb[16];
|
||||||
|
unsigned char sense[32];
|
||||||
|
int dxfer_direction;
|
||||||
|
- int ret;
|
||||||
|
|
||||||
|
memset(cdb, 0, sizeof(cdb));
|
||||||
|
cdb[0] = ATA_16;
|
||||||
|
@@ -78,13 +77,7 @@ int sata_pass_thru(int device, unsigned
|
||||||
|
cdb[6] = cmd[1];
|
||||||
|
cdb[14] = cmd[0];
|
||||||
|
|
||||||
|
- ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
|
||||||
|
-
|
||||||
|
- /* Verify SATA magics */
|
||||||
|
- if (sense[0] != 0x72 || sense[7] != 0x0e || sense[9] != 0x0e || sense[10] != 0x00)
|
||||||
|
- return 1;
|
||||||
|
- else
|
||||||
|
- return ret;
|
||||||
|
+ return scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sata_fixstring(unsigned char *s, int bytecount)
|
Loading…
Reference in New Issue