1 Smartmontools installation instructions
2 =======================================
4 $Id: INSTALL,v 1.68 2006/09/27 21:42:03 chrfranke Exp $
6 Please also see the smartmontools home page:
7 http://smartmontools.sourceforge.net/
11 [1] System requirements
12 [2] Installing from CVS
13 [3] Installing from source tarball
14 [4] Guidelines for different Linux distributions
15 [5] Guidelines for FreeBSD
16 [6] Guidelines for Darwin
17 [7] Guidelines for NetBSD
18 [8] Guidelines for Solaris
19 [9] Guidelines for Cygwin
20 [10] Guidelines for Windows
21 [11] Guidelines for OS/2, eComStation
22 [12] Guidelines for OpenBSD
24 [14] Detailed description of ./configure options
26 [1] System requirements
27 =======================
31 Any Linux distribution will support smartmontools if it has a
32 kernel version greater than or equal to 2.2.14. So any recent
33 Linux distribution should support smartmontools.
35 There are two parts of smartmontools that may require a patched or
38 (1) To get the ATA RETURN SMART STATUS command, the kernel needs
39 to support the HDIO_DRIVE_TASK ioctl().
41 (2) To run Selective Self-tests, the kernel needs to support the
42 HDIO_DRIVE_TASKFILE ioctl().
44 If your kernel does not support one or both of these ioctls, then
45 smartmontools will "mostly" work. The things that don't work will
46 give you harmless warning messages.
48 Although "not officially supported" by the developers, smartmontools
49 has also been successfully build and run on a legacy Linux system
50 with kernel 2.0.33 and libc.so.5. On such systems, the restrictions
53 For item (1) above, any 2.4 or 2.6 series kernel will provide
54 HDIO_DRIVE_TASK support. Some 2.2.20 and later kernels also
55 provide this support IF they're properly patched and
56 configured. [Andre Hedrick's IDE patches may be found at
57 http://www.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/ or
58 are available from your local kernel.org mirror. They are not
59 updated for 2.2.21 or later, and may contain a few bugs.].
60 If the configuration option CONFIG_IDE_TASK_IOCTL
61 exists in your 2.2.X kernel source code tree, then your 2.2.X
62 kernel will probably support this ioctl. [Note that this kernel
63 configuration option does NOT need to be enabled. Its presence
64 merely indicates that the required HDIO_DRIVE_TASK ioctl() is
67 For item (2) above, your kernel must be configured with the kernel
68 configuration option CONFIG_IDE_TASKFILE_IO enabled. This
69 configuration option is present in all 2.4 and 2.6 series
70 kernels. Some 2.2.20 and later kernels also provide this support
71 IF they're properly patched and configured as described above.
73 Please see FAQ section of the URL above for additional details.
75 If you are using 3ware controllers, for full functionality you
76 must either use version 1.02.00.037 or greater of the 3w-xxxx
77 driver, or patch earlier 3ware 3w-xxxx drivers. See
78 http://smartmontools.sourceforge.net/3w-xxxx.txt
79 for the patch. The version 1.02.00.037 3w-xxxx.c driver was
80 incorporated into kernel 2.4.23-bk2 on 3 December 2003 and into
81 kernel 2.6.0-test5-bk11 on 23 September 2003.
85 For FreeBSD support, a 5-current kernel that includes ATAng is
86 required in order to support ATA drives. Even current versions of
87 ATAng will not support 100% operation, as the SMART status can not
88 be reliably retrieved. There is patch pending approval of the
89 ATAng driver maintainer that will address this issue.
93 The SCSI code has been tested on a variety of Solaris 8 and 9
94 systems. ATA/IDE code only works on SPARC platform. All tested
95 kernels worked correctly.
99 The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
100 also function under 1.6.1 and later releases (unverified). Currently
101 it doesn't support ATA devices on 3ware RAID controllers.
105 The code was tested on Cygwin 1.5.7, 1.5.11 and 1.5.18. It should also
106 work on other recent releases.
108 Release 1.5.15 or later is recommended for Cygwin smartd. Older versions
109 do not provide syslogd support.
111 Both Cygwin and Windows versions of smartmontools share the same code
112 to access the IDE/ATA or SCSI devices. The information in the "Windows"
113 section below also applies to the Cygwin version.
117 The code was tested on Windows 98SE, NT4(SP5,SP6), 2000(SP4) and
118 XP(no SP,SP1a,SP2). It should also work on Windows 95(OSR2), 98,
121 On 9x/ME, only standard (legacy) IDE/ATA devices 0-3 are supported.
122 The driver SMARTVSD.VXD must be present in WINDOWS\SYSTEM\IOSUBSYS
123 to get loaded at Windows startup. The default location in a new
124 installation of some versions of Windows is the WINDOWS\SYSTEM folder.
125 In this case, move SMARTVSD.VXD to WINDOWS\SYSTEM\IOSUBSYS and reboot
126 (http://support.microsoft.com/kb/265854/en-us).
127 SMARTVSD.VXD may also be missing in a new installation
128 (http://support.microsoft.com/kb/199886/en-us).
130 SMARTVSD.VXD relies on the standard IDE port driver ESDI_506.PDR.
131 If the system uses a vendor specific driver, access of SMART data
132 is not possible on 9x/ME. This is the case if e.g. the optional
133 "IDE miniport driver" is installed on a system with VIA chipset.
135 Some ATA controllers (e.g. Promise) provided a custom SMARTVSD.VXD
136 for their Win9x/ME driver. To access SMART data from both the legacy
137 (/dev/h[a-d]) and this additional (/dev/hd[e-h]) controller, rename
138 this file to SMARTVSE.VXD. Open the file with a hex editor and replace
139 all occurrences of the string "SMARTVSD" with "SMARTVSE". Then reinstall
140 the original Windows SMARTVSD.VXD.
142 On NT4/2000/XP/2003, ATA or SATA devices are supported if the device
143 driver implements the SMART IOCTL.
145 The IDE/ATA read log command (smartctl -l, --log, -a, --all) is
146 not supported by the SMART IOCTL of NT4/2000/XP. Undocumented
147 and possibly buggy system calls are used for this purpose,
148 see WARNINGS file for details.
150 SCSI devices are supported on all versions of Windows. An installed
151 ASPI interface (WNASPI32.DLL) is required to access SCSI devices.
152 The code was tested with Adaptec Windows ASPI drivers 4.71.2.
153 (http://www.adaptec.com/en-US/support/scsi_soft/ASPI/ASPI-4.70/)
154 Links to other ASPI drivers can be found at http://www.nu2.nu/aspi/.
156 3ware 9000 RAID controllers are supported using new features added
157 to the 3ware 9000 Windows driver. These features are not implemented
158 in the latest 'Released' driver (9.3.0.6) available at the time of
159 this writing. But an 'in Engineering Phase' driver v3.00.02.061 or
160 later can be used to access SMART functionality of each individual
161 drive. Older drivers provide SMART access only to the first drive
162 (port) of each unit. The commands READ LOG and ABORT SELFTEST are
163 still unsupported due to the limitations of SMART IOCTL (see above).
167 The code was tested on MacOS 10.3.4. It should work from 10.3
168 forwards. It doesn't support 10.2.
170 It's important to know that on 10.3.x, some things don't work
171 (see WARNINGS): due to bugs in the libraries used, you cannot run
172 a short test or switch SMART support off on a drive; if you try,
173 you will just run an extended test or switch SMART support on. So
174 don't panic when your "short" test seems to be taking hours.
176 It's also not possible at present to control when the offline
177 routine runs. If your drive doesn't have it running automatically by
178 default, you can't run it at all.
180 SCSI devices are not currently supported. Detecting the power
181 status of a drive is also not currently supported.
183 To summarize this, from another point of view, the things that
184 are not supported fall into two categories:
186 * Can't be implemented easily without more kernel-level support,
188 - running immediate offline, conveyance, or selective tests
189 - running any test in captive mode
191 - switching automatic offline testing on or off
193 - checking the power mode [-n Directive of smartd] (this is not
194 completely impossible, but not by using a documented API)
196 * Work on 10.4 and later, but not on 10.3:
197 - switching off SMART (switching *on* works fine)
198 - switching off auto-save (but why would you want to?)
199 - running the short test (that leaves you with only the extended test)
201 However, some things do work well. For ATA devices, all the
202 informational output is available, unless you want something that only
203 an offline test updates. On many newer Mac OS systems, the
204 hard drive comes with the offline test switched on by default, so
209 The code was tested on eComStation 1.1, but it should work on all versions
211 Innotek LibC 0.5 runtime is required.
212 Currently only ATA disks are supported, SCSI support will be added.
215 [2] Installing from CVS
216 =======================
217 Get the sources from the CVS repository:
218 cvs -d :pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools login
219 cvs -d :pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co sm5
220 (when prompted for a password, just press Enter)
224 and continue with step [3] below, skipping the "unpack the tarball" step.
226 Further details of using CVS can be found at the URL above.
228 The autogen.sh command is ONLY required when installing from
229 CVS. You need GNU Autoconf (version 2.50 or greater), GNU Automake
230 (version 1.6 or greater) and their dependencies installed in order
231 to run it. You can get these here:
232 http://www.gnu.org/directory/GNU/autoconf.html
233 http://www.gnu.org/directory/GNU/automake.html
235 [3] Installing from the source tarball
236 ======================================
238 If you are NOT installing from CVS, then unpack the tarball:
239 tar zxvf smartmontools-5.VERSION.tar.gz
244 make install (you may need to be root to do this)
246 As shown (with no options to ./configure) this defaults to the
247 following set of installation directories:
249 --sbindir=/usr/local/sbin
250 --sysconfdir=/usr/local/etc
251 --mandir=/usr/local/share/man
252 --with-docdir=/usr/local/share/doc/smartmontools-VERSION
253 --with-initscriptdir=/usr/local/etc/rc.d/init.d
256 These will usually not overwrite existing "distribution" installations on
257 Linux Systems since the FHS reserves this area for use by the system
260 For different installation locations or distributions, simply add
261 arguments to ./configure as shown in [4] below.
263 If you wish to alter the default C compiler flags, set an
264 environment variable CFLAGS='your options' before doing
265 ./configure, or else do:
266 make CFLAGS='your options'
268 [4] Guidelines for different Linux distributions
269 ================================================
271 Note: Please send corrections/additions to:
272 smartmontools-support@lists.sourceforge.net
275 If you don't want to overwrite any distribution package, use:
278 Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
279 ./configure --sbindir=/usr/local/sbin \
280 --sysconfdir=/usr/local/etc \
281 --mandir=/usr/local/man \
282 --with-initscriptdir=/usr/local/etc/rc.d/init.d \
283 --with-docdir=/usr/local/share/doc/smartmontools-VERSION
286 ./configure --sbindir=/usr/sbin \
288 --mandir=/usr/share/man \
289 --with-initscriptdir=/etc/rc.d/init.d \
290 --with-docdir=/usr/share/doc/smartmontools-VERSION
293 If you don't want to overwrite any "distribution" package, use:
297 ./configure --sbindir=/usr/sbin \
299 --mandir=/usr/share/man \
300 --with-initscriptdir=/etc/rc.d \
301 --with-docdir=/usr/share/doc/smartmontools-VERSION
304 removepkg smartmontools smartsuite (only root can do this)
307 The init script works on Slackware. You just have to add an entry like
308 the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
310 if [ -x /etc/rc.d/smartd ]; then
311 . /etc/rc.d/smartd start
315 chmod 644 /etc/rc.d/smartd
317 For a list of options:
321 ./configure --sbindir=/usr/sbin \
323 --mandir=/usr/share/man \
324 --with-initscriptdir=/etc/init.d \
325 --with-docdir=/usr/share/doc/packages/smartmontools-VERSION
327 [5] Guidelines for FreeBSD
328 ==========================
329 To match the way it will installed when it becomes available as a PORT, use
332 ./configure --prefix=/usr/local \
333 --with-initscriptdir=/usr/local/etc/rc.d/ \
334 --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
337 Also, it is important that you use GNU make (gmake from /usr/ports/devel/gmake)
338 to build smartmontools, as the default FreeBSD make doesn't know how to build
341 NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
342 be installed with the string '.sample' append to the name, so you will end
343 up with the following:
344 /usr/local/etc/smartd.conf.sample
345 /usr/local/etc/rc.d/smartd.sample
348 [6] Guidelines for Darwin
349 =========================
350 ./configure --with-initscriptdir=/Library/StartupItems
352 If you'd like to build the i386 version on a powerpc machine, you can
355 CC='gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
356 ./configure --host=i386-apple-darwin \
357 --with-initscriptdir=/Library/StartupItems
359 [7] Guidelines for NetBSD/OpenBSD
360 =================================
361 ./configure --prefix=/usr/pkg \
362 --with-docdir=/usr/pkg/share/doc/smartmontools
364 On OpenBSD, it is important that you use GNU make (gmake from
365 /usr/ports/devel/gmake) to build smartmontools, as the BSD make doesn't
366 know how to make the manpages.
368 [8] Guidelines for Solaris
369 ==========================
371 smartmontools has been partially but not completely ported to
372 Solaris. It includes complete SCSI support but no ATA or 3ware
373 support. It can be compiled with either cc or gcc. To compile
379 To compile with Sun cc:
381 setenv CC cc [csh syntax], or
386 The correct arguments [args] to configure are:
387 --sbindir=/usr/sbin \
389 --mandir=/usr/share/man \
390 --with-docdir=/usr/share/doc/smartmontools-VERSION \
391 --with-initscriptdir=/etc/init.d
393 To start the script automatically on bootup, create hardlinks that
394 indicate when to start/stop in:
396 pointing to /etc/init.d/smartd. Create:
397 K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
398 S<snum>smartd in rc3.d
399 where <knum> is related to <snum> such that the higher snum is the
402 On usual configuration, '95' would be suitable for <snum> and '05'
403 for <knum> respectively. If you choose these value, you can
407 sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
408 sh -c 'for n in 3 ; do ln init.d/smartd rc$n.d/S95smartd; done'
410 [9] Guidelines for Cygwin
411 =========================
414 ./configure --prefix=/usr \
416 --mandir='${prefix}/share/man'
419 ./configure --sbindir=/usr/sbin \
421 --mandir=/usr/share/man \
422 --with-initscriptdir=/etc/rc.d/init.d \
423 --with-docdir=/usr/share/doc/smartmontools-VERSION
425 Using DOS text file type as default for the working directories ("textmode"
426 mount option) is not recommended. Building the binaries and man pages using
427 "make" is possible, but "make dist" and related targets work only with UNIX
428 file type ("binmode" mount option) set. The "autogen.sh" script prints a
429 warning if DOS type is selected.
431 [10] Guidelines for Windows
432 ==========================
434 To compile the Windows release with MinGW, use the following on Cygwin:
436 ./configure --build=mingw32
439 Instead of using "make install", copy the .exe files into
440 some directory in the PATH.
442 To build the Windows binary distribution, use:
446 This builds the distribution in directory
448 ./smartmontools-VERSION.win32/
452 ./smartmontools-VERSION.win32.zip
454 To create a Windows installer, use:
458 This builds the distribution directory and packs it into the
459 self-extracting install program
461 ./smartmontools-VERSION.win32-setup.exe
463 The installer is build using the command "makensis" from the NSIS
464 package. See http://nsis.sourceforge.net/ for documentation and
465 download location. The install script was tested with NSIS 2.17.
467 To both create and run the (interactive) installer, use:
471 Additional make targets are distdir-win32 to build the directory
472 only and cleandist-win32 for cleanup.
474 The binary distribution includes all documentation files converted
475 to DOS text file format and *.html and *.txt preformatted man pages.
476 The tools unix2dos.exe (package cygutils) and zip.exe (package zip
477 or a native Win32 release of Info-ZIP, http://www.info-zip.org) are
478 necessary but may be not installed by Cygwin's default settings.
480 It is also possible to compile smartmontools with MSVC 6.0.
481 The project files (smartmontools_vc6.dsw, smart{ctl,d}_vc6.dsp) are
482 included in CVS (but not in source tarball). The config_vc6.h is no
483 longer maintained in CVS. The command:
487 builds config_vc6.h from MinGW's config.h. Unlike MinGW, MSVC 6.0
488 can also be used to build the syslog message file tool syslogevt.exe.
489 See smartd man page for usage information about this tool.
492 [11] Guidelines for OS/2, eComStation
493 =====================================
495 To compile the OS/2 code, please run
497 ./os_os2/configure.os2
501 [12] Guidelines for OpenBSD
502 ==========================
503 To match the way it will installed when it becomes available as a PORT, use
506 ./configure --prefix=/usr/local \
508 --with-initscriptdir=/usr/local/share/doc/smartmontools-VERSION \
509 --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
512 It is important that you use GNU make (gmake from /usr/ports/devel/gmake)
513 to build smartmontools, as the default OpenBSD make doesn't know how to build
516 NOTE1: --with-initscriptdir installs a SystemV startup script. It really
517 should be --without-initscriptdir, but the Makefile code is incorrect and
518 trys to install the initscript (smartd) to /no. So, an interim fix it to
519 set the initscript dir to the doc dir.
521 NOTE2: --enable-sample will cause the smartd.conf and smartd RC files to
522 be installed with the string '.sample' append to the name, so you will end
523 up with the following:
524 /usr/local/etc/smartd.conf.sample
525 /usr/local/etc/rc.d/smartd.sample
530 To compile from another directory, you can replace the step
531 ./configure [options]
535 ../configure [options]
537 To install to another destination (used mainly by package maintainers,
538 or to examine the package contents without risk of modifying any
539 system files) you can replace the step:
542 make DESTDIR=/home/myself/smartmontools-package install
544 Use a full path. Paths like ~/smartmontools-package may not work.
546 After installing smartmontools, you can read the man pages, and try
553 /usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
554 /usr/sbin/smartctl -a /dev/hda (only root can do this)
556 Note that the default location for the manual pages are
557 /usr/share/man/man5 and /usr/share/man/man8. If "man" doesn't find
558 them, you may need to add /usr/share/man to your MANPATH environment
561 Source and binary RPM packages are available at
562 http://sourceforge.net/project/showfiles.php?group_id=64297
564 Refer to http://smartmontools.sourceforge.net/index.html#howtodownload
565 for any additional download and installation instructions.
567 The following files are installed if ./configure has no options:
569 /usr/local/sbin/smartd [Executable daemon]
570 /usr/local/sbin/smartctl [Executable command-line utility]
571 /usr/local/etc/smartd.conf [Configuration file for smartd daemon]
572 /usr/local/etc/rc.d/init.d/smartd [Init/Startup script for smartd]
573 /usr/local/share/man/man5/smartd.conf.5 [Manual page]
574 /usr/local/share/man/man8/smartctl.8 [Manual page]
575 /usr/local/share/man/man8/smartd.8 [Manual page]
576 /usr/local/share/doc/smartmontools-5.X/AUTHORS [Information about the authors and developers]
577 /usr/local/share/doc/smartmontools-5.X/CHANGELOG [A log of changes. Also see CVS]
578 /usr/local/share/doc/smartmontools-5.X/COPYING [GNU General Public License Version 2]
579 /usr/local/share/doc/smartmontools-5.X/INSTALL [Installation instructions: what you're reading!]
580 /usr/local/share/doc/smartmontools-5.X/NEWS [Significant bugs discovered in old versions]
581 /usr/local/share/doc/smartmontools-5.X/README [Overview]
582 /usr/local/share/doc/smartmontools-5.X/TODO [Things that need to be done/fixed]
583 /usr/local/share/doc/smartmontools-5.X/WARNINGS [Systems where lockups or other serious problems were reported]
584 /usr/local/share/doc/smartmontools-5.X/smartd.conf [Example configuration file for smartd]
585 /usr/local/share/doc/smartmontools-5.X/examplescripts [Executable scripts for -M exec of smartd.conf (4 files)]
592 may be used to build .html and .txt preformatted man pages.
593 These are used by the dist-win32 make target to build the Windows
595 The commands also work on other operating system configurations
596 if suitable versions of man2html, groff and grotty are installed.
597 On systems without man2html, the following command should work
598 if groff is available:
600 make MAN2HTML='groff -man -Thtml' htmlman
603 [14] Detailed description of arguments to configure command
604 ===========================================================
607 ./configure [options]
608 there are six particularly important variables that affect where the
609 smartmontools software is installed. The variables are listed here,
610 with their default values in square brackets, and the quantities that
611 they affect described following that. This is a very wide table: please read
614 OPTIONS DEFAULT AFFECTS
615 ------- ------- -------
616 --prefix /usr/local Please see below
617 --sbindir ${prefix}/sbin Directory for smartd/smartctl executables;
618 Contents of smartd/smartctl man pages
619 --mandir ${prefix}/share/man Directory for smartctl/smartd/smartd.conf man pages
620 --sysconfdir ${prefix}/etc Directory for smartd.conf;
621 Contents of smartd executable;
622 Contents of smartd/smartd.conf man pages;
623 Directory for rc.d/init.d/smartd init script
624 --with-initscriptdir ${sysconfdir}/init.d/rc.d Location of init scripts
625 --with-docdir ${prefix}/share/doc/smartmontools-5.X Location of the documentation
626 --enable-sample --disable-sample Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
629 If you set --prefix=/home/joe and none of the other four
630 variables then the different directories that are used would be:
631 --sbindir /home/joe/sbin
632 --mandir /home/joe/share/man
633 --sysconfdir /home/joe/etc
634 --with-initscriptdir /home/joe/etc/init.d/rc.d
635 --with-docdir /home/joe/doc/smartmontools-5.X
637 This is useful for test installs in a harmless subdirectory somewhere.
639 Here are the four possible cases for the four variables above:
644 ===> VARIABLE gets default value above
649 ===> VARIABLE gets PREFIX/ prepended to default value above
654 ===> VARIABLE gets value that is set
659 ===> PREFIX is IGNORED, VARIABLE gets value that is set
662 Here are the differences with and without --enable-sample, assuming
663 no other options specified (see above for details)
666 --enable-sample provided
667 ==> Files installed are:
668 /usr/local/etc/smartd.conf.sample
669 /usr/local/etc/rc.d/init.d/smartd.sample
672 --disable-sample provided or parameter left out
673 ==> Files installed are:
674 /usr/local/etc/smartd.conf
675 /usr/local/etc/rc.d/init.d/smartd
677 Additional information about using configure can be found here:
678 http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_mono/autoconf.html#SEC139