ctuffli / smart Goto Github PK
View Code? Open in Web Editor NEWApplication to output the SMART values of disks (mirror)
License: ISC License
Application to output the SMART values of disks (mirror)
License: ISC License
Temperature values, for 194 at least, are reporting odd numbers such as 77309411349
I'm seeing this across multiple SATA drive types, on both SATA and SAS controllers. SAS drives report temperatures correctly.
Seems to get the thresholds correct though:
208 194 133145427997 34 71 69
Here's the outputs of smart -di for a few.
dbg: ATA command1 = 0x346b
dbg: protocol ATA (specified auto)
Device ST4000DM000-1F2168
Revision CC54
Serial Z307VMJC
dbg: SMART is supported
208 1 162045528
208 3 0
208 4 9
208 5 0
208 7 225615747
208 9 21982
208 10 0
208 12 9
208 183 0
208 184 0
208 187 0
208 188 0
208 189 0
208 190 722731030
208 191 0
208 192 3
208 193 375
208 194 73014444054
208 197 0
208 198 0
208 199 0
208 240 39260296074712
208 241 29757408312
208 242 48441609406
dbg: Looking for page 0x89 (total = 8):
dbg: [0] = 0
dbg: [1] = 0x80
dbg: [2] = 0x83
dbg: [3] = 0x87
dbg: [4] = 0x89
dbg: ATA command1 = 0x346b
dbg: protocol ATA (specified auto, tunneled ATA)
Vendor ATA
Device ST4000DM000-2AE1
Revision 0001
Serial WDH130QJ
dbg: SMART is supported
208 1 160310586
208 3 0
208 4 7
208 5 0
208 7 1038310304
208 9 84490596668896
208 10 0
208 12 7
208 183 0
208 184 0
208 187 0
208 188 0
208 189 0
208 190 672333845
208 191 0
208 192 908
208 193 1246
208 194 77309411349
208 197 0
208 198 0
208 199 0
208 240 141201344845166
208 241 29778799829
208 242 9792307029
dbg: ATA command1 = 0x746b
dbg: protocol ATA (specified auto)
Device KINGSTON SA400S37480G
Revision SBFK61K1
Serial 50026B778238D0EA
dbg: SMART is supported
208 1 0
208 9 2035
208 12 126
208 148 0
208 149 0
208 167 0
208 168 0
208 169 18
208 170 41
208 172 0
208 173 1114173
208 181 0
208 182 0
208 187 0
208 192 9
208 194 133145427997
208 196 0
208 199 0
208 218 0
208 231 98
208 233 6689
208 241 3645
208 242 785
208 244 17
208 245 61
208 246 737888
208 246 737888
root@core:/home/risner # smart -i -d da3
...
dbg: protocol SCSI (specified auto)
Vendor SEAGATE
Device ST33000650SS
...
dbg: SMART is not supported
But it works:
=== START OF INFORMATION SECTION ===
Vendor: SEAGATE
Product: ST33000650SS
...
Transport protocol: SAS (SPL-3)
...
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...
Ideas?
Hi,
Thank you for creating this. Would you consider tagging the 0.0.3 release? I have been asked to create a FreeBSD port/package and a release makes things cleaner.
Hello,
Here is full a build log.
---Begin Environment---
SHELL=/bin/csh
OSVERSION=1200060
UNAME_v=FreeBSD 12.0-CURRENT 1200060
UNAME_r=12.0-CURRENT
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
LOCALBASE=/usr/local
USER=root
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.2.5-3-gef344f26
MASTERMNT=/usr/local/poudriere/data/.m/head-amd64-default/ref
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=
PWD=/usr/local/poudriere/data/.m/head-amd64-default/ref/.p/pool
P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS
MASTERNAME=head-amd64-default
SCRIPTPREFIX=/usr/local/share/poudriere
OLDPWD=/usr/local/poudriere/data/.m/head-amd64-default/ref/.p
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---
---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
DEPENDS_ARGS=
MAKE_ARGS=
---End Poudriere Port Flags/Env---
---Begin OPTIONS List---
---End OPTIONS List---
--MAINTAINER--
[email protected]
--End MAINTAINER--
--CONFIGURE_ARGS--
--End CONFIGURE_ARGS--
--CONFIGURE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/sysutils/smart/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/sysutils/smart/work HOME=/wrkdirs/usr/ports/sysutils/smart/work TMPDIR="/tmp"
PATH=/wrkdirs/usr/ports/sysutils/smart/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin SHELL=/bin/sh CONFIG_SHELL=/bin/sh
--End CONFIGURE_ENV--
--MAKE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/sysutils/smart/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/sysutils/smart/work HOME=/wrkdirs/usr/ports/sysutils/smart/work TMPDIR="/tmp"
PATH=/wrkdirs/usr/ports/sysutils/smart/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES
PREFIX=/usr/local LOCALBASE=/usr/local LIBDIR="/usr/lib" CC="cc" CFLAGS="-O2 -pipe -fstack-protector -fno-strict-aliasing" CPP="cpp" CPPFLAGS="" LDFLAGS=" -fstack-protector" LIBS="" CXX="c++" CXXFLAGS="-O2
-pipe -fstack-protector -fno-strict-aliasing " MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install
-m 0644" BSD_INSTALL_MAN="install -m 444"
--End MAKE_ENV--
--PLIST_SUB--
PORTDOCS="" PORTEXAMPLES="" OSREL=12.0 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/smart" EXAMPLESDIR="share/examples/smart" DATADIR="share/smart" WWWDIR="www/smart"
ETCDIR="etc/smart"
--End PLIST_SUB--
--SUB_LIST--
PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/smart DOCSDIR=/usr/local/share/doc/smart EXAMPLESDIR=/usr/local/share/examples/smart WWWDIR=/usr/local/www/smart ETCDIR=/usr/local/etc/smart
--End SUB_LIST--
---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
PACKAGE_BUILDING=yes
PACKAGE_BUILDING_FLAVORS=yes
#### /usr/local/etc/poudriere.d/make.conf ####
# XXX: We really need this but cannot use it while 'make checksum' does not
# try the next mirror on checksum failure. It currently retries the same
# failed mirror and then fails rather then trying another. It *does*
# try the next if the size is mismatched though.
#MASTER_SITE_FREEBSD=yes
# Build ALLOW_MAKE_JOBS_PACKAGES with 2 jobs
MAKE_JOBS_NUMBER=2
#### /usr/ports/Mk/Scripts/ports_env.sh ####
_CCVERSION_921dbbb2=FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) Target: x86_64-unknown-freebsd12.0 Thread model: posix InstalledDir: /usr/bin
_ALTCCVERSION_921dbbb2=none
_CXXINTERNAL_acaad9ca=FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0) Target: x86_64-unknown-freebsd12.0 Thread model: posix InstalledDir: /usr/bin "/usr/bin/ld"
"--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--hash-style=both" "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm"
"-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o"
OUTPUT_58173849_921dbbb2=yes
OUTPUT_9bdba57c_921dbbb2=yes
OUTPUT_6a4fe7f5_921dbbb2=yes
OUTPUT_6bcac02b_921dbbb2=yes
OUTPUT_67d20829_921dbbb2=yes
OUTPUT_bfa62e83_921dbbb2=yes
OUTPUT_f0b4d593_921dbbb2=yes
OUTPUT_308abb44_921dbbb2=yes
OUTPUT_f00456e5_921dbbb2=yes
OUTPUT_65ad290d_921dbbb2=yes
OUTPUT_b2657cc3_921dbbb2=yes
OUTPUT_380987f7_921dbbb2=yes
ARCH=amd64
OPSYS=FreeBSD
_OSRELEASE=12.0-CURRENT
OSREL=12.0
OSVERSION=1200060
PYTHONBASE=/usr/local
HAVE_COMPAT_IA32_KERN=YES
CONFIGURE_MAX_CMD_LEN=262144
HAVE_PORTS_ENV=1
#### Misc Poudriere ####
GID=0
DISABLE_MAKE_JOBS=poudriere
---End make.conf---
--Resource limits--
cpu time (seconds, -t) unlimited
file size (512-blocks, -f) unlimited
data seg size (kbytes, -d) 33554432
stack size (kbytes, -s) 524288
core file size (512-blocks, -c) unlimited
max memory size (kbytes, -m) unlimited
locked memory (kbytes, -l) unlimited
max user processes (-u) 89999
open files (-n) 1024
virtual mem size (kbytes, -v) unlimited
swap limit (kbytes, -w) unlimited
socket buffer size (bytes, -b) unlimited
pseudo-terminals (-p) unlimited
kqueues (-k) unlimited
umtx shared locks (-o) unlimited
--End resource limits--
=======================<phase: check-sanity >============================
===> License ISCL accepted by the user
===========================================================================
=======================<phase: pkg-depends >============================
===> smart-0.0.6 depends on file: /usr/local/sbin/pkg - not found
===> Installing existing package /packages/All/pkg-1.10.5.txz
[head-amd64-default-job-03] Installing pkg-1.10.5...
[head-amd64-default-job-03] Extracting pkg-1.10.5: .......... done
===> smart-0.0.6 depends on file: /usr/local/sbin/pkg - found
===> Returning to build of smart-0.0.6
===========================================================================
=======================<phase: fetch-depends >============================
===========================================================================
=======================<phase: fetch >============================
===> License ISCL accepted by the user
===> Fetching all distfiles required by smart-0.0.6 for building
===========================================================================
=======================<phase: checksum >============================
===> License ISCL accepted by the user
===> Fetching all distfiles required by smart-0.0.6 for building
=> SHA256 Checksum OK for ctuffli-smart-0.0.6_GH0.tar.gz.
===========================================================================
=======================<phase: extract-depends>============================
===========================================================================
=======================<phase: extract >============================
===> License ISCL accepted by the user
===> Fetching all distfiles required by smart-0.0.6 for building
===> Extracting for smart-0.0.6
=> SHA256 Checksum OK for ctuffli-smart-0.0.6_GH0.tar.gz.
===========================================================================
=======================<phase: patch-depends >============================
===========================================================================
=======================<phase: patch >============================
===> Patching for smart-0.0.6
===========================================================================
=======================<phase: build-depends >============================
===========================================================================
=======================<phase: lib-depends >============================
===========================================================================
=======================<phase: configure >============================
===> Configuring for smart-0.0.6
===========================================================================
=======================<phase: build >============================
===> Building for smart-0.0.6
echo smart: /usr/lib/libc.a >> .depend
Warning: Object directory not changed from original /wrkdirs/usr/ports/sysutils/smart/work/smart-0.0.6
cc -O2 -pipe -fstack-protector -fno-strict-aliasing -MD -MF.depend.smart.o -MTsmart.o -std=gnu99 -fstack-protector-strong -Qunused-arguments -c smart.c -o smart.o
cc -O2 -pipe -fstack-protector -fno-strict-aliasing -MD -MF.depend.libsmart.o -MTlibsmart.o -std=gnu99 -fstack-protector-strong -Qunused-arguments -c libsmart.c -o libsmart.o
cc -O2 -pipe -fstack-protector -fno-strict-aliasing -MD -MF.depend.freebsd_dev.o -MTfreebsd_dev.o -std=gnu99 -fstack-protector-strong -Qunused-arguments -c freebsd_dev.c -o freebsd_dev.o
freebsd_dev.c:206:14: error: no member named 'opc' in 'struct nvme_command'
nvmeio->cmd.opc = NVME_OPC_GET_LOG_PAGE;
~~~~~~~~~~~ ^
1 error generated.
*** Error code 1
Stop.
make[1]: stopped in /wrkdirs/usr/ports/sysutils/smart/work/smart-0.0.6
*** Error code 1
Stop.
make: stopped in /usr/ports/sysutils/smart
Because it does things like include bsd.prog.mk in the makefile, this can't build on Linux.
Do you have plans to make this build on linux, or have you tried building it on linux at all?
It'd be good to provide and install a manual page documenting the options to the smart
command.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.