]> git.proxmox.com Git - mirror_smartmontools-debian.git/blob - INSTALL
import smartmontools 7.0
[mirror_smartmontools-debian.git] / INSTALL
1 Smartmontools installation instructions
2 =======================================
3
4 $Id: INSTALL 4120 2015-08-27 16:12:21Z samm2 $
5
6 Please also see the smartmontools home page:
7 http://www.smartmontools.org/
8
9 Table of contents:
10
11 [1] System requirements
12 [2] Installing from SVN
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
23 [13] Comments
24 [14] Detailed description of ./configure options
25
26 [1] System requirements
27 =======================
28
29 A) Linux
30
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.
34
35 B) FreeBSD
36
37 For FreeBSD support, a 5-current kernel that includes ATAng is
38 required in order to support ATA drives. Even current versions of
39 ATAng will not support 100% operation, as the SMART status can not
40 be reliably retrieved. There is patch pending approval of the
41 ATAng driver maintainer that will address this issue.
42
43 C) Solaris
44
45 The SCSI code has been tested on a variety of Solaris 8 and 9
46 systems. ATA/IDE code only works on SPARC platform. All tested
47 kernels worked correctly.
48
49 D) NetBSD/OpenBSD
50
51 The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
52 also function under 1.6.1 and later releases (unverified). Currently
53 it doesn't support ATA devices on 3ware RAID controllers.
54
55 E) Cygwin
56
57 The code was tested on Cygwin 1.7.15-1. It should also work on other
58 recent releases.
59
60 Both Cygwin and Windows versions of smartmontools share the same code
61 to access the IDE/ATA or SCSI devices. The information in the "Windows"
62 section below also applies to the Cygwin version.
63
64 F) Windows
65
66 The code was tested on Windows XP SP3, 2003, Vista, Windows 7, 8, 8.1
67 and Windows 10 Release Preview. Support von Windows 9x/ME and NT4 was
68 removed after smartmontools 5.43.
69
70 ATA or SATA devices are supported if the device driver implements
71 the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
72 Only the latter provides full pass-through support which is needed
73 for all smartmontools features.
74
75 SCSI and USB devices are accessed through SPTI. Special driver support
76 is not required.
77
78 3ware 9000 RAID controllers are supported using features available
79 in the Windows driver release 9.4.0 (3wareDrv.sys 3.0.2.70) or later.
80 Older drivers provide SMART access to the first physical drive (port)
81 of each logical drive (unit). If driver support is not available
82 (7000/8000 series, 9000 on XP 64), smartctl can be used to parse SMART
83 data output from CLI or 3DM.
84
85 G) MacOS/Darwin
86
87 The code was tested on MacOS 10.3.4. It should work from 10.3
88 forwards. It doesn't support 10.2.
89
90 It's important to know that on 10.3.x, some things don't work
91 (see WARNINGS): due to bugs in the libraries used, you cannot run
92 a short test or switch SMART support off on a drive; if you try,
93 you will just run an extended test or switch SMART support on. So
94 don't panic when your "short" test seems to be taking hours.
95
96 It's also not possible at present to control when the offline
97 routine runs. If your drive doesn't have it running automatically by
98 default, you can't run it at all.
99
100 SCSI devices are not currently supported. Detecting the power
101 status of a drive is also not currently supported.
102
103 To summarize this, from another point of view, the things that
104 are not supported fall into two categories:
105
106 * Can't be implemented easily without more kernel-level support,
107 so far as I know:
108 - running immediate offline, conveyance, or selective tests
109 - running any test in captive mode
110 - aborting tests
111 - switching automatic offline testing on or off
112 - support for SCSI
113 - checking the power mode [-n Directive of smartd] (this is not
114 completely impossible, but not by using a documented API)
115
116 * Work on 10.4 and later, but not on 10.3:
117 - switching off SMART (switching *on* works fine)
118 - switching off auto-save (but why would you want to?)
119 - running the short test (that leaves you with only the extended test)
120
121 However, some things do work well. For ATA devices, all the
122 informational output is available, unless you want something that only
123 an offline test updates. On many newer Mac OS systems, the
124 hard drive comes with the offline test switched on by default, so
125 even that works.
126
127 The OS X SAT SMART Driver provides access to SMART data for SAT capable
128 USB and Firewire devices:
129 https://github.com/kasbert/OS-X-SAT-SMART-Driver
130 https://github.com/RJVB/OS-X-SAT-SMART-Driver
131 This does not require any smartctl -d TYPE option and should work also
132 with older smartmontools releases.
133
134 H) OS/2, eComStation
135
136 The code was tested on eComStation 1.1, but it should work on all versions
137 of OS/2.
138 Innotek LibC 0.5 runtime is required.
139 Only ATA disks are supported.
140
141 [2] Installing from SVN
142 =======================
143
144 Get the sources from the SVN repository:
145 svn co http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
146
147 Then type:
148 ./autogen.sh
149 and continue with step [3] below, skipping the "unpack the tarball" step.
150
151 The autogen.sh command is ONLY required when installing from
152 SVN. You need GNU Autoconf (version 2.50 or greater), GNU Automake
153 (version 1.7 or greater) and their dependencies installed in order
154 to run it. You can get these here:
155 http://directory.fsf.org/project/autoconf/
156 http://directory.fsf.org/project/automake/
157
158 [3] Installing from the source tarball
159 ======================================
160
161 If you are NOT installing from SVN, then unpack the tarball:
162 tar zxvf smartmontools-5.VERSION.tar.gz
163
164 Then:
165 ./configure
166 make
167 make install (you may need to be root to do this)
168
169 As shown (with no options to ./configure) this defaults to the
170 following set of installation directories and other settings:
171
172 --prefix=/usr/local
173 --exec-prefix='${prefix}'
174 --sbindir='${exec_prefix}/sbin'
175 --sysconfdir='${prefix}/etc'
176 --localstatedir='${prefix}/var'
177 --datarootdir='${prefix}/share'
178 --datadir='${datarootdir}'
179 --mandir='${datarootdir}/man'
180 --docdir='${datarootdir}/doc/smartmontools'
181 --disable-sample
182 --with-systemdsystemunitdir=auto
183 --with-systemdenvfile=auto
184 --with-initscriptdir=auto
185 --with-exampledir='${docdir}/examplescripts'
186 --with-drivedbdir='${datadir}/smartmontools'
187 --with-smartdscriptdir='${sysconfdir}'
188 --with-smartdplugindir='${smartdscriptdir}/smartd_warning.d'
189 --without-savestates
190 --without-attributelog
191 --with-os-deps='os_linux.o dev_areca.o' (platform specific)
192 --without-selinux
193 --with-libcap-ng=auto
194 --with-working-snprintf
195
196 These will usually not overwrite existing "distribution" installations on
197 Linux Systems since the FHS reserves this area for use by the system
198 administrator.
199
200 For different installation locations or distributions, simply add
201 arguments to ./configure as shown in [4] below.
202
203 If you wish to alter the default C++ compiler flags, set an
204 environment variable CXXFLAGS='your options' before doing
205 ./configure, or else do:
206 make CXXFLAGS='your options'
207
208 The first output line of smartctl and smartd provides information
209 about release number, last SVN checkin date and revison, platform,
210 and package. The latter defaults to "(local build)" and can be
211 changed by the variable BUILD_INFO, for example:
212 make BUILD_INFO='"(Debian 5.39-2)"'
213
214 [4] Guidelines for different Linux distributions
215 ================================================
216
217 Note: Please send corrections/additions to:
218 smartmontools-support@lists.sourceforge.net
219
220 Debian:
221 If you don't want to overwrite any distribution package, use:
222 ./configure
223
224 Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
225 ./configure --sbindir=/usr/local/sbin \
226 --sysconfdir=/usr/local/etc \
227 --mandir=/usr/local/man \
228 --docdir=/usr/local/share/doc/smartmontools \
229 --with-initscriptdir=/usr/local/etc/init.d
230
231 Red Hat:
232 ./configure --sbindir=/usr/sbin \
233 --sysconfdir=/etc \
234 --mandir=/usr/share/man \
235 --docdir=/usr/share/doc/smartmontools \
236 --with-initscriptdir=/etc/rc.d/init.d
237
238 Slackware:
239 If you don't want to overwrite any "distribution" package, use:
240 ./configure
241
242 Otherwise use:
243 ./configure --sbindir=/usr/sbin \
244 --sysconfdir=/etc \
245 --mandir=/usr/share/man \
246 --docdir=/usr/share/doc/smartmontools \
247 --with-initscriptdir=/etc/rc.d
248
249 And
250 removepkg smartmontools smartsuite (only root can do this)
251 before make install
252
253 The init script works on Slackware. You just have to add an entry like
254 the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
255
256 if [ -x /etc/rc.d/smartd ]; then
257 . /etc/rc.d/smartd start
258 fi
259
260 To disable it:
261 chmod 644 /etc/rc.d/smartd
262
263 For a list of options:
264 /etc/rc.d/smartd
265
266 SuSE:
267 ./configure --sbindir=/usr/sbin \
268 --sysconfdir=/etc \
269 --mandir=/usr/share/man \
270 --docdir=/usr/share/doc/packages/smartmontools-VERSION \
271 --with-initscriptdir=/etc/init.d \
272
273 [5] Guidelines for FreeBSD
274 ==========================
275 To match the way it will installed when it becomes available as a PORT, use
276 the following:
277
278 ./configure --prefix=/usr/local \
279 --docdir=/usr/local/share/doc/smartmontools-VERSION \
280 --with-initscriptdir=/usr/local/etc/rc.d/ \
281 --enable-sample
282
283 NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
284 be installed with the string '.sample' append to the name, so you will end
285 up with the following:
286 /usr/local/etc/smartd.conf.sample
287 /usr/local/etc/rc.d/smartd.sample
288
289
290 [6] Guidelines for Darwin
291 =========================
292 ./configure --with-initscriptdir=/Library/StartupItems
293
294 If you'd like to build the i386 version on a powerpc machine, you can
295 use
296
297 CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
298 ./configure --host=i386-apple-darwin \
299 --with-initscriptdir=/Library/StartupItems
300
301 [7] Guidelines for NetBSD
302 =========================
303 ./configure --prefix=/usr/pkg \
304 --docdir=/usr/pkg/share/doc/smartmontools
305
306 [8] Guidelines for Solaris
307 ==========================
308
309 smartmontools has been partially but not completely ported to
310 Solaris. It includes complete SCSI support but no ATA or 3ware
311 support. It can be compiled with either CC (Sun's C++ compiler)
312 or GNU g++.
313
314 To compile with g++:
315
316 ./configure [args]
317 make
318
319 To compile with Sun CC:
320
321 env CC=cc CXX=CC ./configure [args]
322 make
323
324 The correct arguments [args] to configure are:
325 --sbindir=/usr/sbin \
326 --sysconfdir=/etc \
327 --mandir=/usr/share/man \
328 --docdir=/usr/share/doc/smartmontools-VERSION \
329 --with-initscriptdir=/etc/init.d
330
331 To start the script automatically on bootup, create hardlinks that
332 indicate when to start/stop in:
333 /etc/rc[S0123].d/
334 pointing to /etc/init.d/smartd. Create:
335 K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
336 S<snum>smartd in rc3.d
337 where <knum> is related to <snum> such that the higher snum is the
338 lower knum must be.
339
340 On usual configuration, '95' would be suitable for <snum> and '05'
341 for <knum> respectively. If you choose these value, you can
342 create hardlinks by:
343
344 cd /etc
345 sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
346 sh -c 'for n in 3 ; do ln init.d/smartd rc$n.d/S95smartd; done'
347
348 [9] Guidelines for Cygwin
349 =========================
350
351 Same as Red Hat:
352 ./configure --prefix=/usr \
353 --sysconfdir=/etc \
354 --mandir='${prefix}/share/man'
355
356 OR EQUIVALENTLY
357 ./configure --sbindir=/usr/sbin \
358 --sysconfdir=/etc \
359 --mandir=/usr/share/man \
360 --docdir=/usr/share/doc/smartmontools \
361 --with-initscriptdir=/etc/rc.d/init.d
362
363 Using DOS text file type as default for the working directories ("textmode"
364 mount option) is not recommended. Building the binaries and man pages using
365 "make" is possible, but "make dist" and related targets work only with UNIX
366 file type ("binmode" mount option) set. The "autogen.sh" script prints a
367 warning if DOS type is selected.
368
369 Files may also be checked out with a non-Cygwin SVN client which uses CR/LF
370 for svn:eol-style=native. The "autogen.sh" script has svn:eol-style=LF.
371 Bash option "-o igncr" is not required.
372
373 [10] Guidelines for Windows
374 ===========================
375
376 To compile the Windows release with MinGW gcc on MSYS, use:
377
378 ./configure
379 make
380
381 Instead of using "make install", copy the .exe files into
382 some directory in the PATH.
383
384 Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
385
386 ./configure --build=$(./config.guess) \
387 --host=i686-w64-mingw32 \
388 LDFLAGS=-static
389
390 ./configure --build=$(./config.guess) \
391 --host=x86_64-w64-mingw32 \
392 LDFLAGS=-static
393
394 Tested on Cygwin, Debian and Fedora.
395
396
397 To build the Windows binary distribution, use:
398
399 make dist-win32
400
401 This builds the distribution in directory
402
403 ./smartmontools-VERSION.win32/
404
405 and packs it into
406
407 ./smartmontools-VERSION.win32.zip
408
409 To create a Windows installer, use:
410
411 make installer-win32
412
413 This builds the distribution directory and packs it into the
414 self-extracting install program
415
416 ./smartmontools-VERSION.win32-setup.exe
417
418 The installer is build using the command "makensis" from the NSIS
419 package. See http://nsis.sourceforge.net/ for documentation and
420 download location.
421
422 It is also possible to (cross-)build the installer on Linux.
423 This was successfully tested on Debian and Fedora with package
424 "nsis".
425
426 To create a combined 32-/64-bit installer, use this in 32-bit build
427 directory if 64-build directory is at ../build64:
428
429 make builddir_win64=../build64 installer_win32
430
431 To both create and run the (interactive) installer, use:
432
433 make install-win32
434
435 Additional make targets are distdir-win32 to build the directory
436 only and cleandist-win32 for cleanup.
437
438 The binary distribution includes all documentation files converted
439 to DOS text file format and *.html and *.txt preformatted man pages.
440
441 To prepare os_win32 directory for MS Visual Studio C++ 2010 [Express],
442 use the following on MSYS or Cygwin:
443
444 mkdir vctmp && cd vctmp
445 ../configure [... any MinGW option set from above ...]
446 make config-vc10
447
448 The MSVC project files (os_win32/vc10/*) are included in SVN (but not
449 in source tarball). The target config-vc10 from a Makefile configured
450 for MinGW creates os_win32/vc10/{config.h,smart*.rc,svnversion.h}.
451 The configure skript must be run outside of the source directory to
452 avoid inclusion of the original config.h.
453
454
455 [11] Guidelines for OS/2, eComStation
456 =====================================
457
458 To compile the OS/2 code, please run
459
460 ./os_os2/configure.os2
461 make
462 make install
463
464 [12] Guidelines for OpenBSD
465 ===========================
466 To match the way it will installed when it becomes available as a PORT, use
467 the following:
468
469 ./configure --prefix=/usr/local \
470 --sysconfdir=/etc \
471 --docdir=/usr/local/share/doc/smartmontools-VERSION \
472 --without-initscriptdir \
473 --enable-sample
474
475 NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
476 be installed with the string '.sample' append to the name, so you will end
477 up with the following:
478 /etc/smartd.conf.sample
479
480 [13] Comments
481 ============
482
483 To compile from another directory, you can replace the step
484 ./configure [options]
485 by the following:
486 mkdir objdir
487 cd objdir
488 ../configure [options]
489
490 Man pages contents is platform-specific by default. Info specific to other
491 platforms may be not visible. To generate man pages with full contents use:
492
493 make os_man_filter=
494
495 To install to another destination (used mainly by package maintainers,
496 or to examine the package contents without risk of modifying any
497 system files) you can replace the step:
498 make install
499 with:
500 make DESTDIR=/home/myself/smartmontools-package install
501
502 Use a full path. Paths like ./smartmontools-package may not work.
503
504 After installing smartmontools, you can read the man pages, and try
505 out the commands:
506
507 man smartd.conf
508 man smartctl
509 man smartd
510
511 /usr/sbin/smartctl -s on -o on -S on /dev/sda (only root can do this)
512 /usr/sbin/smartctl -a /dev/sda (only root can do this)
513
514 Note that the default location for the manual pages are
515 /usr/share/man/man5 and /usr/share/man/man8. If "man" doesn't find
516 them, you may need to add /usr/share/man to your MANPATH environment
517 variable.
518
519 Source and binary packages for Windows are available at
520 http://sourceforge.net/projects/smartmontools/files/
521
522 Refer to http://www.smartmontools.org/wiki/Download for any additional
523 download and installation instructions.
524
525 The following files are installed if ./configure has no options:
526
527 /usr/local/sbin/smartctl [Executable command-line utility]
528 /usr/local/sbin/smartd [Executable daemon]
529 /usr/local/sbin/update-smart-drivedb [Drive database update script]
530 /usr/local/etc/smartd.conf [Configuration file for smartd daemon]
531 /usr/local/etc/smartd_warning.sh [Warning skript for smartd daemon]
532 /usr/local/share/man/man5/smartd.conf.5 [Manual page]
533 /usr/local/share/man/man8/smartctl.8 [Manual page]
534 /usr/local/share/man/man8/smartd.8 [Manual page]
535 /usr/local/share/man/man8/update-smart-drivedb.8 [Manual page]
536 /usr/local/share/doc/smartmontools/AUTHORS [Information about the authors and developers]
537 /usr/local/share/doc/smartmontools/ChangeLog [A log of changes. Also see SVN]
538 /usr/local/share/doc/smartmontools/COPYING [GNU General Public License Version 2]
539 /usr/local/share/doc/smartmontools/INSTALL [Installation instructions: what you're reading!]
540 /usr/local/share/doc/smartmontools/NEWS [Significant enhancements and fixes]
541 /usr/local/share/doc/smartmontools/README [Overview]
542 /usr/local/share/doc/smartmontools/TODO [Things that need to be done/fixed]
543 /usr/local/share/doc/smartmontools/smartd.conf [Example configuration file for smartd]
544 /usr/local/share/doc/smartmontools/examplescripts/ [Executable scripts for -M exec of smartd.conf (4 files)]
545 /usr/local/share/smartmontools/drivedb.h [Drive database]
546
547 Due to checks done by '--with-systemdsystemunitdir=auto' and '--with-initscriptdir=auto',
548 one of the following files may also be installed:
549
550 /usr/local/lib/systemd/system/smartd.service [Systemd service file for smartd]
551 /usr/local/etc/rc.d/init.d/smartd [Init/Startup script for smartd]
552 /usr/local/etc/init.d/smartd [Init/Startup script for smartd]
553 /usr/local/etc/rc.d/smartd [Init/Startup script for smartd]
554
555 If /usr/local/etc/smartd.conf exists and differs from the
556 default then the default configuration file is installed as
557 /usr/local/etc/smartd.conf.sample instead.
558
559 The commands:
560
561 make htmlman
562 make txtman
563
564 may be used to build .html and .txt preformatted man pages.
565 These are used by the dist-win32 make target to build the Windows
566 distribution.
567 The commands also work on other operating system configurations
568 if suitable versions of man2html, groff and grotty are installed.
569 On systems without man2html, the following command should work
570 if groff is available:
571
572 make MAN2HTML='groff -man -Thtml' htmlman
573
574
575 Some of the source files are prepared for the documentation
576 generator Doxygen (http://www.doxygen.org/). If Doxygen is installed,
577 the command:
578
579 doxygen
580
581 creates HTML documentation in doc/html and LaTeX documentation
582 in doc/latex. If TeX is installed, the following command creates
583 a documentation file doc/latex/refman.pdf:
584
585 ( cd doc/latex && make pdf )
586
587
588 [14] Detailed description of arguments to configure command
589 ===========================================================
590
591 When you type:
592 ./configure --help
593 a description of available configure options is printed
594 [with defaults in square brackets]. See also section [3] above.
595
596
597 The following old configure options are deprecated and will be removed
598 in a future release of smartmontools:
599
600 Old option Replacement
601 --with-docdir=DIR --docdir=DIR (autoconf >= 2.60)
602 --enable-drivedb [no option needed]
603 --disable-drivedb --without-drivedbdir
604 --enable-savestates --with-savestates[=yes]
605 --disable-savestates [no option needed]
606 --enable-attrbutelog --with-attributelog[=yes]
607 --disable-savestates [no option needed]
608
609
610 The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
611 guessed such that the following rules apply:
612 - If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
613 should be the defaults used by the current OS or distribution.
614 - If --sysconfdir=/etc is NOT specified, the guessed directories should
615 always be below ${prefix} or below ${sysconfdir}.
616
617 Here's an example:
618 If you set --prefix=/home/joe and none of the other four
619 variables then the different directories that are used would be:
620 --sbindir /home/joe/sbin
621 --docdir /home/joe/share/doc/smartmontools
622 --mandir /home/joe/share/man
623 --sysconfdir /home/joe/etc
624 --with-exampledir /home/joe/share/doc/smartmontools/examplescripts
625 --with-drivedbdir /home/joe/share/smartmontools
626 --with-initscriptdir [see below]
627 --with-systemdsystemunitdir [see below]
628
629 If systemd is present (and pkg-config reports /lib/systemd/system
630 as the systemdsystemunitdir):
631
632 --with-initscriptdir [disabled]
633 --with-systemdsystemunitdir /home/joe/lib/systemd/system
634
635 else if /etc/rc.d/init.d exists:
636
637 --with-initscriptdir /home/joe/etc/rc.d/init.d
638 --with-systemdsystemunitdir [disabled]
639
640 else if /etc/init.d exists:
641
642 --with-initscriptdir /home/joe/etc/init.d
643 --with-systemdsystemunitdir [disabled]
644
645 else if /etc/rc.d exists:
646
647 --with-initscriptdir /home/joe/etc/rc.d
648 --with-systemdsystemunitdir [disabled]
649
650 else
651
652 --with-initscriptdir [disabled]
653 --with-systemdsystemunitdir [disabled]
654
655
656 Here are the differences with and without --enable-sample, assuming
657 that initscript location is set and no other options specified
658 (see above for details)
659
660 Case 1:
661 --enable-sample provided
662 ==> Files installed are:
663 /usr/local/etc/smartd.conf.sample
664 /usr/local/etc/rc.d/init.d/smartd.sample
665
666 Case 2:
667 --disable-sample provided or parameter left out
668 ==> Files installed are:
669 /usr/local/etc/smartd.conf
670 /usr/local/etc/rc.d/init.d/smartd
671
672 Additional information about using configure can be found here:
673 http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts